å ¬å ±äº€éãªãŒãã³ããŒã¿ãéœåžæ¿çãäº€éæ¿çã«æŽ»çšããããã«
2017幎3æã®åœäº€çã«ãããæšæºçãªãã¹æ å ±ãã©ãŒããããçå®ä»¥æ¥ãå šåœã§å ¬å ±äº€éãªãŒãã³ããŒã¿ã®æŽåãçžæ¬¡ãã§ããŸããäžèЧããŒãžã«ãããšã8ææ«æç¹ã§å šåœã§177ä»¶ã®ããŒã¿ãå ¬éããã誰ããããŠã³ããŒãããŠæŽ»çšåºæ¥ãããã«ãªã£ãŠããŸãã
ãæšæºçãªãã¹æ å ±ãã©ãŒããããã¯äžçã®ããã¡ã¯ãã¹ã¿ã³ããŒã圢åŒã§ããGTFS圢åŒãšäºæã§ãããå ¬éãããŠããããŒã¿ã¯Google Mapsãªã©ã§ã®æ€çŽ¢ã«äœ¿ãããŠããã»ãã«ããæ§ã ãªãªãŒãã³ãœãŒã¹ã®ããŒã«ãçšããŠæŽ»çšåºæ¥ãŸãããã®Qiitaã«ãããŠããGTFSããŒã¿ã®å©ç𿹿³ã解説ããèšäºã倿°æçš¿ãããŠããŸãã
ãã®èšäºã§ã¯ãå ¬éããããªãŒãã³ããŒã¿ãå°åã®å ¬å ±äº€éãµãŒãã¹ã®å®æ ãææ¡ããããã«å©çšããæ¹æ³ã玹ä»ããŸããå©çšè ã®æžå°ãªã©ã«ãããå€ãã®å°åã§å ¬å ±äº€éã®ç¶æãå°é£ã«ãªã£ãŠããŸãããã©ããªå¯Ÿçãåãã¹ãããããã§ç޹ä»ãããããªæ¹æ³ã§ãŸãã¯å®æ ãæ£ç¢ºã«ææ¡ããäžã§è°è«ãé²ããããã°ãšæããŸãã
å°éåè§£æã«ããçæç·å°å³ ïŒIsochrone MapïŒ
ãããæéå ã«ã©ããŸã§è¡ããã®ãïŒããé¢çã«çè§£ããããã«ãå°éåè§£æãšããæ¹æ³ãããããã®çµæãå°å³ã§è¡šãããã®ãçæç·å°å³ïŒIsochrone MapïŒãšåŒã³ãŸããå€ãã¯ã°ã©ãã£ãã¯ãã¶ã€ããŒã®ææµŠåº·å¹³æ°ã®æéå°å³ãç¥ãããŠããŸãããYahoo! Japanãå ¬éãã亀éå©äŸ¿åºŠã®å°å³ã話é¡ã«ãªããŸãããå°éå®¶åãã«ã¯ãArcGISã®ã亀éãããã¯ãŒã¯è§£ææ©èœããªã©ãæäŸãããŠããŸãã
以äžã®å°å³ãããã®èšäºã§äœãæ¹ã解説ããçæç·å°å³ã§ããäžå¿ã«ãã矀銬çåºãå¹³æ¥ååŸ1æã«åºçºãããšãã«ãã¹ãšåŸæ©ã«ãã£ãŠç§»åã§ããç¯å²ãã10åããšã«è²åãããŠå³ç€ºããŠããŸããæå»è¡šããŒã¿ãšéè·¯ããŒã¿ã«åºã¥ããŠäœå³ãããŠããã®ã§ãæŠç®ã§ã¯ãªããç¹å®ã®å Žæãæå»ã«åºã¥ããæ å ±ãåŸãããå°åã«ãããå ¬å ±äº€éãµãŒãã¹ã¬ãã«ã®ææ¡ãæ€èšã«åºã掻çšã§ããå°å³ã§ãããã®å°å³ãããªãŒãã³ããŒã¿ãšãªãŒãã³ãœãŒã¹ã䜿ã£ãŠäœã£ãŠã¿ãŸãã
OpenTripPlannerã®å©çš
çæç·å°å³ãäœå³ããããã«ããªãŒãã³ãœãŒã¹ã®çµè·¯æ€çŽ¢ãšã³ãžã³ã§ããOpenTripPlanner (OTP) ãå©çšããŸããOTPã¯ãäžè¬çãªçµè·¯æ€çŽ¢ã®ä»ã«å°éåè§£ææ©èœãåããŠããããã®æ©èœãçšããŸããã€ã³ã¹ããŒã«ãªã©ã¯ä»¥äžã®èšäºãåèã«äœæ¥ãé²ããŸãããäž»ã«macOSçã®æé ã«åŸããŸãããªãã2ã€ã®èšäºã®éãã¯ãOSMããŒã¿ã®åãåºãã«çšããããŒã«ïŒosmconvertãosmosisãïŒãšãããŠã³ããŒãã«äœ¿ãããŒã«ã®éãïŒwgetãcurlãïŒã§ãããmacOSçã§çšããããŠããããŒã«ã¯ãWindowsãLinuxã§ãå©çšãå¯èœã§ãã
- ãªãŒãã³ãœãŒã¹ã®çµè·¯æ¢çŽ¢ãOpenTripPlannerããUbuntuã§åãããŠå²¡å±±çã§çµè·¯æ¢çŽ¢ããã
- ãªãŒãã³ãœãŒã¹ã®çµè·¯æ¢çŽ¢ãOpenTripPlannerããmacOSã§åãããŠå²¡å±±çã§çµè·¯æ¢çŽ¢ããã
åäœç¢ºèªããç°å¢
-
macOS Mojave 10.14.6
æ€èšŒããŠããŸããããWindowsãLinuxã§ãåäœãããšæããŸãã -
QGIS 3.8.2
LTRçã®ããŒãžã§ã³ã¯3.4.11ã§ãããè¿œå æ©èœãå€ãã®ã§ãç¹ã«çç±ããªãéãææ°çãå°å ¥ããã®ãããã§ãããã -
JDK1.8.0_202
ããŒãžã«çšããonebusaway-gtfs-merge-cliã¯JDK1.8ã§ããã³ã³ãã€ã«ãåããªãæš¡æ§ãMacç°å¢ãžã®ã€ã³ã¹ããŒã«ã¯ãMacã®Brewã§è€æ°ããŒãžã§ã³ã®Javaãå©çšãã + jEnvããåèã«ãªããŸãã -
PostgreSQL 11.3+PostGIS 2.5ïŒããããHomebrewã§ã€ã³ã¹ããŒã«ïŒ
Step1: OpenTripPlannerã®ããã®ããŒã¿æºå
ä»åã¯ãã¹ã®GTFSããŒã¿ãæã£ãŠãã矀銬çã察象ã«ããŒã¿ãçšæããŸãã
1-1. GTFSããŒã¿
éå»èšäºã矀銬çå ¬å ±äº€éãªãŒãã³ããŒã¿ïŒGTFSïŒãäžæ¬ããŠããŒã¿ããŒã¹ã«æ ŒçŽããæ¹æ³ããåèã«ã矀銬çã®GTFSããŒã¿ãã矀銬çå ãã¹è·¯ç·æ å ±ïŒæšæºçãªãã¹æ å ±ãã©ãŒãããïŒãããäžæ¬ããŠã³ããŒãããŸããæ¥æ¬äžå€®ãã¹ãæ°žäºé茞ã«é¢ããŠã¯ãããããã®WebããŒãžããæäœæ¥ã§ããŠã³ããŒãããŸãã
ãã®ãŸãŸã§ãæ§ããªãã®ã§ãããå³ç€ºããããšãèãããšPostgreSQLãžããŒã¿ãã€ã³ããŒãããæ¹ãæ±ããããã®ã§ãåè¿°èšäºã®æé ã«åŸã£ãŠãGTFSããŒã¿ã®è§£åâGTFSããŒã¿ã®ããŒãžãããŒã¿ããŒã¹ãžã®æå ¥ããšäœæ¥ãé²ããŠãããŸãããªããããŒãžã®äœæ¥ã¯æå ã®ç°å¢ã§ã¯3æéçšåºŠæãã£ãã®ã§ãæéã«äœè£ããããšãã«è¡ãããšããå§ãããŸãã
1-2. OpenStreetMapããŒã¿
矀銬çãšãªã¢ã®OpenStreetMapããŒã¿ãåãåºããŸãããŸãã¯OSMããŒã¿ãæäŸããŠããgeofabrik.deãã颿±å°æ¹ã®ããŒã¿ãpbfãã©ãŒãããã§ååŸããŸããæ¬¡ã«ã矀銬çãšãªã¢ã®ããŒã¿ãåãåºãããã«osmosisãã€ã³ã¹ããŒã«ããŸããmacOSãªã $ brew install osmosis ã§ã€ã³ã¹ããŒã«ãå®äºããŸããWindowsãLinuxã§ã¯å
¬åŒããŒãžã®ã€ã³ã¹ããŒã«æ¹æ³ãåç
§ããŠãã ãããåäœã«ã¯Javaãå¿
èŠã§ãã
æåŸã«ãããŒã¿åãåºããè¡ããŸãã矀銬çã®ç·¯åºŠçµåºŠã®æå°å€ãæå€§å€ã調ã¹ããã以äžã®ã³ãã³ãã§åãåºããå®äºããŸããç§ã®ç°å¢ã§ã¯ã颿±å
šåã§247MBãã£ãããŒã¿ããã38MBã®ããŒã¿ãåãåºãããŸããã
$ osmosis --read-pbf kanto-latest.osm.pbf --bounding-box top=37.0586280822754 left=138.397018432617 bottom=35.9853324890137 right=139.669952392578 completeWays=yes --write-pbf gunma.pbf
1-3. éœéåºçãåãå²ã緯床çµåºŠã調ã¹ã
ãšããã§ãããã§åºãŠãã矀銬çã®ç·¯åºŠçµåºŠã®æå°å€ãæå€§å€ã¯ã©ã®ããã«èª¿ã¹ãã®ã§ããããïŒå°å³äžã§åœãããä»ããŠãããã®ã§ãããããŒã¿ããæ±ãããšãããã以äžã®ãããªããæ¹ã«ãªããšæããŸãã
-
åœåæ°å€æ
å ±ãè¡æ¿åºåããŒã¿ã®å
¥æã
ãªã³ã¯å ããããŠã³ããŒãããŸãã矀銬çã ãã§ãããã§ãããç§ã¯å šåœçãããŠã³ããŒãããŸããã - ããŒã¿ãPostgreSQL+PostGISãžæå ¥ããã·ã§ãŒããã¡ã€ã«ã®ããŒã¿ãã€ã³ããŒãããŠã¿ãã ã³ãã³ãã©ã€ã³ç·šããåèã«ããŠè¡ããŸããã
$ shp2pgsql -W cp932 -D -I -s 4612 N03-19_190101.shp t1 > N03-19_190101.sql
$ psql all_japan -f N03-19_190101.sql
- PostGISã®é¢æ°ãçšããŠBoundingBoxã®åº§æšãååŸã
select
n03_001,
count(*),
st_astext(ST_BoundingDiagonal((ST_Multi(ST_Union(geom)))))
from
t1
where
n03_001 = '矀銬ç'
group by
n03_001
ãããå®è¡ããããšã§ã以äžã®ãããªçµæãåŸãããŸããããã¯ã矀銬çå šäœãåãŸãé·æ¹åœ¢ã®å¯Ÿè§ç·ã§ãããå¿ èŠãšãªãå€ãããããåŸãããŸãããªããä»ã®éœéåºçã§å®è¡ããå Žåã¯å³¶å¶Œéšãªã©ã«æ³šæããŠãã ãããæãã®ã»ãåºãé åã®ããŒã¿ãåŸãããããšããããŸãã
LINESTRING(138.397018432617 35.9853324890137,139.669952392578 37.0586280822754)
Step2. OpenTripPlannerã®ã»ããã¢ãããšèµ·å
OpenTripPlannerïŒOTPïŒã¯ããªãŒãã³ãœãŒã¹ã§éçºãããŠããå ¬å ±äº€éã®çµè·¯æ€çŽ¢ãšã³ãžã³ã§ãããããã乿æ¡å ãµãŒãã¹ã®ãããªä»çµã¿ãäœãããšãã§ããæµ·å€ã§ã¯åçšã®ã¢ããªããµãŒãã¹ã«ã䜿ãããŠããŸããããã§ã¯ãOpenTripPlannerãçšæãããŒã¿ãèªã¿èŸŒãŸãèµ·åããŸãã
2-1. OpenTripPlannerã®ããŠã³ããŒã
ã³ã³ãã€ã«æžã¿ã®ãã¡ã€ã«ãMaven Central Repositoryã® OTPãã£ã¬ã¯ããªã«çœ®ãããŠããã®ã§ãææ°ïŒèšäºæç¹ã§1.4.0ïŒã® otp-1.4.0-shaded.jarãããŠã³ããŒãããŸããMavenç°å¢ãæ§ç¯ããããšã§ããœãŒã¹ã³ãŒãããèªåã§ãã«ãããããšãåºæ¥ãŸãã
2-2. OpenTripPlannerã®èµ·å
ããŠã³ããŒãããjarãã¡ã€ã«ãGTFSãã¡ã€ã«ãOSMãåãåºãã.pbfãã¡ã€ã«ãåäžã®ãã£ã¬ã¯ããªã«çœ®ãã以äžã®ã³ãã³ãã§OTPãèµ·åããŸããèµ·åã«ã¯å€å°æéãæãããŸãã
$ java -Xmx3G -jar otp-1.4.0-shaded.jar --build ./ --inMemory
3-3. OpenTripPlannerã®åäœç¢ºèª
èµ·åãæåãããšã http://localhost:8080ã§ãµãŒãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãããã®ç¶æ
ã§äŸãã°ä»¥äžã®URLã«ã¢ã¯ã»ã¹ãããšã矀銬çåºïŒç·¯åºŠ36.390714, çµåºŠ139.060474ïŒããé«åŽåžåœ¹æïŒç·¯åºŠ: 36.321909 çµåºŠ: 139.003305ïŒãžã®çµè·¯ã®æ
å ±ãXML圢åŒã§ååŸåºæ¥ãŸãã詳现ã¯ãåè¿°èšäºãå
¬åŒããã¥ã¡ã³ããåç
§ããŠãã ããã
http://localhost:8080/otp/routers/default/plan?fromPlace=36.390714,139.060474&toPlace=36.321909,139.003305&time=1:02pm&date=08-30-2019&mode=TRANSIT,WALK&maxWalkDistance=500&arriveBy=false&numItineraries=5
Step3. å°éåã瀺ãGeoJSONããŒã¿ãåŸã
OpenTripPlannerã®æ©èœãšããŠãå°éåã瀺ãå³ãGeoJSON圢åŒã§åºåããããšãåºæ¥ãŸããåé ã«ç€ºããå°å³ã¯ã以äžã®URLã§åŸãããããŒã¿ãå¯èŠåããŠããŸãã
http://localhost:8080/otp/routers/default/isochrone?fromPlace=36.390714,139.060474&mode=WALK,TRANSIT&date=08-30-2019&time=1:00pm&maxWalkDistance=500&cutoffSec=600&cutoffSec=1200&cutoffSec=1800&cutoffSec=2400&cutoffSec=3000&cutoffSec=3600&cutoffSec=4200&cutoffSec=4800&cutoffSec=5400
URLã«æž¡ããã©ã¡ãŒã¿ã¯ãAPIããã¥ã¡ã³ãã®LIsochroneã«èª¬æãããŠããŸããäž»ãªãã©ã¡ãŒã¿ã解説ããŸãã
å ±éãã©ã¡ãŒã¿
| ãã©ã¡ãŒã¿ | å€ | åè |
|---|---|---|
| mode | WALK,TRANSIT | å©çšãã亀éã¢ãŒããããã§ã¯åŸæ©ãšå ¬å ±äº€éãæå®ã |
| maxWalkDistance | 500 | åŸæ©ç§»åã®æå€§è·é¢ïŒåäœã¯ã¡ãŒãã«ïŒããã¹åãŸã§é·è·é¢åŸæ©ã§ç§»åããã®ã¯çŸå®çã§ã¯ãªãã®ã§ãããã§ã¯500mã«èšå®ã |
| cutoffSec | 600ãªã©ãè€æ°æå® | ãã®ç§æ°ã§å°éããé åã®å³åœ¢ãåºåãããããã®äŸã§ã¯ã10åããšã«90åãŸã§æå®ããŠããã |
äŸ: åæ©é§ ã12:55ã«åºçº
| ãã©ã¡ãŒã¿ | å€ | åè |
|---|---|---|
| fromPlace | 36.383337,139.073288 | åæ©é§ ã®ç·¯åºŠçµåºŠ |
| toPlace | äžèŠ | |
| arriveBy | ããã©ã«ãå€ãªã®ã§äžèŠãå€ãèšå®ããå Žåã¯falseã | |
| date | 08-30-2019 | åºçºæ¥ |
| time | 12:55pm | åºçºæå» |
äŸ: 矀銬倧åŠèç§ãã£ã³ãã¹ã«åå9æãŸã§ã«å°ç
| ãã©ã¡ãŒã¿ | å€ | åè |
|---|---|---|
| fromPlace | 36.390714,139.060474 | ã©ã®å°ç¹ã§ãããããã ãèšå®ããªããšãšã©ãŒã«ãªã |
| toPlace | 36.431807,139.046411 | 矀銬倧åŠèç§ãã£ã³ãã¹ã®ç·¯åºŠçµåºŠ |
| arriveBy | true | |
| date | 08-30-2019 | å°çæ¥ |
| time | 9:00am | å°çæå» |
é©åœã«ãã©ã¡ãŒã¿ãèšå®ããURLãå©ããŠåŸãããGeoJSONãã¡ã€ã«ãä¿åããŸãã
Step4. QGISã§ããŒã¿ã衚瀺ãã
åŸãããGeoJSONãã¡ã€ã«ãQGISã«èªã¿èŸŒãŸããŸãã
4-1. GeoJSONãã¡ã€ã«ãèªã¿èŸŒã
ã¬ã€ã€âã¬ã€ã€ã®è¿œå âãã¯ã¿ã¬ã€ã€ã®è¿œå ã§ããŒã¿ãœãŒã¹ãããŒãžã£ã®ç»é¢ãéããOpenTripPlannerããåºåããGeoJSONãã¡ã€ã«ã以äžã®ããã«èšå®ãèªã¿èŸŒã¿ãè¡ããŸãã
ã远å ããæŒããšãããŒã¿ãèªã¿èŸŒãŸãQGISã®ç»é¢ã«è¡šç€ºãããŸãããã®æ®µéã§ã¯ãè²ã¯ã©ã³ãã ã«å²ãåœãŠãããŸãã
4-2. ããŒã¹ãšãªãå°å³ãèšå®
èªã¿èŸŒãŸããããŒã¿ãè§£éããããã«ãããŒã¹ãšãªãå°å³ãèªã¿èŸŒãŸããŸããããã§ã¯å°çé¢å°å³ã®æ·¡è²å°å³ã䜿ããŸãããOpenStreetMapãMIERUNEå°å³ãªã©ãåæ§ã®æ¹æ³ã§èšå®åºæ¥ãŸãã
å·Šäžã®ãã©ãŠã¶ãŠã£ã³ããŠãŸãã¯ã¬ã€ã€âããŒã¿ãœãŒã¹ãããŒãžã£âãã©ãŠã¶ç»é¢äžã®XYZ Tilesãå³ã¯ãªãã¯ããæ°ããæ¥ç¶ããéžæãå°çé¢å°å³ã®WebããŒãžãåèã«ã以äžã®ããã«æ
å ±ãèšå®ããŸãã
XYZ Tilesã®äžã§ãå°çé¢å°å³ïŒæ·¡è²ïŒããéžã¹ãããã«ãªãã®ã§ããããããã«ã¯ãªãã¯ããŸãã¯ãã©ãã°ã¢ã³ãããããããŠå·Šäžã®ãã¬ã€ã€ããŠã£ã³ããŠã«è¿œå ããŸããã¬ã€ã€ã®äžäžé¢ä¿ã調æŽããå°çé¢å°å³ãäžãGeoJSONããŒã¿ãäžã«éãªãããã«ããŸãããããŸã§ã®æäœã§ä»¥äžã®ãããªç»é¢ãåŸãããŸãã
ç»é¢ã¯èªç±ã«ã¹ã¯ããŒã«ãæ¡å€§ãçž®å°ãåºæ¥ãŸããããã¹ã¯ããŒã«ããããŠå ã®äœçœ®ãèŠå€±ã£ãå Žåããã¬ã€ã€ããŠã£ã³ããŠã®GeoJSONããŒã¿ãå³ã¯ãªãã¯ãããã¬ã€ã€ã®é åã«ãºãŒã ããéžæããããšã§ãããŒã¿å šåã衚瀺ããã瞮尺ã«èªå調æŽãããŸãã
4-3. ã¬ã³ããªã³ã°ã«çšãã座æšç³»ãèšå®ãã
GeoJSONãã¡ã€ã«ã®åº§æšç³»ã¯æšæºã§WGS84ã§ãããQGISã§ããããåŒãç¶ãã§WGS84ã®åº§æšç³»ïŒEPSG:4326ïŒã§ã¬ã³ããªã³ã°ãè¡ãããŸããããããã®åº§æšç³»ã¯ãèæ¯ãšãªãå°çé¢å°å³ãšåã£ãŠããªããããããèŠããšæåãã€ã¶ããŠããŸããç»é¢å³äžã®ãEPSG: 4326ããšæžãããéšåãã¯ãªãã¯ãããããžã§ã¯ãã®ããããã£ãããWGS 84 / Pseudo-MercatorïŒEPSG 3857ïŒããéžæããããšã§ãããŒã¹å°å³ã«åãããæªã¿ã®å°ãªãå°å³è¡šç€ºãå¯èœã«ãªããŸãããªãããã®æåœ±æ³ã¯Google Mapsã§çšããããŠããæåœ±æ³ãšåãã§ãã

