Multi-Xには日本測量協会の電算プログラム検定取得済みのXY座標⇔経緯度変換機能があります。
このXY座標⇔経緯度変換機能を使わずに、画面右下に表示しているマウス位置の測量座標をSikuliXで文字認識後、緯度・経度に変換してみました。
経緯度への変換はPROJ.4という変換ライブラリを使用しました。
実行結果です。
PROJ.4は10進数で緯度経度を表していたので60進数に変換した値も表示するようにしました。
# coding: utf-8 import sys reload(sys) import datetime sys.setdefaultencoding('utf-8') load("proj4j-0.1.0.jar") import org.osgeo.proj4j.CRSFactory as CRSFactory import org.osgeo.proj4j.CoordinateReferenceSystem as CoordinateReferenceSystem import org.osgeo.proj4j.CoordinateTransform as CoordinateTransform import org.osgeo.proj4j.CoordinateTransformFactory as CoordinateTransformFactory import org.osgeo.proj4j.ProjCoordinate as ProjCoordinate def DegToDms(dd): deg = int(dd) min = int((dd - deg) * 60) sec = ((dd - deg ) * 60 - min) * 60 return str(deg),str(min),str(sec) crsFactory = CRSFactory(); crsWgs84 = crsFactory.createFromName("EPSG:4326"); crsRect4 = crsFactory.createFromName("EPSG:2446"); crsRect5 = crsFactory.createFromName("EPSG:2447"); crsRect6 = crsFactory.createFromName("EPSG:2448"); transformFactory = CoordinateTransformFactory() transform = transformFactory.createTransform(crsRect5,crsWgs84) Settings.MinSimilarity=0.99 print "Start:",datetime.datetime.today() imageList = ["0.png","1.png","2.png","3.png","4.png","5.png","6.png","7.png","8.png","9.png","COMMA.png","minus.png","dot.png"] XYREG=Region(1603,995,211,24) XYREG.setAutoWaitTimeout(0.1) matches = [] for index, image in enumerate(imageList): try: mm = XYREG.findAll(image) except: pass else: while mm.hasNext(): matches.append([mm.next().getX(),index]) matches.sort() xytmp ="" for m in matches: if m[1] == 10: tmp ="," elif m[1] == 11: tmp ="-" elif m[1] == 12: tmp ="." else: tmp = str(m[1]) xytmp += tmp XYLIST = xytmp.split(",") print "X座標:" + XYLIST[0] print "Y座標:" + XYLIST[1] MultiXYPoint = ProjCoordinate(float(XYLIST[1]) ,float(XYLIST[0])) MultiLatLonPoint = ProjCoordinate() transform.transform(MultiXYPoint,MultiLatLonPoint) LatLon10 = [MultiLatLonPoint.y , MultiLatLonPoint.x] LatLon60 = [DegToDms(LatLon10[0]),DegToDms(LatLon10[1])] print "緯度10進:" + str(LatLon10[0]) print "経度10進:" + str(LatLon10[1]) print "緯度60進:" + LatLon60[0][0] + "度" + LatLon60[0][1] + "分" + LatLon60[0][2] + "秒" print "経度60進:" + LatLon60[1][0] + "度" + LatLon60[1][1] + "分" + LatLon60[1][2] + "秒" print "END:",datetime.datetime.today()