ããã«ã¡ã¯ ãã®èšäºã¯ãSailfish OSã¢ãã€ã«ãã©ãããã©ãŒã åãã®ã¢ããªã±ãŒã·ã§ã³éçºã«é¢ããäžé£ã®èšäºã®ç¶ãã§ãã ä»åã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è£
ããŠãããã€ã¹ã®å°ççäœçœ®ã«é¢ããæ
å ±ãååŸããçŸåšã®äœçœ®ãšç§»åããã«ãŒãã®å°å³ã衚瀺ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
GPSãã©ãã«ãŒã¢ããªã±ãŒã·ã§ã³
äœçœ®æ
å ±APIã®æ©èœãå®èšŒããããã«ãäœçœ®æ
å ±ã«é¢é£ãããã¹ãŠã®åºæ¬æ©èœãå«ãGPSãã©ãã«ãŒã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸãã
- é»è©±ç»é¢ã§ãšãªã¢ã®å°å³ã衚瀺ããŸãã
- å°å³äžã®ç§»åè·é¢ã衚瀺ããŸãã
- ããã€ã¹ã®ã¡ã¢ãªããèšé²ããã³ããŠã³ããŒããããGPSãã©ãã¯ã衚瀺ããŸãã
- ãããäžã®è¡šç€ºãæå¹/ç¡å¹ã«ããæ©èœã䜿çšããŠãé¢å¿ã®ãããã€ã³ãã®ãªã¹ããç¶æããŸãã
- éžæããé¢å¿ã®ãããã€ã³ãã«ãããã移åããŸãã
å°çããŒã«
Sailfish OSãã©ãããã©ãŒã ã¯ãæšæºã®Qtãã¬ãŒã ã¯ãŒã¯ã¯ã©ã¹ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã«äœçœ®æ
å ±ãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã 次ã«ãQtãã¬ãŒã ã¯ãŒã¯ã¯ãããŒã¿ãæäœããããã®2ã€ã®ã¢ãžã¥ãŒã«ã
Qt Positioningãš
Qt LocationãæäŸããŸãã æåã®ãµãã·ã¹ãã ã§ã¯ãããã€ã¹ã®çŸåšã®å Žæã«é¢ããæ
å ±ãååŸã§ãã2çªç®ã®ãµãã·ã¹ãã ã§ã¯ããã®æ
å ±ããžãªã³ãŒãã£ã³ã°ããŠå°å³äžã«è¡šç€ºããæ段ãæäŸããŸãã ãã®èšäºã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã§åº§æšã䜿çšããåºæ¬çãªã·ããªãªãå®è£
ããã«ã¯éåžžããã§ååã§ãããããQMLåïŒC ++ã¯ã©ã¹ãªãïŒã®äœ¿çšã®ã¿ãæ€èšããŸãã
Qt Positioningã§äœçœ®ããŒã¿ãååŸãã
ããžã·ã§ãã³ã°APIã®åº§æšã®èª¬æ
座æšãèšè¿°ããããã«ã
Positionã¿ã€ãã䜿çšãããŸããããã«ã¯ãããã€ãã®ã°ã«ãŒãã«åå²ã§ããå€æ°ã®ãã£ãŒã«ããå«ãŸããŠããŸãã ãã¹ãŠã®
Positionãã£ãŒã«ããå¿
é ãšããããã§ã¯ãªãããšã«æ³šæããŠãã ããã
ãã£ãŒã«ãã®æåã®ã°ã«ãŒãã«ã¯äœçœ®æ
å ±ãå«ãŸããŸããããã«ã¯ã察å¿ãã
座æšã¿ã€ãã®ã€ã³ã¹ã¿ã³ã¹ãåç
§ãã
座æšããããã£ãšã察å¿ããããããã£ãåä¿¡ããããã©ããã瀺ã
titudeValid ã
lattitudeValidããã³
longitudeValidããããã£ãå«ãŸããŸãã ãŸããå座æšã«ã¯ãåä¿¡ããæå»ïŒ
ã¿ã€ã ã¹ã¿ã³ã ïŒãä¿åãããŸãã
2çªç®ã®ã°ã«ãŒãã«ã¯ã座æšã«é¢é£ããããããã£ãå«ãŸããŸããããã¯ãGPSã»ã³ãµãŒããè¿œå ã§ååŸããããäžé£ã®æž¬å®åº§æšãéèšããããšã§èšç®ã§ããŸãïŒå°è¡šé¢ã®ç§»åé床ïŒ
speed ïŒãåçŽç§»åã®é床ïŒ
verticalSpeed ïŒã移åæ¹åïŒ
direction ïŒããŸãã察å¿ããããããã£ãååŸããããã©ããã瀺ããæ¥å°ŸèŸã
Validã®å¯Ÿå¿ããããããã£ãå«ãŸããŸãã
座æšã¿ã€ãèªäœã¯éåžžã«åçŽã§ãå°ççäœçœ®ïŒ
緯床 ã
çµåºŠ ã
é«åºŠ ïŒããã³æå®ãããå¹
ãšçµåºŠãæ£ãããã©ããïŒ
isValid ïŒã«é¢ããæ
å ±ãå«ãŸããŠããŸãã ãã®ã¿ã€ãã¯ã座æšéã®è·é¢ïŒ
distanceTo ïŒã座æšéã®
æ¹äœè§ ïŒ
azimuth ïŒãèšç®ããè·é¢ãšæ¹äœè§ïŒ
atDistanceAndAzimuth ïŒã§åº§æšãèšç®ããããã®è¿œå ã®ã¡ãœãããæäŸããŸãã
ãã±ãŒã·ã§ã³ããŒã¿ãœãŒã¹
ããã€ã¹ã®çŸåšã®åº§æšãååŸããã«ã¯ã
PositionSourceã¿ã€ãã䜿çšããå¿
èŠããããŸãã ãã®ãªããžã§ã¯ãã¯ã
positionããããã£ãéããŠçŸåšã®äœçœ®ãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã æ
å ±ãååŸããããã®ãœãŒã¹ã¯ã€ã³ã¹ããŒã«ãããŠããŸãããããã®ããããã£ã¯ç©ºã§ãã
ãŸããã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªæ
å ±ã®ãœãŒã¹ã決å®ããå¿
èŠããããŸããã¢ãã€ã«ãªãã¬ãŒã¿ãŒã®å¡ã«åºã¥ããŠååŸãããè¿äŒŒåº§æšã«ã¯ååã§ããããå
šå°ç枬äœã·ã¹ãã ã䜿çšããé«ã枬äœç²ŸåºŠãå¿
èŠã§ãã
supportedPositioningMethodsããããã£ãåç
§ããŠããã©ãããã©ãŒã ã§ãµããŒããããŠããã¡ãœããã確èªã§ããŸãã
- NoPositioningMethods-ã¡ãœããã¯ãµããŒããããŠããŸããã
- SatellitePositioningMethods-è¡æããŒã¿ãååŸã§ããŸãã
- NonSatellitePosititiongMethods-ã¢ãã€ã«ãããã¯ãŒã¯ããããŒã¿ãååŸã§ããŸãã
- AllPosititiongMethods-ãã¹ãŠã®ã¿ã€ãã®äœçœ®æ±ºãããµããŒããããŠããŸãã
Sailfish OSãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå®è¡ããŠããããã€ã¹ã¯ãäžèšã®ãã¹ãŠã®æ¹æ³ããµããŒãããŠããŸãã ãŸãã
preferredPosititioningMethodsããããã£ãäžèšã®å€ã®ããããã«èšå®ããããšã«ãããå¿
èŠãªãã®ãéžæã§ããŸãã æåã«ãããã®ãœãŒã¹ã䜿çšããã次ã«ããã©ã«ãã®ãœãŒã¹ã䜿çšãããŸãã ãªã¹ãããããœãŒã¹ã®ããããå©çšã§ããªãå Žåã
æå¹ãªããããã£ã¯
falseã«ãªã
ãŸã ã
Sailfish OSãšãã¥ã¬ãŒã¿ãŒã§ã¯ãäžèšã®ããŒã¿ãœãŒã¹ã®ãããã䜿çšã§ããªãããšã«æ³šæããŠãã ããã ãã®åé¡ã解決ããã«ã¯ãåŸã§èª¬æããå¥ã®ã¡ã«ããºã ã«é Œããªããã°ãªããŸããã
äœçœ®æ
å ±ãæŽæ°ããé »åºŠã¯ã
updateIntervalããããã£ã䜿çšããŠ
決å®ãããŸãã ãã®å€ãçãããŠèšå®ããªãã§ãã ãã-é »ç¹ã«æŽæ°ãããããšãé»åãéå°ã«æ¶è²»ãããŸãã ããŒã¿ã®åä¿¡ãå¶åŸ¡ããã«ã¯ã次ã®æ¹æ³ã䜿çšã§ããŸãã
- éå§ãã
- åæ¢ããåæ¢;
- NonSatellitePosititiongMethods-ã¢ãã€ã«ãããã¯ãŒã¯ããããŒã¿ãååŸã§ããŸãã
- æŽæ°ããŠå Žæã®æŽæ°ã匷å¶ããŸãã
宣èšçãªæ¹æ³ã§
éå§ããã³åæ¢ããããšãã§ããŸã-activeããããã£ãèšå®ããããšã§ïŒæ£ã®å€ãå²ãåœãŠãããšã¯ã
startã¡ãœãããåŒã³åºãããšãšåçã§ãã
ããŒã¿ãœãŒã¹ãã¢ã¯ãã£ãã«ãªããšã
positionããããã£ã®æŽæ°ãéå§ãããŸãã QMLã®ãã€ã³ãã£ã³ã°ã¡ã«ããºã ã䜿çšããŠãä»ã®ããããã£ã«ãã€ã³ãã§ããŸãã ããã«ã
onPositionChangedä¿¡å·ã䜿çšããŠãããŒã¿ãœãŒã¹ããåä¿¡ããæ°ãã座æšå€ãåŠçã§ããŸãã
Sailfish OSã§ã®Qtããžã·ã§ãã³ã°ã®äœ¿çš
ã¢ããªã±ãŒã·ã§ã³ã§å°çæ
å ±ã䜿çšããã«ã¯ã
qt5-qtdeclarative-import-positioningããã±ãŒãžãäŸåé¢ä¿ã®ãªã¹ãã«è¿œå ããŸãïŒãã€ãã£ãã¯ã©ã¹ã®ã¿ã䜿çšããå Žåã¯ã
qt5-qtpositioningããã±ãŒãžã§ååã§ãïŒã ãããžã§ã¯ãã®YAMLãã¡ã€ã«ã®
Requiresãªã¹ãã§æå®ãã
å¿
èŠããããŸãã è¿œå åŸãã³ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
Requires: - sailfishsilica-qt5 >= 0.10.9 - qt5-qtdeclarative-import-positioning
次ã«ãQMLãã¡ã€ã«ã§ãQt Positioningã¢ãžã¥ãŒã«ãæ¥ç¶ãã
PositionSourceèŠçŽ ãäœæããå¿
èŠããããŸãã çãäŸãèããŠã¿ãŸãããã
import QtPositioning 5.3 PositionSource { id: src updateInterval: 1000 active: true onPositionChanged: { var coordinate = src.position.coordinate; console.log("Coordinate:", coordinate.longitude, coordinate.latitude); } }
ãã®äŸã§ã¯ãã»ãšãã©ã®
PositionSourceããããã£ãæ§æãããããã©ã«ãå€ã䜿çšããŸãã
ã¢ã¯ãã£ããªããããã£ã®ã¿ãèšå®ããã
trueã«èšå®ãã
ãŸã ã ãã®èŠçŽ ãæã€ããŒãžãèªã¿èŸŒãŸãããšããã«ãå Žæã®æ€çŽ¢ãéå§ãããŸãã
onPositionChangedã€ãã³ã
ãã³ãã©ãŒãå®çŸ©ããŸãããã®
ãã³ãã©ãŒã§ã¯ããŸãçŸåšã®åº§æšã«ã¢ã¯ã»ã¹ããŠãããçµæã®ãªã³ã¯ã䜿çšããŠçŸåšã®åº§æšã®å¹
ãšçµåºŠã衚瀺ããŸãã ããã«ãåã«
console.logïŒcoordinateïŒã䜿çšããããšãã§ããŸã
ããã®å Žåãè¡ã¯åºŠãšåã®åœ¢åŒã§è¡šç€ºãããŸãã
PositionSourceã䜿çšããäœæ¥ã®ãããã°ããžãã¯
åè¿°ããããã«ããšãã¥ã¬ãŒã¿ã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããšãã«äœçœ®ããŒã¿ãååŸããããšã¯ã§ããŸããã ãŸããã¢ããªã±ãŒã·ã§ã³ã®éçºäžã«ã察å¿ããããŒãžãéããã³ã«æåã®å Žæã®æ±ºå®ã«è²»ããããæéãç¯çŽããããšãã§ããŸãã
ãããã®åé¡ã解決ããã«ã¯ã
PositionSourceåã®
nmeaSourceããããã£ã䜿çšãããšäŸ¿å©ã§ãã ãã®ããããã£ã¯ãGPSãã©ãã¯ã
NMEA圢åŒã§èšé²ãããŠãããã¡ã€ã«ã®URLãåãå
¥ããŸãã ãã®åœ¢åŒã¯ãGPXãšæ¯èŒããŠäžè¬çã§ã¯ãããŸãããããªã³ã©ã€ã³ã³ã³ããŒã¿ãŒã®ããããã䜿çšããŠãæ¢åã®GPXãã©ãã¯ãããã®ãããªãã¡ã€ã«ãååŸã§ããŸãã ãŸãã¯ãããšãã°ã
NMEA GeneratorãµãŒãã¹ã䜿çšããŠNMEAãã©ãã¯ãäœæããŸãã
ãã¡ã€ã«ãåãåã£ãããã¢ããªã±ãŒã·ã§ã³ããã±ãŒãžã«è¿œå ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ããããžã§ã¯ãã®ãããã¡ã€ã«ã§ã次ã®æ§æã䜿çšããŠã€ã³ã¹ããŒã«æžã¿ãªãœãŒã¹ãšããŠæå®ããã ãã§ååã§ãïŒè©³çŽ°ã«ã€ããŠã¯ã
ãã¡ããåç
§ããŠãã ããïŒã
OTHER_FILES += nmea/*
nmea.files = nmea/*.nmea
nmea.path = /usr/share/$$TARGET/nmea
INSTALLS += nmea
ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«åŸããã®ãã¡ã€ã«ã¯ããã€ã¹ã§ã䜿çšå¯èœã«ãªããŸãã ãã®ããããã£ã®äœ¿çšã¯æ¬¡ã®ããã«ãªããŸãã
PositionSource { id: positionSource active: true nmeaSource: "/usr/share/%1/nmea/path.nmea".arg(Qt.application.name) }
ãã®å Žåã
PositionSourceã¯æå®ããããã¡ã€ã«ããããŒã¿ãæäŸããŸãã ãããã£ãŠã
nmeaSourceããããã£ã䜿çšããŠãããã€ã¹ã«æ¢ã«ä¿åãããŠããNMEAãã©ãã¯ã衚瀺
ããããšãã§ããŸãã ãã®å€ãèšå®ãããšã
PositionSourceãªããžã§ã¯ããå®éã®ããŒã¿ãœãŒã¹ããåæãããããšã«æ³šæããŠãã ããã å®éã®ãœãŒã¹ã䜿çšããå Žåã¯ããã®ãããªãªããžã§ã¯ããåäœæããå¿
èŠããããŸãã
ããã§ããŠãŒã¶ãŒã®åº§æšã远跡ããä»»æã®åœ¢åŒãå®è£
ã§ããå°å³äžã«ãã®æ
å ±ã®è¡šç€ºãå®è£
ã§ããŸãã
Qt Locationã䜿çšããŠããããšãããã®æ
å ±ã衚瀺ãã
Qt Locationã¢ãžã¥ãŒã«ã¯ããŠãŒã¶ãŒãå°å³ããã®å°å³ã«é¢ããæ
å ±ã衚瀺ããã«ãŒããããããããçŸåšã®å°ç座æšã«é¢é£ããPOIïŒpoint of interestïŒãæ€çŽ¢ã§ããããã«ããå¹
åºãã¯ã©ã¹ãæäŸããŸãã ãã®ã¢ãžã¥ãŒã«ã®ã»ãšãã©ã®æ©èœã®åªãã玹ä»ã¯ã
å
¬åŒããã¥ã¡ã³ãã«ãããŸã ã ããããæäœãããã¹ãŠã®æ©èœã匷調ããããšã¯ã§ããªããããã¢ããªã±ãŒã·ã§ã³ã§ããã衚瀺ãæŽçããæ¹æ³ããããã«ããŒã«ãŒã衚瀺ããæ¹æ³ã移åè·é¢ã衚瀺ããæ¹æ³ã«çŠç¹ãåœãŠãŸãã
Qt Locationã®äž»èŠãªã¿ã€ãã®ç°¡åãªæŠèŠ
ãã®ã·ããªãªã§ã¯ãéèŠãªèŠçŽ ã¯ããã
Mapã§ãã ãã®èŠçŽ ã䜿çšãããšãè¡æãŸãã¯å°ççå°å³ããå°çã®è¡šé¢ã®ç»åã衚瀺ã§ããŸãã ç»åããŒã¿ããã®ä»ã®æçšãªæ
å ±ã®ãœãŒã¹ã¯ããã©ãããã©ãŒã éçºè
ãšç¬ç«ããéçºè
ã®äž¡æ¹ãæäŸã§ãã
ãã©ã°ã€ã³ã§ãã
Sailfish OSãã©ãããã©ãŒã ã§ã¯ã
OpenStreetMapãš
HERE WeGoã® 2ã€ã®ãã©ã°ã€ã³ã䜿çšã§ããŸãã ã«ãŒãã®
ãã©ã°ã€ã³ããããã£ããããã
osmãŸãã¯
hereã«èšå®ããããšã§ããããã®ãããããéžæã§ããŸãïŒ
ããã§äœ¿çšããã«ã¯ãAPIããŒãååŸããå¿
èŠããããŸãïŒã ãããã®éžæã¯ãã¢ããªã±ãŒã·ã§ã³ã䜿çšããç¹å®ã®å°åã®ã«ãã¬ããžã®å質ã«äŸåããŸãã 以äžã«ç€ºãããã«ãã¢ããªã±ãŒã·ã§ã³ã®äŸåé¢ä¿ã§å¿
èŠãªãã©ã°ã€ã³ãæå®ããå¿
èŠããããŸãã
å°å³ã®è¡šç€ºé åãå¶åŸ¡ããã«ã¯ãç»åã®äžå¿ã®åº§æšã瀺ã
centerããããã£ãšããºãŒã ã¬ãã«ã瀺ã
zoomLevelããããã£ã䜿çšããå¿
èŠããããŸãã
centerããããã£ã§ã¯ã座æšã®ã¿ã€ãã«åŸã£ãŠåº§æšãèšè¿°ããå¿
èŠããããŸããããã«ã€ããŠã¯ãåè¿°ã®Positioning APIã®æäœã«é¢ããã»ã¯ã·ã§ã³ã§èª¬æããŸããã
Sailfish OSã§ã®å°å³è¡šç€º
ã¢ããªã±ãŒã·ã§ã³ã§Qt Locationã¢ãžã¥ãŒã«ã䜿çšããã«ã¯ãå°ãªããšã1ã€ã®å°çããŒã¿ãããã€ããŒãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
Requires: - qt5-qtdeclarative-import-location - qt5-plugin-geoservices-osm - qt5-plugin-geoservices-here
1ã€ã®å°çæ
å ±ãããã€ããŒã®ã¿ã䜿çšããå Žåã¯ãæåŸã®2ã€ã®ããã±ãŒãžã®ãããããæ®ãããšãã§ããŸãã
ããã§ãå¿
èŠãªãã¹ãŠã®ã³ã³ããŒãã³ããã¢ããªã±ãŒã·ã§ã³ããŒãžã«é
眮ã§ããŸãã æå°éã®å°å³è¡šç€ºäŸãèããŠã¿ãŸãããã
import QtPositioning 5.3 import QtLocation 5.0 import Sailfish.Silica 1.0 import QtQuick 2.0 Page { PositionSource { id: positionSource active: true } Plugin { id: osmPlugin allowExperimental: true preferred: ["osm"] } Map { id: map anchors.fill: paren plugin: osmPlugin center: positionSource.position.coordinate } }
ãŸããå¿
èŠãªãã¹ãŠã®ã¿ã€ããããŒãžã§å©çšã§ããããã«ãQt Positioningã¢ãžã¥ãŒã«ãšQt Locationã¢ãžã¥ãŒã«ãæ¥ç¶ããŸãã
ãã®ããŒãžã¯ãSailfish Silicaã©ã€ãã©ãªãæäŸããPageãªããžã§ã¯ãã«åºã¥ããŠããŸãã ãã®ããŒãžã§ã¯ãå°çããŒã¿ã®ãã©ã°ã€ã³ãšåæ§ã«ãããã«ã¢ã¯ãã£ãåããäœçœ®ããŒã¿ãœãŒã¹ãäœæããŸãã ãã®ããŒã¿ã®ãœãŒã¹ãšããŠOpenStreetMapã䜿çšããŸãã
ããŒãžã®äž»ãªè¡šç€ºèŠçŽ ã¯ãããŒãžã§äœ¿çšå¯èœãªãã¹ãŠã®ã¹ããŒã¹ãåãããããã§ãã 次ã®ããã«æ§æããŸãããã©ã°ã€ã³ãæ§æãããããã®centerããããã£ãããŒã¿ãœãŒã¹ãæäŸãã座æšã«ãã€ã³ãããŸãã
ããããžã®ã¢ã€ãã ã®è¿œå
ãããäžã«èŠçŽ ãäœæããã«ã¯ãéçãšåçã®2ã€ã®ã¢ãããŒãããããŸãã Staticã¯ãæ°ãæéãšãšãã«å€åããªããªããžã§ã¯ãã«é©ããŠããŸãã ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ãããªãªããžã§ã¯ãã¯çŸåšã®å Žæãžã®ãã€ã³ã¿ãŒã§ãããã«ãŒãã移åããŸããã ã¢ããªã±ãŒã·ã§ã³ã®åçèŠçŽ ã¯ããŠãŒã¶ãŒãèªåã§è¿œå ããé¢å¿ãã€ã³ãã®ãã€ã³ã¿ãŒã§ãã
çŸåšã®å Žæã衚瀺ããããã«ã
MapQuickItemã¿ã€ãã䜿çšã
ãŸãã ã ããã«ãããããŒã«ãŒã衚瀺ãã
ç»åãªããžã§ã¯ããªã©ããããè¡šé¢ã«ä»»æã®ãªããžã§ã¯ããé
眮ã§ããŸãã ãã®äœ¿çšã詳现ã«æ€èšããŠã¿ãŸãããã
Map { MapQuickItem { coordinate: positionSource.position.coordinate anchorPoint.x: image.width / 2 anchorPoint.y: image.height sourceItem: Image { id: image width: 35 height: 50 source: "file:buttons/main_marker.pngâ } } }
ãã®ãªããžã§ã¯ãã
Mapã®åãšããŠå®£èšããããããããããªã³ã¯ããŸãã ãªããžã§ã¯ããé
眮ããããã«ãã¢ãã€ã«ããã€ã¹ã®çŸåšã®å°ççäœçœ®ã«é¢é£ä»ããããŠãã
座æšããããã£ãæå®ããŸããã
anchorPointããããã£ã䜿çšããããããããŒã«ãŒç»åã移åããŠãå
端ãçŸåšã®äœçœ®ãæãããã«ãªããŸããã
移åããã«ãŒãã衚瀺ããããã«ã
MapPolyLineã¿ã€ãã䜿çšã
ãŸãã ãããã«ãããä»»æã®ã«ãŒããç Žç·ã®åœ¢ã§è¡šç€ºã§ããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ãããã«è©³ããèããŠã¿ãŸãããã
Map { MapPolyline { id: mapline line.width: 3 line.color: 'blue } }
ãã®ã¿ã€ãã®ãªããžã§ã¯ãã¯ã
Mapã®åãšããŠå®£èšããå¿
èŠããããŸãã çŸåšã®ãã©ãã¯ã®è²ãšè¡šç€ºå¹
ãèšå®ããŸãã
è¡ã«æ°ãããã€ã³ããè¿œå ããã«ã¯ã次ã®ã³ãŒããçããŸãã
PositionSource { id: positionSource active: true onPositionChanged: { mapline.addCoordinate(position.coordinate) } }
å Žæã®å€æŽãçºçãããšãã©ã€ã³ã«å¥ã®ãã€ã³ããè¿œå ããŸãããã®ãããæž¡ãããã«ãŒãã®æ¬¡ã®ã»ã¯ã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã«è¡šç€ºãããŸãã
äžé£ã®é¢å¿ãã€ã³ãã衚瀺ããããã«ã
MapItemViewã¿ã€ãã䜿çšã
ãŸãã ã ãã®ã¿ã€ãã¯ããããã«å¯ŸããMVCã¢ãããŒãã®å®è£
ã§ãã衚瀺ããã¢ãã«ãšããã®ã¢ãã«ã®åèŠçŽ ã®ãã¥ãŒãå®çŸ©ããå¿
èŠããããŸãã QMLã®èŠçŽ ã®ãªã¹ããåããæ¹æ³ã«ç²ŸéããŠããå Žåããã®ã³ã³ããŒãã³ãã§ã®äœæ¥ã¯é£ãããããŸããã
ã¢ããªã±ãŒã·ã§ã³ã§ã®ãã®ã¢ãã«ã®ã¢ããªã±ãŒã·ã§ã³ã®äž»ãªåŽé¢ãèæ
®ããŠãã ããã
Map { MapItemView { id: mapView model: MapViewModel { } delegate: mapPlace } Component { id: mapPlace MapQuickItem { coordinate: QtPositioning.coordinate(latitude, longitude) anchorPoint.x: imagePlace.width / 2 anchorPoint.y: imagePlace.height sourceItem: Image { id: imagePlace width: 35 height: 50 source: "file:buttons/additional_marker.png" } } } }
MapItemViewãªããžã§ã¯ã
ã Mapã®å
ãšããŠå®çŸ©ããŸãããããã«ããããã®èŠçŽ ããããã«è¡šç€ºãããŸãã ã¢ãã«ãšããŠãç¬èªã®
MapViewModelã¢ãã«ã䜿çšããŸãããããã¯å®éã«ã¯ãèŠçŽ ãè¿œå ããã³æŽæ°ããããã®ã¡ãœãããè¿œå ãããæšæº
ListModelã®æ¡åŒµã§ãã ã¢ãã«ã®èŠçŽ ã¯ãæå®ããã
緯床ãš
çµåºŠã®ããããã£ãæã€ãªããžã§ã¯ãã§ãã æ°ããé¢å¿ã®ãããã€ã³ãããããã«è¿œå ããã«ã¯ãã¢ãã«ã®
addViewïŒïŒã¡ãœãããåŒã³åºããŠããã€ã³ãã®èå¥åããã®ç·¯åºŠãšçµåºŠãæž¡ãå¿
èŠããããŸãã ã¡ãœããã®å®è£
ã¯æ¬¡ã®ãšããã§ãã
function addView(id, latitude, longitude) { append({ id: id, latitude: latitude, longitude: longitude }) }
mapViewãªããžã§ã¯ãã®ããªã²ãŒãã§ã¯ã䜿ãæ
£ãã
MapQuickItemãå«ã
mapPlaceã³ã³ããŒãã³ããæå®ã
ãŸãã ã ãã®èŠçŽ ãšåã®èŠçŽ ãšã®éãã¯ã
QtPositioningåã®é©åãªã¡ãœããã䜿çšããŠæ瀺çã«
座æšåãäœæããå¿
èŠãããããšãšãé¢å¿ã®ãããã€ã³ãã®ããŒã«ãŒã衚瀺ããå¥ã®ç»åãæå®ããããšã§ãã
ãããã«
ãã®èšäºã§ã¯ãSailfish OSçšã«éçºããéã«ãžãªãã±ãŒã·ã§ã³ããŒã«ã䜿çšããæ©èœã«ã€ããŠæ€èšããŸããã ãã®èšäºã®äžéšãšããŠéçºãããã¢ããªã±ãŒã·ã§ã³ã¯ã
OpenRepos.netãªãœãŒã¹ã䜿çšããŠæºåž¯é»è©±ã«ã€ã³ã¹ããŒã«ã§ããŸãã ãŸããã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã確èªããããšãã§ããŸããããã¯ã
bitbucketãªããžããªã§å
¥æã§ããŸãã