4-3. è²ãèšå®ãã
衚瀺ããŠããããŒã¿ã¯ã10åã§è¡ããç¯å²ã瀺ãããªãŽã³ã20åç¯å²ã®ããªãŽã³ïœ¥ïœ¥ïœ¥ãšããããã«ã9åé¡ã®ããªãŽã³ããŒã¿ãå«ãã§ããŸãããã®ãŸãŸã§ã¯æå³ãäŒãããŸããããé©åã«å¡ãåããããšã§çé«ç·ã®ãããªåœ¢ã§æ å ±ã®æå³ã衚çŸåºæ¥ãããã«ãªããŸãã
ã¬ã€ã€ãŠã£ã³ããŠãå³ã¯ãªãã¯ããããããã£ã衚瀺ããŸããããã§ãã¬ã€ã€ã«é¢ããæ§ã ãªèšå®ãåºæ¥ãã®ã§ãè²ãæåæ å ±ãèšå®ããŸãã
ãŸããè²ã¯ãã·ã³ãããžããšããŠèšå®ãåºæ¥ãŸããäžçªäžã®çš®å¥ããåäžã·ã³ãã«ïŒsingleïŒããããåé¡ãããïŒcategolizedïŒãã«å€æŽããåé¡ã«äœ¿ãã«ã©ã ããtimeããã«ã©ãŒã©ã³ãããSpectralãã«å€æŽããŠãåé¡ããã¿ã³ãæŒããŸããããã§9è²ã«å¡ãåããããããã«ãªããŸããå¡äŸã®æååãé©åã«èšå®ãããApplyããæŒããšè¡šç€ºãåãæ¿ãããŸãã
ãã®ãŸãŸã ãšå¢çç·ã匷ãããã®ã§ããã·ã³ãã«ãã®ã倿Žããã¯ãªãã¯ãããã·ã³ãã«å¡ãã€ã¶ããã®ãã¹ãããŒã¯è²ããé»ããã°ã¬ãŒã«ãã¹ãããŒã¯å€ªãã现ãããŸãããããã§è²ã®å¡ãåãããã£ããããŸãã
æåŸã«ããã¬ã€ã€ã¬ã³ããªã³ã°ãã®â²ãã¯ãªãã¯ããŠè©³çްã衚瀺ãããäžéæåºŠã調æŽããããšã§äžã®å°å³ãèŠãã衚瀺ã«ãªããŸãã
ããã§ããŒã¿ã®å¡ãåãã¯åºæ¥ãŸããããã¬ã€ã€ãç»é¢ã§ã¯ã衚瀺ãããã¬ã€ã€ãéžæåºæ¥ãããã«ãªãã®ã§ãäŸãã°30åç¯å²ã ãã衚瀺ããšãã£ãããšãåºæ¥ãŸãã
4-4. ã©ãã«ãèšå®ããïŒæªå®ïŒ
è²ã ãã§ãªããå°å³äžã«æåã§æéã瀺ãããšã§ãããããããã衚瀺ãå®çŸããŸããåããã¬ã€ã€ã®ããããã£ãããã©ãã«ããéžæããèšå®ãé²ããŸãã
ãŸãã¯ãã¡ã°ãäžããã©ãã«ãªãããããåäžã®ã©ãã«ãã«å€æŽããã©ãã«ãšããŠtimeãèšå®ããŸãããã®ãŸãŸã§ã¯ç§åäœã§è¡šç€ºãããŠããŸãã®ã§ãto_string(time/60) + 'å'ãšãããšååäœã®ãããæã衚瀺ã«ãªããŸãããããã¹ããã®èšå®ã«ãããŠãã©ã³ããæåã®å€§ãããªã©ãé©åã«èšå®ããŠãã ããããã®æ®µéã§ã¯ã©ãã«ã眮ãããäœçœ®ã¯æ°ã«ããªãããšã«ããŸãããŸããããããã¡ãã®èšå®ã«ãããŠãããã¹ããããã¡ãæç»ãããã«ãã§ãã¯ãä»ããæåãç®ç«ã€ããã«åšãã«çžåããããŸãã
ã©ãã«ãšãªãæåã®äœçœ®ã¯ãå³åœ¢ã®äžå¿ããå¢çç·ã«æ²¿ã£ãŠããã»ããåããããããšæããŸãããé 眮ãã®èšå®ã«ãããŠãå¢çç·ã®äœ¿çšããéžæããã蚱容ãããäœçœ®ãããã©ã€ã³ã®å·Šããšããå¢çç·ã®å åŽã«æåã衚瀺ãããããã©ã€ã³ã®æ¹åã«äŸåããäœçœ®ãããã§ãã¯ããŸããããã§ãã©ã€ã³äžããéžæããããšãåºæ¥ãŸããããã®ã»ããçé«ç·ãããæ°ãããã®ã§ãããå人çã«ã¯å¢çç·ã®å åŽã«ã©ãã«ã衚瀺ãããæ¹ãèŠãããæããŸãããç·ãé·ããšãã«ç¹°ãè¿ãã©ãã«ã衚瀺ãããå埩ããé©åãªå€ã«èšå®ããŸãã
ç¶ããŠãæç»ãã®èšå®ã«ãããŠããã«ãããŒãå°ç©ã®åããŒãã«åºåãããã§ãã¯ããŸããã²ãšã€ã®æé垯ã«çŽä»ãããšãªã¢ãè€æ°ã®ããªãŽã³ããæãç«ã£ãŠããããããã®ãã§ãã¯ãå¿ èŠã«ãªããŸãã
ãããŸã§èšå®ããããšã§ãçé«ç·ã®ã©ãã«ãåºåãããã¯ããªã®ã§ãããããèŠããšããŸããã£ãŠããŸããã

