ãŽã¡ã«ç ç©¶æã¢ããã³ãã«ã¬ã³ããŒ2018ã®1æ¥ç®ã§ãã
åŒç€Ÿã¯30幎ç®ãè¿ããçµè·¯æ¢çŽ¢ãµãŒãã¹ãé§
ãã±ããšããéçºããŠããŸãã
ãããªäŒç€Ÿã®ã¢ããã³ãã«ã¬ã³ããŒã®ïŒæ¥ã§ã玹ä»ããã®ã¯ããªãŒãã³ãœãŒã¹ã®ãOpenTripPlanner(以äžOTP)ããšããçµè·¯æ¢çŽ¢ãœãããŠã§ã¢ã§ãã
岡山çã®éè·¯ããã³äžéšã®ãã¹äºæ¥è ã®ããŒã¿ã䜿ã£ãŠçµè·¯æ¢çŽ¢ãã§ãããšãããŸã§åãããŸããããšããããé¢çœãããªãè§Šã£ãŠã¿ãããã®ç²Ÿç¥ã§ãã£ãŠã¿ãŸããã
(2018/12/04远èš)
@niyalistããã®ã³ã¡ã³ãã®æ
å ±ãå
ã«macOSã§ãåæ§ã«OTPãåããèšäºãæžããŸããããã¡ãããåç
§ãã ããâãªãŒãã³ãœãŒã¹ã®çµè·¯æ¢çŽ¢ãOpenTripPlannerããmacOSã§åãããŠå²¡å±±çã§çµè·¯æ¢çŽ¢ããããæ
å ±ããããšãããããŸããã
äœã説æããã
- OTPãšã¯ãªããã(軜ã)
- OTPã®èµ·åæé
- çµè·¯æ¢çŽ¢ããŠã¿ã
- æ å ±ãŸãšã
äœã説æããªãã
- OTPã®æ©èœã«é¢ããæ·±ã説æãèµ·åâçµè·¯æ¢çŽ¢ã«å¿ èŠãªæ å ±ã®ã¿èšåããŸãã
- æ¬èšäºã«åºãŠããªãå ããŒã¿ã®å ¥ææ¹æ³ã岡山çã§ã®çµè·¯æ¢çŽ¢ã«å¿ èŠãªæ å ±ã®ã¿èšåããŸãã
OTPãšã¯ãªããã(軜ã)
ãOpenTripPlanner(以äžOTP)ãã®å ¬åŒãµã€ãã¯ãã¡ãã§ãã
ãããããŒãžã«
OpenTripPlanner (OTP) is a family of open source software projects that provide passenger information and transportation network analysis services.
ãšããããã«ã亀éã«é¢ããæ
å ±ããã®åæãè¡ãããšãã§ããOSSã§ãã
OpenStreetMapã亀éäºæ¥è
ããæäŸãããGTFSããŒã¿ãå
ã«åŸæ©ãèªåè»ãèªè»¢è»ãééçã®äº€éæ©é¢ãè€åçã«æ±ãããšãã§ããŸãã
ä»åã¯ãããã®æ©èœã®äžãããçµè·¯æ¢çŽ¢ãè¡ãªã£ãŠãããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹ã¯HTTPã§ãããäžèº«ã¯Javaã§ã§ããŠããŸããæå¿ãäœã£ããOTPãšã®ãããšããã©ããããããã€ãã®èšèªã®ã©ã€ãã©ãªãããããã§ãã
OTPã®èµ·åæé
åäœãããç°å¢
OS
ããšã§äœ¿ãããŒã«ãapt installã§ã®ã€ã³ã¹ããŒã«ãäžçªæ¥œã§ãããããUbuntu ã䜿ããŸããããã§ã¯Ubuntu 16.04.4 LTSã䜿ããŸããã
ãã·ã³
ãã·ã³ã¯å人çãªè¶£å³ã§alibabacloudã®ECSã€ã³ã¹ã¿ã³ã¹ãåããŸããããã®ææ³šæãã¹ãç¹ã¯ãã¡ã¢ãªã4GB以äžãããã®ãéžã¶ããšã§ãã(å®éã¯ãå€ãã«8GBã®ã€ã³ã¹ã¿ã³ã¹ãåããŸããã)ããã¯OSMã®å·šå€§ãªããŒã¿ãã¡ã¢ãªäžã«å±éããããã§ãã
å ¬åŒãã¥ãŒããªã¢ã«ã§ã¯ããªã¬ãŽã³å·ããŒãã©ã³ããäŸãšããŠããŸãããããã§ã¯
GTFS and OSM data sets are often very large, and OTP is relatively memory-hungry. You will need at least 1GB of memory when working with the Portland TriMet data set, and several gigabytes for larger inputs.
ãšè¿°ã¹ãããŠããŸããä»åäŸãšãã岡山çã¯ããŒãã©ã³ãã®åžåããåºå€§ãªã®ã§ãå€ãã«8GBã®ã¡ã¢ãªãŒããã€ã€ã³ã¹ã¿ã³ã¹ãåããŠããŸãã(çµè·¯æ¢çŽ¢ã¯ãã·ã³ãã¯ãŒãé£ããããCPUã¯2ã³ã¢ãšããŸãããæ£ç¢ºã«ã©ã®ãããã®ãªãœãŒã¹ãå¿ èŠãšããã®ãã¯ããããŸããã)
ãŸãåŸã»ã©æå ããå©ããããã«ã°ããŒãã«IPãããã£ãŠããããšããå§ãããŸãã
JDK
OTPãåããã«ã¯1.8以äžã®JDKãå¿ èŠã§ããå ¥ã£ãŠããªãå Žåã¯å ¥ããŠãã ããã
# sudo apt-get update //âã®ã€ã³ã¹ããŒã«ã倱æãããaptãã¢ããããŒãããŠããããäžåºŠè©Šãã
# sudo apt-get install openjdk-8-jre
# java -version //ç°å¢ã®ç¢ºèª
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1ubuntu0.16.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
æºå
ã§ã¯å¿
èŠãªãã®ããã³ãã³èœãšããŠããŸãããã
äž»ã«å
¬åŒãã¥ãŒããªã¢ã«ãåèã«ããŠããŸãã
äœæ¥ãã£ã¬ã¯ããªãäœãç§»å
ååã¯ãããããããã°ãªãã§ãããã§ãã
# mkdir otp
# cd otp
OTPæ¬äœãååŸ
ãã¡ãããOTPã®æ¬äœãèœãšããŠããŸããææ°ããŒãžã§ã³ã®ãã£ã¬ã¯ããªãããã¡ã€ã«åã.shaded.jarã§çµãããã¡ã€ã«ã䜿ããŸãã
# wget https://repo1.maven.org/maven2/org/opentripplanner/otp/1.3.0/otp-1.3.0-shaded.jar
亀éäºæ¥è ã®æäŸããGTFSããŒã¿ãååŸ
çµè·¯æ¢çŽ¢ã®å
Œ
±äº€éæ©é¢ã®éšåã®ããŒã¿ã«äœ¿ãGTFSããŒã¿ãååŸããŸãã
ä»åã¯å
Œ
±äº€éãªãŒãã³ããŒã¿å
é²éœåžããšå²¡å±±åžã«ä¹ãå
¥ãããå®éãã¹ãäžé»ãã¹ãäž¡åãã¹ã岡é»ãã¹ãäžéãã¹ã®å瀟ãæäŸããããŒã¿ã䜿ããŸãããã®ããã«å°åã§ãŸãšãŸã£ãŠãªãŒãã³ããŒã¿åããŠãããããšäœ¿ãåŽãšããŠã䜿ãããããããŸãã!!
以äžã®ãµã³ãã«ã³ãã³ãã§åŒãã§ããã¢ãã¬ã¹ã¯2018/11/27æç¹ã§ã®ææ°ã®ãã®ã§ãã
æ°ããããŒã¿ãããã確èªãããå Žåã¯ãã¡ãããå瀟ã®ããŒã¿çœ®ãå ŽãžèŸ¿ãããšãåºæ¥ãŸãã
2018/12/04 10:00çŸåšãäžéãã¹ã®GTFSããŒã¿(βç)ãæ£åžžã«ååŸã§ããŸããããã®åŸãOTPã®èµ·åã§ããŒã¿ã«ã€ããŠãšã©ãŒãèµ·ããå Žåã¯äžåºŠè©²åœããŒã¿ãæããŠèµ·åããããšããå§ãããŸã
â2018/12/04 20:00çŸåš 埩æ§ããŠããŸããã
(2019幎1æ15æ¥è¿œèš)
å®éãã¹ãäžé»ãã¹ã®ãªãŒãã³ããŒã¿ã®ãã¡ã€ã«åã倿ŽãããŸããã
GTFSã»ãæšæºçãªãã¹æ å ±ãã©ãŒãããããªãŒãã³ããŒã¿äžèЧ
# wget "http://www3.unobus.co.jp/opendata/GTFS-JP.zip" -O unobus.gtfs.zip
# wget "http://www.shimoden.net/busmada/opendata/GTFS-JP.zip" -O shimodenbus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/ryobi/gtfsFeed" -O ryobibus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/okaden/gtfsFeed" -O okadenbus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/chutetsu/gtfsFeed" -O chutetsubus.gtfs.zip
äœæ¥ãã£ã¬ã¯ããªããåºã
äžæŠåºãŸã
ãã®åŸèœãšãäžåœå°æ¹å
šäœã®pbfãã¡ã€ã«ãäœæ¥çšãã£ã¬ã¯ããªã«èœãšããããªãããã§ãã
äœæ¥çšãã£ã¬ã¯ããªãšç°ãªãå Žæãªãã©ãã§ãããã§ã
# cd ../
äžåœå°æ¹ã®OSMã®ããŒã¿ãååŸ
ç¶ããŠéè·¯ã®éšåã®æ
å ±ãæäŸããOSMã®ããŒã¿ãèœãšããŠããŸãã
ãŸãã¯OSMããŒã¿ãæäŸããŠããgeofabrik.deããäžåœå°æ¹ã®ããŒã¿ãååŸããŠããŸãã
ããã¯åŸã»ã©ã€ã³ã¹ããŒã«ããããŒã«ã§å²¡å±±çåšèŸºã«ããªã ããŸãã
# wget http://download.geofabrik.de/asia/japan/chugoku-latest.osm.pbf
osmctoolsãã€ã³ã¹ããŒã«
osmctoolsã¯åã®æé ã§ããŠã³ããŒãããOSMã®ããŒã¿(pbfãã¡ã€ã«)ãããªã ããããã®ããŒã«ã§ãã
(ä»ã«ãè²ã
åºæ¥ããã§ãããOSMçŽ äººãªçè
ã«ã¯é£ããã£ãã§ãã»ã»ã»)
# sudo apt-get update //âã®ã€ã³ã¹ããŒã«ã倱æãããaptãã¢ããããŒãããŠããããäžåºŠè©Šãã
# sudo apt install osmctools
岡山çåšèŸºã®ã¿ã«åãåã
ã§ã¯å
ã»ã©èœãšããäžåœå°æ¹ã®OSMã®ããŒã¿ã岡山çåšèŸºã«ããªã ããŸãããã
-bãã©ã¡ãŒã¿ã«ã¯ããªã ãã緯床çµåºŠã-oãã©ã¡ãŒã¿ã«ã¯åºåãã¡ã€ã«åãæå®ããŠããŸãããŸãããªã ç¯å²ã®é
ã£ãã§åãèœãšãããéè·¯æ
å ±ãå«ãããããã--complete-waysãªãã·ã§ã³ãä»äžããŸãã
ãã¡ã€ã«ãåºåãããããããäœæ¥çšãã£ã¬ã¯ããªã«å
¥ããŸãã
ããã§æ³šæ!!
-bã«æå®ãã4ã€ã®å€ã¯ãã®é çªã«æ°ãã€ããŠãã ããã
å西ã®è§ãåæ±ã®è§ã®åº§æšãlng,lat(çµåºŠ,緯床)ã®é çªã§æå®ããŸããããªã ç¯å²ã®å·ŠèŸº(西端),äžèŸº(å端),å³èŸº(æ±ç«¯),äžèŸº(å端)ãšèšãæããããšãã§ããŸãã
çè
ã¯ããã§2æéè©°ãŸããŸããorz
# osmconvert chugoku-latest.osm.pbf -b=133.455201,34.274923,134.298740,35.284564 --complete-ways -o=okayama.pbf
# mv okayama.pbf otp/
äœæ¥ãã£ã¬ã¯ããªã«æ»ã
# cd ./otp
èµ·å
ã§ã¯æ©éå®è¡ããŠã¿ãŸãããã
çµæ§æéãããããŸããæ°é·ã«åŸ
ã¡ãŸããã
# java -Xmx5G -jar otp-1.3.0-shaded.jar --build ./ --inMemory
èµ·åäžã«WARNINGã çµæ§ ããã€ãåºãŠãããšæããŸããããã¹åãšã©ã®streetsãšãçŽã¥ããªããã䜿çšãããªããããšãã系統åããŠããŒã¯ãããªããããªã©ã§ããäžæŠç¡èŠããŸããåå ãšå¯Ÿçã¯ãŸã調ã¹ãã远èšããŸãããããåç¥ãªãã³ã¡ã³ãã§æããŠãã ããã
Grizzly server runningãšåºããèµ·åå®äºã§ã!!![]()
䜿ã£ãŠã¿ãã
ã§ã¯èµ·åããOTPã«æ©éãªã¯ãšã¹ããæããŠã¿ãŸãããã
ãªã¯ãšã¹ãäŸäžã®IPaddressã¯é©æèªã¿æ¿ããŠãã ããã
ãŸãã¯æ£åžžã«çããŠãã
ãŸãã¯ã¡ãããšèµ·åããŠããã確èªããŸãããã
ãã©ãŠã¶ããäžèšã®ãªã¯ãšã¹ããæãããšãå©çšã§ããäº€éææ®µãè¿ã£ãŠããŸãã
ä»åã¯ãã¹ã®ããŒã¿ããå
¥ããŠããªããããBUSã¯ãã£ãŠãTRAINã¯ãããŸããã
http://IPaddress:8080/otp/routers/default/
GTFSããŒã¿ãå ¥ã£ãŠããã確èª
ã§ã¯æ¬¡ã«GTFSããŒã¿ããã¡ããšåãããã¿ãŠã¿ãŸãããã
ãŸããã®ãªã¯ãšã¹ãã§OTPã«å
¥ã£ãŠããGTFSããŒã¿ã®FeedidãåŸãããšãåºæ¥ãŸããä»åã¯5ã€ã®ããŒã¿ãå
¥ããã®ã§ã1~5ãè¿ãã¯ãã§ãã
http://IPaddress:8080/otp/routers/default/index/feeds
ç¶ããŠäžã®ãªã¯ãšã¹ãã§åŸãFeedidã䜿ããããŒã¿ã®ãã¡ïŒã€ãã¿ãŠã¿ãŸãããã
http://IPaddress:8080/otp/routers/default/index/agencies/3
äŸãã°äžã®ãªã¯ãšã¹ãã§å®éãã¹ã®æ
å ±ãåãããšããŸãããã®æã¬ã¹ãã³ã¹ã®id ãã©ã¡ãŒã¿ã«ã¯1260001000674 ãå
¥ã£ãŠããŸããããã䜿ã£ãŠæ¬¡ã¯å®éãã¹ã®å
šç³»çµ±ãååŸããŠã¿ãŸãã
http://IPaddress:8080/otp/routers/default/index/agencies/3/1260001000674/routes
ããããã®ãªã¯ãšã¹ãã«ã€ããŠã®ããã¥ã¡ã³ãã¯ãã¡ã
系統åã®äžèЧãååŸã§ããã°OKã§ã!!
çµè·¯æ¢çŽ¢
ã§ã¯ããããçµè·¯æ¢çŽ¢ãããŠã¿ãŸãããã
ããŒã¿ã¯å²¡å±±çå
ã®ãã®ããå
¥ããŠããŸããã®ã§ããã¡ããçå
ã®çµè·¯æ¢çŽ¢ããã§ããªãããšã¯çæããŠãã ããã
以äžããªã¯ãšã¹ãäŸã§ããããããã®ãã©ã¡ãŒã¿ãäœã衚ããŠããã®ãã¯ãã¡ããªã©ãåç
§ããŠãã ããã
http://IPaddress:8080/otp/routers/default/plan?fromPlace=34.656513,133.975075&toPlace=34.665495,133.918570&time=1:02pm&date=11-14-2018&mode=TRANSIT,WALK&maxWalkDistance=500&arriveBy=false&numItineraries=5
http://IPaddress:8080/otp/routers/default/plan?fromPlace=34.779151,134.038106&toPlace=34.665495,133.918570&time=1:02pm&date=11-14-2018&mode=TRANSIT,WALK&maxWalkDistance=500&arriveBy=false&numItineraries=5
itinerariesèŠçŽ ã«å
¥ã£ãŠããã®ãå
·äœçãªçµè·¯ã§ã!!ãã¡ããšåããŠããã§ãããã?
ãŸãšã
æ¬èšäºã§ã¯ãšããããOpenTripPlannerãåãããŠã¿ããšãããŸã§æžããŸããã
ããã¥ã¡ã³ããã¿ãã«ãã£ãšè²ã
ã§ãã(åææ¹é¢ãšã)ã¢ããªã±ãŒã·ã§ã³ã®ããã§ãã
æ¢çŽ¢çµæã«points èŠçŽ ãšããŠçµè·¯ã®ããªã©ã€ã³ãè¿ã£ãŠããŠããã®ãäœãã«äœ¿ãããã§ããã
ã¡ãªã¿ã«åŒç€Ÿã§ã¯ããŒã¿ã®ã¡ã³ãããªãŒã§çµè·¯æ¢çŽ¢ãå«ã䟿å©ãªæ©èœã倿°æã£ãé§ ãã±ããšWebãµãŒãã¹ãæäŸããŠããŸããããªãŒãã©ã³ãããã!!(ãã€ã¬ã¯ãããŒã±ãã£ã³ã°)
ãšããã§ãOTPåšãã§ã¯æ¥æ¬èªæ
å ±ãå
šç¶èŠã€ããããšãã§ããŸããã§ãã
ãããªäœ¿ãæ¹ããããšãããã°ãã²èšäºåããŠãã ãã!!
æåŸã«ããã¥ã¡ã³ãçã®æ
å ±ããŸãšããŠçµãããŸãã
ææ¥ã¯aosho235ããã®PDFã«é¢ããã話ã§ã!!