ãã äžã€ã®åé¡ã解決ããããã«æ®ã£ãŠããŸã-æãå€ã«ããªãã¿ã®ãªãå°åã§ãåãé«å±€ãã«ã®äžã§...ããªããã©ã¡ãåŽã«ããããèŠã€ããããã«ã
æŽå²çã«ããéãžãªã³ãŒããŒãã¯ãã®è³ªåã«çããŸãã Google ã Yandex ã OSMãªã©ãã»ãŒãã¹ãŠã®ãããã³ã°APIã®éèŠãªéšåã§ãã ããããã»ãšãã©ã®å Žåã圌ã®çãã¯äººã察象ãšããŠãããå Žæã®èª¬æã ããå«ãŸããŠããŸãã
ããã¯éæè¡çã§ãïŒ ãããŠç¢ºãã«éçŸå®çã§ãã Esosedi㯠ããã®ãµããã³ãæ°å¹Žéé£ã¹ãŠããããªããŒã¹ãžãªã³ãŒããŒãäœæããŸããã äž»ãªãã®ã¯ãã©ã®ããã«ããªãã§ããã
ããæè¿ã 圌ãã¯ããã§ã«ã·ãã§ãšãã®æ»ãæ€çŽ¢ã ïŒãã¹ããããã»ãããšç®¡çèŠåºãã®ãã¹ãïŒã å°åºãæ©ãåãïŒå°å³äžã«å°åã®ããŒã¿ã衚瀺ïŒããããŠïŒã§ã¯ãªãïŒ Yandexã«ãŠã³ã¿ãŒ ïŒãã€ã¬ã¯ããžãªã³ãŒããŒïŒã«å°éããŸããã 次ã«ããªããŒã¹ãžãªã³ãŒããŒãšã¯äœãããªãå¿ èŠãªã®ããèŠãŠã¿ãŸãããã ãããŠã圌ã®äœåã®ä»çµã¿ãåæããŸãã
ããŒã1
ãšãœã»ãã£ã¯ãäžçå°å³äžã®å Žæãã§ããããšãæŽå²çã«çºå±ããŸããã å€ãåŠæ ¡ã®åºå Žãšå°çåç §ã ãã æ®å¿µãªã®ã¯ãæ®éã®äººã®å°ç座æšã¯åãªãæ°åã®ã»ããã§ãããšããããšã§ãã æ®éã®äººã«ã¯äœæãå¿ èŠã§ãã
座æšãäœæã«å€æããããã«ããéãžãªã³ãŒããŒãã䜿çšãããŸãã ããªãã¯åœŒã«åº§æšãäžãã圌ã¯ããªãã«ç¹å®ã®ã¢ãã¬ã¹ãäžããŸãã ãã®ããã¹ãã¯ã人ãç¹å®ã®ãªããžã§ã¯ãã®å Žæãç解ããã®ã«ååã§ãã ãããŠã人éçã«ã¯ãæšæºçãªå®è£ ã«ã€ããŠäžæºã¯ãããŸããã ããããããã¯ãã·ã¹ãã ãã«ã¯é©ããŠããŸãããããã§ã¯ãããã¹ãã®ããããã³ã°ãèªäœãå®å®ããŠããªãããïŒé床ãäœäžããŸãïŒãè€æ°ã®ãœãŒã¹ããããŸãã¯å°ãªããšãããŸããŸãªããããã€ããŒãã«ãããéåžžã®ããžãªã³ãŒããŒãåæã«æ€çŽ¢ããŸãã å°ççã«è¿ãäœæã®2ã€ã®ã¯ãšãªã¯ç°ãªãããŒã¿ããŒã¹ã«ãããåçã¯äºãã«ãããã¹ããã§ã¯ãããŸããã
ãžãªã³ãŒããŒã®åçã§ã¯ãé³èš³ãã¹ãã«ãã¹ãããã«ã¯ç®¡çéšéãçµã¿ç«ãŠãããã®ããŸããŸãªã·ã¹ãã ãèŠã€ããããšãã§ããŸãã
ãã®ãããããšãã°ãã¢ã¹ã¯ã¯åžãã€ãŸãã¢ã¹ã¯ã¯åžããŸãã¯ã¢ã¹ã¯ã¯åžèªäœãå ¥ã£ãŠããã¢ã¹ã¯ã¯åžã«åºäŒãããšããããŸãã çŽç²ã«æè¡çã§ã¯ãããŸãã-ããã¯æ£ããã§ãã ä»ã®éœåžã®ã€ã¡ãŒãžãšèåã§æ£èŠåãããŸããã åé¡ã¯ãã¢ã¹ã¯ã¯ãã¢ã¹ã¯ã¯ã ãã§ããããšããããå®éãå¿çã®ãã©ã°ã«ãã£ãŠããããéœåžã§ã¯ãªãããšã§ãã ãã°ã¬ãŒã¿ãŒã¢ã¹ã¯ã¯ãã¯ãŸã çºæãããŠããŸããã
ãã1ã€ã®æšæºçãªGoogleãžãªã³ãŒããŒãšã©ãŒã¯ãéãã®åº§æšã®ãåŒãããéœåžå°åºãšã®äžæ£ç¢ºãªäœæ¥ãç¥èªïŒã¢ã«ã¿ã€å ±ååœïŒãããã³ããŸããŸãªå°åœ¢åã®äœ¿çšã§ãã ãã·ã¢ã¯ãã·ã¢ãšãã·ã¢é£éŠããããŠéåžžã®ãã·ã¢é£éŠã®äž¡æ¹ã«ãªããŸãã
ç§ã¯ãã§ã±ãã¢å ±ååœã®Autonomusesãæ¥ãã®ãåŸ ããã«ïŒ5ã€ã ãã®ã¹ãã«ãªãã·ã§ã³ïŒã2幎åã«å°åã®ã¢ãžã¥ãŒã«ã«åºã¥ããŠãžãªã³ãŒããŒãäœæããŸããã
ç§ãã¡ã®ãã®ã§ãã-ããªãã®ãã®ã«ãªããŸããã dadataãããã¯ã§ã®ã©ã³ãã ãªã³ã¡ã³ãã®åŸã ãžãªã³ãŒããŒãå ¬éãããŸããã
ãã¹ãŠãåçŽã«æ©èœããŸã-ããªãã¯åœŒã«åº§æšãäžãããã®èŠè¿ãã«ãããªãã¯ãã®ãã€ã³ããå ¥ããã¹ãŠã®osmRelationIdãååŸããŸãã 管çã¬ãã«ããšã«å解ãããŸãã ã©ãã§ãtsiferkiãã©ãã§ãä»ã®ãœãŒã¹ãšã®éä¿¡ãã©ãã§ããæ€èšŒå¯èœæ§ãã
äœæ¥ãèŠèŠåããããã«ã jsfiddle.net / azvjukh8 ãšããäŸããããŸã ããã®äœæ¥ããšãŠã奜ãã ã£ãã®ã§ãåãããšãã¡ã€ã³ã®esosediã§èªç€ºãããŠããŸãã
ãã®äŸã®ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ãšããã§ãã
- ãããã®çŸåšã®äžå¿ãååŸãããžãªã³ãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸãã
- çãã«ã¯ããµã€ãºãç§ãã¡ã«åã£ããªããžã§ã¯ãããããŸãã
- å°å³ã«è¡šç€ºããŸãã ïŒå®éã«ã¯åœŒã®èŠªïŒã
- ã«ãŒãã移åããããç¹°ãè¿ããŸãã
osmeã®ãªãªãŒã¹ä»¥æ¥ãå€ãã®äººã ãç§ã«åžæããå°åã®æ€çŽ¢ãä¿é²ããããã«é Œãã§ããŸã-æåŸã«ãè¡æ¿åºåã®ãã€ã©ã€ãã¢ãžã¥ãŒã«ã®åé¡ã®1ã€ã¯è§£æ±ºãããŠããŸã-å¿ èŠãªå°åçªå·ãèŠã€ããããšã®é£ããã 以åã¯ã data.esosedi.orgã«ã¢ã¯ã»ã¹ããŠãè¡æ¿åºç»ã®æ·±éšã«ååž°çã«çªå ¥ããå Žæãæ¢ãããšãææ¡ãããŠããŸããã
ãã¹ãŠãã·ã³ãã«ã«ãªããŸãã-jsonp pendata.esosedi.org/geocode/v1?[lng=(en|en)â &point=x,y[&seq=?â [&callback=ïŒ]-24æéã7æ¥é±ãnginxã䜿çšããŠ1ç§ããã6 *èŠæ±ã®å¶éã§...
ãŸããå¹³åããŠãIPA Mapsãžãªã³ãŒããŒã®3åã®ãªã¯ãšã¹ããè¡ãããšãã§ããŸãã ïŒDNSã䜿çšããŠïŒåé¢ã«æ²¿ã£ãŠè² è·ãåæ£ã§ãããŠãŒã¶ãŒã®å ŽåãçŽ20 RPSïŒ+ããŒã¹ãx4ïŒã解æŸãããŸãã
ãããŠæãéèŠãªããšã¯ããã€ã³ããéæ³ã«æãããå¯èœæ§ã®ãã家å±ãéãããªãããšã§ãã ãŸããå®å šã«ç°ãªãåœã§ã¯ãéåžžã®éè·¯ãç®çã®å°ç¹ããæ°çŸããã¡ãŒãã«é¢ããŠããããšããããŸãã åœãè¿æãå°åã®ã¿...
ããŒã2
ãžãªã³ãŒããŒã¯ãé åã®ãã³ãã«ã§æå®ããããžãªã¡ããªã«åºã¥ããŠæ©èœããŸãã 圌ã¯ãã€ã³ããå ¥ãæå°ã®ããªãŽã³ãèŠã€ããå¿ èŠãããããã¹ãŠã®ããªãŽã³ã¯ãããé«ããã ãããããããé«ãããæ€çŽ¢ããå¿ èŠã¯ãããŸãã-ãã®æ å ±ã¯ãã§ã«ååšããŸãã ãããããããåéããã®ã¯ãžãªã³ãŒããŒã§ããã ãã§ã«è¿°ã¹ãããã«ããã®å šäœã¯OSMãžãªã¡ããªã«åºã¥ããŠããŸãã OSMãããžãªã¡ããªãåŒãåºãã®ã¯ç°¡åã§ãããæ¶åããã®ã¯ã¯ããã«å°é£ã§ãã ç¹ã«ãè¡æ¿åºåã®æ確ãªéå±€æ§é ã«åºå·ããŸãã
ååãšããŠãç§ã«ãšã£ãŠãæåã®æ®µéã¯ããŸããããŸããã§ãããçŸåšã®ããŒã¿ããŒã¹ã«ã¯å€ãã®ãžãªã¡ããªããããŸãããç¹ã«ãäœããã®çç±ã§ïŒä»ãŸã§ïŒèª°ããé¢ä¿ãäœæããŠããªãå€ãã®éœåžããããŸãã
2çªç®ã®ãçããç¹ã¯ãå€ãã®ãªã¬ãŒã·ã§ã³ãééã£ãadmin_levelãæã£ãŠãããããŸã£ããæã£ãŠããªãããšã§ãã ããŠãis_inãã©ã°ïŒåŸå±ãæã€äººïŒã¯äžè¬çã«çããç£ã§ãã ãã®çµæãæãä¿¡é Œã§ãããªãã·ã§ã³ã¯ããžãªã¡ããªã®å¹ŸäœåŠçãªããã³ãããäœæããããšã§ãã
åãç«ãŠå°ãå ¥ã£ãŠããŸãã 次ã«ããã®äžã®ç¹å®ã®ãã€ã³ããèŠã€ãããã®ãã€ã³ããå«ãŸããä»ã®ãã¹ãŠã®ããªãŽã³ãèŠã€ããå¿ èŠããããŸãã ãããããµã€ãºã§ãœãŒãããæçµçãªç®¡çãã¹ãã«ãœãŒãããŸã-å°ãããªããžã§ã¯ãã¯åžžã«å€§ãããªããžã§ã¯ãã«å«ãŸããŸãã ããã§ãã¹ãŠãæ確ã«ãªããŸããã
åèšã¿ã¹ã¯ã¯2ã€ã«åå²ãããŸãã
1.ãã€ã³ããå ¥ããªããžã§ã¯ãããã°ããèŠã€ããŸãã
2.ããæ£ç¢ºãªPointInPolygonæ€èšŒãè¿ éã«äœæããŸãã
ååãšããŠãããã¯ãªããŒã¹ãžãªã³ãŒããŒã®æ¬è³ªã§ãããæãåçŽãªå®è£ ã§ãã ããããå®éã«ã¯ãæåã®åŸ ã¡äŒãã¯æ¬¡ã®ããã«ãªããŸã-ãã®ãŸãã«ãã€ã³ããèŠã€ããããã«ããã¹ãŠã®ããªãŽã³ã§ããã眮ãæããŸãã
幟äœåŠçäžå¿ãéå¿ã察æ°ãç©å-åŸæ¥ã®æ¹æ³ã§ã¯ãå€è§åœ¢ã®å åŽã«ããããšãä¿èšŒãããŠããç¹ãèŠã€ããããšã¯äžå¯èœã§ãã åãç«ãŠå°ã¯ã©ã®ãããªåœ¢ç¶ã§ãããŸããŸããããå°ãªããšããã®äžå¿ã«ç©ŽããããŸãã
å人çã«ã¯ãåçŽã«åé¡ã解決ããŸãã-幟äœåŠçäžå¿ãªã©ãããªãŽã³ã«å ¥ãããšãã§ããä»»æã®ç¹ãåãããæšæºãã¢ã«ãŽãªãºã ã§ãã§ãã¯ããŸãã
æšæºã®ã¢ã«ãŽãªãºã ïŒã¬ã€ãã£ã¹ãã£ã³ã°ãOïŒnïŒïŒã¯åçŽã«æ©èœããŸããã¬ã€ã¯ãå·ŠåŽã®ç¡é倧ãããã€ã³ããŸã§çºå°ããããã®åŸããªãŽã³ã®é¢ãšã®äº€å·®ãèæ ®ãããŸãã
å¥æ°å亀差ããå Žå-ç§ãã¡ã¯äžã«ããŸãã ãããŠããã€ã³ãã¯ç§ãã¡ã«åã£ãŠããŸãã
ããããã°-å€ã
ãããŠãçµç¹ã®äžã§ã¯ãæåã®äº€å·®ç¹ãã2çªç®ã®äº€å·®ç¹ãŸã§ã®ã»ã°ã¡ã³ãã®äžå€®ã䜿çšããŸããããã¯æ£ç¢ºã«ããªãŽã³å ã«ãããŸãã
å šäœãšããŠããã€ã³ããããªãŽã³ã«å±ããŠãããã©ãããå€æããããã®ã¢ã«ãŽãªãºã ã¯å€ããããè€éãã¯ãŸã£ããç°ãªããŸãã ååŠçãå¿ èŠãªãã®ãšããã§ãªããã®ããããŸãã èªæã§ãªããªãã·ã§ã³ã¯ãããªãŽã³ããããæ°åŠçãªã圢åŒã«å€æããŠã¢ã«ãŽãªãºã ã®è€éãã軜æžããããåã«NïŒé ç¹ã®æ°ïŒãæžãããŸãã ããšãã°ãæãè€éãªããªãŽã³ã¯ãåçŽã«åå²ã§ããŸãã ããã«ã¯ã geoison-vtãé©ããŠããŸãã
2çªç®ã®èå³æ·±ããã€ã³ãã¯ããã€ã³ãã暪æã§ããæå°ãªããžã§ã¯ãã®æ€çŽ¢ã§ãã ãªããžã§ã¯ããå°ããã»ã©ããã§ãã¯ã¯é«éã«ãªããŸãã ããæ£ç¢ºã«ã ã¯ã¯ãããŸãã¯RããªãŒã¯ããã®ç®çã«é©ããŠããŸãã ããããããã¯ããŸãã©ã³ãã§ã¯ãªãã®ã§ãZã³ãŒãã䜿ã£ãŠãã£ãŠã¿ãŸãããã
Zã³ãŒãïŒNãMortonãPeanoïŒã¯ã2D座æšïŒXãYïŒããååŸãããæ°å€ã§ããããã®ãããäžãŸãã¯å·Šã®ãªããžã§ã¯ãã¯åžžã«ãããå°ãªããå³ãšäžã®ãªããžã§ã¯ãã¯ããå€ããæã€ããšãã§ããŸãã ãã¹ããããã»ããã
å®éãç¯çœªè ã®1人ãæ¢ããŠãããã®ãããZ座æšãç¥ã£ãŠãããã¹ãŠã®ãªããžã§ã¯ããç°¡åã«èŠã€ããŠãZã§äžŠã¹æ¿ããããšãã§ããŸãïŒmapboxã«ã¯ããã®å¹æã䜿çšããåªããã©ã€ãã©ãª-earcutããããŸã ïŒã
ãã ãããããæ©èœããå Žå-ãããã®ã³ãŒãã®ååã¯ç°ãªããŸã-Zã³ãŒãã¯ãžã°ã¶ã°ã«ãªããŸãã ãå³äžããæ€çŽ¢ããããšãããšã圌ã¯å·Šã«ç§»åããŸãã ããã§ã¯ããã¹ã¯ã®äžã§ZïŒorroïŒããããã€ã³ã¿ãŒãªãŒããé ããŸãã Zã³ãŒããããã¹ãã³ã°ãä»ããŠãåžžã«XãŸãã¯Y座æšãååŸãããããã«ããæ€çŽ¢ãããã«å¶éããããšãã§ããŸãã ãšããã§ãããã¯è³ã®åãå£ã§ã¯ååã§ã¯ãããŸããã
ååãšããŠãã空éå å¡«æ²ç·ãã®äœ¿çšã¯ãæ°åã®ããéåžžã®ããŒã¹ãããå Žåã2Dæ€çŽ¢ã«æãå¹æçãªæ¹æ³ã®1ã€ã§ãã ããšãã°ãMySQLã ããããç§ã¯ãŸã PostGIS ...
ããŒã¿ããŒã¹ããå®éã®ãžãªã¡ããªãããŠã³ããŒãããããæ£ç¢ºãªèšç®ãè¡ãããã ãã«æ®ããŸãã ããã§ã¯ããŸããŸãªæé©åãå¯èœã§ãããã®äž»ãªãã®ã¯OSMããŒã¿ã®åºç€ã§ããããªãŽã³ãããªãŽã³ãšããŠãã§ãã¯ããå¿ èŠã¯ãããŸããã ããªãŽã³ã¯ãªã¬ãŒã·ã§ã³ã§ã-åã ã®ã»ã°ã¡ã³ãã®ã»ããã OSMã¯ãã»ãŒéåžžã®ãããããžãããŒã¿ããŒã¹ã§ãã 2ã€ã®å¯èœæ§ã®ããåçã«å ±éããããšãå€ãå°ããªã»ã°ã¡ã³ãã®ã¿ããã§ãã¯ã§ããŸãã
ã©ã®ãããéãåäœããŸããïŒ -åæå®è¡> 10ã®åäœäžã®ã©ãããããã§ã¯ãçŽ600RPSãåŸãããŸãã ããã«ãµãŒããŒã§ã¯ãäžæ¹ã§ã¯é«éã§ãä»æ¹ã§ã¯ãã€ãã«pingãéä¿¡ããŸã-60ããªç§ã
äžçã®Totalã¯ãããã«å¥ã®ãªããŒã¹ãžãªã³ãŒããŒã«ãªããŸããã ä»ã®äººãšã¯ç°ãªããŸã-ãæ€èšŒå¯èœãïŒWikipediaã®çšèªïŒãå Žæã®ãããã¹ããã®èª¬æã ãã§ãªããä¿¡é Œã§ããããŸããŸãªããŒã¹ããã®IDãæäŸããŸãã 圌ã¯å®¶ãæ¢ããŠããã®ã§ã¯ãªããéããæ¢ããŠããã®ã§ã¯ãªãã管çã®å¶å·£ã ããæ¢ããŠããŸãã ïŒãããŠãçŸåšã®åºå°ã«å ¥ã£ããã®ã ãã§ããäŸãã°ããšã«ããªã³ãã«ã¯ã¯ããã§ã¯ãªããéœåžéšã®ã¿ã§ããïŒ
ãéåžžã®ã16é²æ°ãšã³ã³ãŒããŒãæ¬åœã«å¿ èŠãªå Žåã¯ãOSMã®äžã§å®è¡ãããNominatim ããŸãã¯éåžžã®APIãããã®éåžžã®ãžãªã³ãŒããŒã䜿çšããŠãã ããã
...ãããããç©ãã®ç²Ÿç¥ãã¯æ¶ããŸã....
圌ãããªãã«äœãã§ããå ŽåãïŒ usernameïŒ ãããªãã®ç ç²è ã¯ãã£ãŒãã®äŸã§ã-jsfiddle.net/azvjukh8
ãã®ãããªãžãªã³ãŒããŒã®èª°ãïŒdadataïŒã¯ãéãã®ãšãªã¢ã決å®ããã®ã«åœ¹ç«ã€ãããããŸããã ããã¯ããã£ã«ã¿ãªã³ã°ãã誰ãïŒé ä¿¡èšç®æ©ïŒã
誰ãïŒç§ïŒã楜ããå€ãéãããããã«ããã ãã§ãã
å¿ç圢åŒã®ããã¥ã¡ã³ãã¯https://github.com/esosedi/regionsã§å ¥æã§ããŸã ã
ããªãã¯ãŸã å°ãçè«ãèªãããšãã§ããŸãããç·Žç¿ïŒ
- en.wikipedia.org/wiki/Point_in_polygon
- en.wikipedia.org/wiki/Winged_edge
- www.gdmc.nl/oosterom/gap.pdf
- www.geos.ed.ac.uk/~gisteac/gis_book_abridged/files/ch27.pdf
ãŸãã¯ããããœããŒãèªåã§åéããŸãã
- github.com/twain47/Nominatim
- http://wiki.openstreetmap.org/wiki/RU:%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82
PSïŒã¢ã«ã³ãŒã«ã®è²©å£²å¶éã¯2014幎12æ18æ¥ïŒ2015幎1æ5æ¥ïŒã«è§£é€ãããŸããã çŸåšãé£éŠèŠå¶ãå·ã§æœè¡ãããŠããŸãã ããããç§ã®ãããªããã«ã¹ã¯ã®åºã«ã¯ããã®ãã¥ãŒã¹ã¯å±ããŸããã§ããã