äžå³ã®ããã«æ¡å€§ããŠããèŠããšãåäžã®ç·äžã«20åã30åã40åã50åã60åã70åã80åãæç»ãããŠãããã©ãèªã¿åã£ãããããåãããŸããããã®åå ã¯ãåæé垯ã®å°éåãéãªã£ãŠããããã§ããåŸæ©ãæå€§500mãšããŠããããããã¹ããªããšãªã¢ã§ã¯ãã以äžé²ãããšãåºæ¥ããå°éåãåºãããªãã®ã§ããå³åœ¢ãšããŠã¯20åã®è²ã§å¡ãããŠããã®ã§ããããã®äžã«30ã90åã®å°éåãåããšããã«éãªã£ãŠããããšãã衚瀺ã¬ã€ã€ãŒãåãæ¿ããããšã§ç¢ºèªã§ããŸããã©ãã«ã¯äžã«é ããå³åœ¢ã«é¢ããŠã衚瀺ããããããåäžç·äžã«ç°ãªãæéã衚瀺ãããã®ã§ãã
å°ççãªçé«ç·ãªããã®ãããªããšã¯ã»ãšãã©èµ·ãããªããšæãããã®ã§ããããããšæ€çŽ¢ããŠãèšäºæçš¿æç¹ã§ãã®çŸè±¡ãã©ã®ããã«æãããããåãããããã®ãŸãŸæçš¿ããŠãããŸãããã«ãŒã«ã«åºã¥ããã©ãã«ãã«èšå®ããåæé垯ããšã«ç°ãªãåªå 床ãz-indexãèšå®ããŠãã»ãšãã©çµæã¯å€ããããã©ã®ããã«ããããããåãã£ãŠãããŸããã
ä¿®æ£æ¹æ³ãããããã®æ¹ããŸãããããµããããã©ãã«ã®åºåæ¹æ³ãèããããæ¹ãæ¯éã³ã¡ã³ããé ããããšæããŸãã
Step5. GTFSããŒã¿ã衚瀺ãã
äžèšãŸã§ã®äœæ¥ã§çæç·å°å³ã¯äœæåºæ¥ãã®ã§ãããGTFSããŒã¿ã«å«ãŸãããã¹åãè·¯ç·ã®æ å ±ãå°å³äžã«éããããšã§ããã¹ã«ããå°éåãããçè§£ãããããªããŸãããã®ãããStep1-1ã«ãããŠGTFSããŒã¿ã¯ããŠã³ããŒãããã ãã§ãªãããŒãžããŠäžæ¬ããŠPostgreSQLã«æå ¥ããŠããããšãæãŸããã§ãã以äžã¯ãPostgreSQLã«ããŒã¿ãããåæã§èª¬æããŸãã
5-1. ãã¹åããŒã¿ãèªã¿èŸŒã
ãã¬ã€ã€ãâãã¬ã€ã€ã®è¿œå ãâãPostGISã¬ã€ã€ã®è¿œå ãããGTFSããŒã¿ãå
¥åããPostgreSQLã®ããŒã¿ããŒã¹ãæå®ããstopsããŒãã«ãéžæããŠè¿œå ããŸãã
ååã®æ¥ç¶ã§ã¯ãPostgreSQLã®æ¥ç¶ãèšå®ããå¿ èŠããããŸããé©åãªãã¹ãåãããŒã¿ããŒã¹åãªã©ãèšå®ããŠãã ããã以äžã¯ç§ã®ç°å¢ã«ãããèšå®äŸã§ãã
ãã®æ®µéã§å°å³äžã«ç¹ã衚瀺ãããŸããããšã¯ãé©å®è²ãã©ãã«ãèšå®ããŠãã ãããã©ãã«ã®æåã¯stop_nameã®å€ãèšå®ããŸããã©ãã«ã®æ°ãå€ãã®ã§ããæç»ãèšå®ã®ãã©ãã«ä»ãããå°ç©ã®æ°ãå¶éãã200ã«èšå®ããŸãããä»ã«ãã瞮尺ããšã«èšå®ãå€ãããªã©ã®èšå®ãåºæ¥ãŸãã
åäžã®ãã¹ååã䞊ãã§è¡šç€ºãããã®ã¯ããã¹åããŒã¿ãå šãŠã®ä¹ãå Žã代衚ç¹ã®äœçœ®ãªã©ãå«ãã§ããããã§ãããããåå¯ããããšãã£ããããå°å³ãäœããŸããããã®èšäºã®ç¯å²ãè¶ ããŠããã®ã§ããã§ã¯è§£èª¬ããŸããã端çã«è¿°ã¹ããšãäŸãã°ãçåºåããæ¡å€§ãããšãäºæ¥è ããšã«åŸ®åŠã«è¡šèšãéããã¹åã埮åŠã«éãäœçœ®ã«ããããèšå®ãããŠãããããããŸãšããã®ã¯ã¡ãã£ãšããäœæ¥ã«ãªã£ãŠããŸãã®ã§ãã
5-2. è·¯ç·ããŒã¿ãèªã¿èŸŒã
äžéšã®GTFSããŒã¿ã¯ãè·¯ç·ã®åœ¢ç¶ããŒã¿ïŒåã³ãã®è²æ
å ±ïŒãæã£ãŠããŸãããã¹çšåºŠåæ§ã«ãã¬ã€ã€ãâãã¬ã€ã€ã®è¿œå ãâãPostGISã¬ã€ã€ã®è¿œå ãããGTFSããŒã¿ãå
¥åããPostgreSQLã®ããŒã¿ããŒã¹ãæå®ããroutesããŒãã«ãéžæããŠè¿œå ããŸããGTFSããŒã¿ã«ãããŠãè·¯ç·ã¯shapes.txtã«ç¹ã®éåãšããŠå®çŸ©ãããŠããã®ã§ãããPostgreSQLã«èªã¿èŸŒã段éã§ãrouteã®å±æ§ã®ã²ãšã€ãšããŠãMultiLineã«å€æããæ ŒçŽãããŠããŸãã
äžéšã®ããŒã¿ã¯è·¯ç·ã®è²æ
å ±ãæã£ãŠããã®ã§ãããã衚瀺ã«åæ ãããŸãããããã¬ã€ã€ããããã£ãã®ãã·ã³ãããžããã·ã³ãã«ã©ã€ã³ãã®ãè²ããã¿ã³ã®å³åŽã®ã¢ã€ã³ã³ãã¯ãªãã¯ãããç·šéããéžã³ãŸããããã§åºãŠãããåŒæååãšãã£ã¿ãã«if ( length("route_color") > 0, '#ff' + "route_color", '#ffbac044')ãšå
¥åãããšãroute_colorãèšå®ãããŠãããšãã ããç·ã®è²ãåæ ãããããã«ãªããŸããè²æ
å ±ãæã£ãŠããªãå Žåã®è²ã¯#bac044ãšããŠããŸãïŒç¹ã«çç±ã¯ãããŸããïŒã
ããã§è·¯ç·ãæç»ãããããã«ãªããŸãããã ããçŸç¶è·¯ç·ããŒã¿ãæã£ãŠããã®ã¯ãèªç€Ÿã§ããŒã¿æŽåãããŠããæ°žäºãã¹ã𿥿¬äžå€®ãã¹ã®ã¿ã«ãªããŸãããã以å€ã®ãã¹è·¯ç·ã¯ç·ãåŒãããªãã®ã§ãã©ãããŠãè·¯ç·å³ãäœãããå Žåã¯ãã¹åéãçŽç·ã§ã€ãªããªã©ã®å·¥å€«ãå¿ èŠã«ãªããŸãã
ãããŸã§ã®äœæ¥ã§ã以äžã®ãããªå°å³ãäœããŸããã

Stop6. ããŒã¿ã远å ããŠQGISã®è¡šç€ºãæŽããïŒä»»æïŒ
èæ¯å°å³ãšãã¹ã®æ å ±ã ãã§ãªããããã€ãã®ããŒã¿ã远å ããŠéããããšã§ããã®å°åã®äº€éç¶²ãããææ¡ãçè§£ãããããªããŸãããããªçšéã«äœ¿ããããŒã¿ãããã€ã玹ä»ããŸãã
远å ããŒã¿1: åœåæ°å€æ å ± ééããŒã¿
ä»åã®å°éåã«ã¯ééããŒã¿ããªãããã¹ã®ã¿ã«ããããŒã¿ãšãªã£ãŠããŸããããããéœåžã®äº€éãããã¯ãŒã¯ãææ¡ããããã«ã¯ééè·¯ç·ãçè§£ããããšã¯å¿ èŠã§ãããã®ãããåœåæ°å€æ å ±ããééããŒã¿ãããŠã³ããŒãããQGISã«è¿œå ããŸããããŒã¿ã«ã¯ç·è·¯åœ¢ç¶ãšé§ ãå«ãŸããŠãããæ°å¹¹ç·ãåšæ¥ç·ãç§éãåé¡ããŠã¬ã³ããªã³ã°ããŸãããã ããæå»ããŒã¿ãå«ãã§ããããã§ã¯ãªãã®ã§ãä»åã®çšéã«ãããŠã¯äžçµµã®ãããªäœçœ®ä»ãã«ãªããŸãã
远å ããŒã¿2: åœåæ°å€æ å ± è¡æ¿åºåããŒã¿
矀銬çãå²ã緯床çµåºŠãæ±ããè¡æ¿åºåããŒã¿ã衚瀺ããããšã§ãåžçºæåãåžçºæçãå³ç€ºã§ããŸããäº€éæ¿çã¯éœåžåäœã§è°è«ãããããšãå€ãã®ã§ãã©ããå¢çããææ¡ããããšã¯éèŠã§ããäŸã«ãããŠã¯ãè¡æ¿åºåããšã«è²ãå¡ãåãéé衚瀺ããŠããŸããè¡æ¿åºåããŒã¿ã¯ãæåã®å€§å䜵ãå¹³æã®å€§å䜵以åã®ããŒã¿ãæŽåãããŠããã®ã§ãå°åã®æãç«ã¡ãªã©ãèžãŸããŠçè§£ãããšãã¯ãéå»ã®ããŒã¿ãéããã®ãæå¹ã§ãã
远å ããŒã¿3: éè¡é »åºŠè·¯ç·å³
ïŒæ ªïŒãã©ãã£ãã¯ãã¬ã€ã³ã®å€ªç°æå¹³æ°ãäœãæ¹ãå«ããŠç޹ä»ãããŠããéè¡é »åºŠå³ãäœå³ããŠéããŠã¿ãŸããïŒäŸãã°2019幎4æ20æ¥éå¬ã®æšæºçãªãã¹æ å ±ãã©ãŒããã/GTFSååŒ·äŒ #1ã§å®ç¿åœ¢åŒã§äœææ¹æ³ã玹ä»ããŠããŸãïŒãè·¯ç·ããšã«éè¡æ¬æ°ã倪ãã§å¯èŠåãããŠããã®ã§ããµãŒãã¹ã®å å®å ·åãå ·äœçã«ææ¡ã§ããŸããããã§ã¯ãŸãšããŠããŸãããäºæ¥è ããšã«è²åããããªã©ãåºæ¥ãŸãããªããéè¡é »åºŠè·¯ç·å³ãäœå³ããéã«ã¯ãã¹åãåå¯ãããããšãæãŸããã§ãã矀銬çã®ããŒã¿ã«å¯ŸããŠã©ã®ããã«åå¯ããåºæ¥ããã¯ãå¥èšäºã§è§£èª¬ããããç¥ããŸããã
远å ããŒã¿4: åœå¢èª¿æ» 人å£ããŒã¿
e-Statã®WebããŒãžããã2015幎ã®åœå¢èª¿æ»ã®ïŒ»äººå£çåºæ¬éèšã«é¢ããäºé ããããŠã³ããŒãåºæ¥ãŸãã矀銬çã«çµã蟌ãã ããŒã¿ã¯ãã®ãªã³ã¯ããããŠã³ããŒãåºæ¥ãŸããããŒã¿ã¯CSVãã¡ã€ã«ã§æäŸãããŠãããå°çæ å ±ãå«ãã§ããªãã®ã§ãå¥ã«4次ã¡ãã·ã¥ã®å¢çããŒã¿ããŠã³ããŒãããŸãããããã®ããŒã¿ãçŽä»ããŠQGISã«èªã¿èŸŒãã§ãã ããã
ã®ã£ã©ãªãŒ
ãããã®ããŒã¿ãå©çšããŠãããã€ãå°éåè§£æã詊ããŠã¿ãŸããã
åæ©é§ 12:55çºã®å°éåè§£æ
JRã«ä¹ã£ãŠåæ©é§ ã«å°çããããšãæ³å®ããŠãã¹ã«ããå°éåã瀺ããŠã¿ãŸãããåºããæŸå°ç¶ã«åºãã£ãŠããããšãåãããŸãã1æ¥ã®äŸ¿æ°ã15æ¬ååŸïŒ1æéã«1æ¬çšåºŠïŒã®ãã¹è·¯ç·æ²¿ç·ã«ãå°éåãåºãã£ãŠããŸãããJRã1æ¬ãããããã©ã®ãããåºãïŒçãïŒãªããèå³ãæ¹§ããŸãããã ãããã®è§£æã«ã¯JRãç§éãå«ãã§ããªãã®ã§ãäžæ¯é»é沿ç·ãå°éåå€ã«ãªã£ãŠãããªã©å®æãšã¯ç°ãªãããã§ããå°åã®äº€éãæ¬åœã«åæããããã«ã¯ããã¹ã ãåºãªãééã®ããŒã¿ãå¿ èŠã«ãªãããšãåãããŸãã
矀銬倧åŠ9:00çã®å°éåè§£æ
矀銬倧åŠã«å ¬å ±äº€éã§éãããã«ã¯ã©ãã«äœãã ãããã§ããããïŒå®ã¯ããã®ãšãªã¢ã¯ååã«é¢è¶äº€éã®è·¯ç·ãå»¶ã³ãŠããã1æ¥70åŸåŸ©çšåºŠïŒåæ©é§ æ¹é¢ïŒã50åŸåŸ©çšåºŠïŒæžå·é§ æ¹é¢ïŒãšãããªãã®æ¬æ°éè¡ããŠããã®ã§ãããã®ãããååæ¹åããã¯æ¯èŒç倧åŠã«éããããããšãåãããŸãããã以å€ã¯äžåºŠåæ©é§ ã«è¡ã£ãŠããä¹ãæããå¿ èŠãªããã§ãæéãæãããŸãããããããèŠããšãå ¬å ±äº€éãç¹ãã£ãŠããªãæ±è¥¿æ¹åã«ã¯åœé17å·ç·ãã€ãã¹ãèµ°ã£ãŠãããèªåè»ã䜿ãã°é¥ãã«åºããšãªã¢ãã容æã«ã¢ã¯ã»ã¹ã§ãããã§ãã倧åŠçãå®éã«ã©ãã«äœãã§ã©ãéã£ãŠãããã調ã¹ãŠæ¯èŒããŠã¿ããšè峿·±ããã§ããã
åæ©èµ€ååç é¢8:30çã®å°éåè§£æ
åæ©èµ€ååç é¢ã¯2018幎6æã«ææ¥çºãã移転ããã°ããã®ãå€§èŠæš¡ãªç·åç é¢ã§ãããã¹ã«ä¹ã£ãŠèšºçåä»éå§æå»ã®8:30ã«å°çããããã«ã¯ãã©ããããåã«å®¶ãåºãå¿ èŠãããã§ãããããå®ã¯åšèŸºããèµ€ååç é¢ãšã®éã®ãã¹ã®æ¬æ°æŽŸãšæãå°ãªãã1æ¥5ïŒ6åŸåŸ©ã®è·¯ç·ãããã€ãã®æ¹åã«åºãŠããã ãã§ããç é¢ã®ç«å°ã¯äººå£ãããã»ã©å€ããªãç°åå°åž¯ã§ãã®ã§ããã¹ã§æ¥ãã人å£ã¯éããããã§ãã忝æ©é§ ã¯30ååå ã§ãããå°éåãå€ç«ããŠãããçŽè¡ãã¹ã§ç¹ãããšã§ééæ§ãå®çŸããŠããããã§ãããŸããåæ©ã«ããç é¢ã§ãããé«åŽåžæ¹é¢ãããçŽè¡ãããã¹ãããããã§ãããã®å°å³ãšãåæ©èµ€ååç é¢ã®å ¬åŒWebããŒãžã®äº€éæ¡å ãšãèŠæ¯ã¹ãŠã¿ãã®ãé¢çœãããç¥ããŸããã
é«åŽé§ 21:30çºã®å°éåè§£æ
é«åŽé§ åïŒè¥¿å£ïŒã21:30ã«åºãŠãããŸã ãã®3æ¹åãªãã°ãã¹ãããããã§ããæ²¿ç·ã«äœãã§ããã°ã2次äŒã¯ãšãããã1次äŒãŸã§ãªãåå åºæ¥ããã§ãããªã泚æãå¿ èŠãªã®ã¯ãããŒã¹ãšããŠããOpenStreetMapã®ããŒã¿ã«ãããŠé«åŽé§ ã®æ±è¥¿ãæ¥ç¶ãããŠããããåŸæ©ã§æ±è¥¿ãè·šãããšãæ€çŽ¢ã®æã«èæ ®ãããŠããªãããã§ããããã®æéã«ãæ±å£ããã®ãã¹ã¯ãªããããªã®ã§çµæãžã®åœ±é¿ã¯ã»ãšãã©ãªãã§ãããå©çšããŠããããŒã¿ã®å¶çŽã«æ³šæãå¿ èŠã§ãã
ãŸãšã
ãã®èšäºã§ã¯ããªãŒãã³ããŒã¿ããªãŒãã³ãœãŒã¹ã掻çšããå°éåè§£æã®æ¹æ³ã«ã€ããŠç޹ä»ããŸãããæè¡çã«ã¯ãŸã æŽç·ŽãããŠãããšã¯èšãé£ãã§ããã誰ã«ã§ãæã«å ¥ããããããŒã¿ããœãããŠã§ã¢ã§ããããŸã§å°åã®äº€éãç¶²çŸ çã«ææ¡åºæ¥ããšããããšãäŒããããããšæããŸãããã®å³ãäœãã ãã§ããã€ãŠã¯å€§ä»äºã§ãããããã€ã€ã䜿ããå¹³åæèŠæéãªã©ã§äœå³ããŠããã®ã§ãå¿ ããã宿 ã«åã£ãŠããŸããã§ããããã ããããŒã¿ããã¹ã«éãããšãšãOpenStreetMapã®ããŒã¿ã®å¶çŽã§åŸæ©çµè·¯ã®æ€çŽ¢ã®ä¿¡é Œæ§ãé«ããªãããšã«ã¯æ³šæãå¿ èŠã§ããOpenTripPlannerã®ã¢ã«ãŽãªãºã ãæ€èšŒãå¿ èŠããç¥ããŸããã
ãããã«ããŠãããã£ããå ¬éãããŠããå ¬å ±äº€éãªãŒãã³ããŒã¿ã§ãã®ã§ãä»åŸæŽã«äœ¿ãéãæ¡ããããã°ãšæã£ãŠããŸããä»åã®èšäºã§ç޹ä»ããå°éåè§£æã«ããçæç·å°å³ã®äœæããQGISãã©ã°ã€ã³ã§åºæ¥ãããã«ããããWebãµãŒãã¹åããããšãåºæ¥ããã§ããæ¯éãæ§ã ãªæŽ»çšãåºããããšãæåŸ ããŠããŸãã
