Как программно получить широту и долготу межгосударственных выходов США? - PullRequest
4 голосов
/ 25 декабря 2009

Есть ли способ сделать это, используя карту / API с открытым исходным кодом (Google Map API, Microsoft Live Map API)?

Или есть способ пересечь дороги и перекресток из файлов карт? (если я куплю коммерческие данные карты)

Спасибо.

Редактировать: либо с открытым исходным кодом, либо API

1 Ответ

2 голосов
/ 25 декабря 2009

Возможное решение на основе openstreetmap в зависимости от качества данных OSM в США.

Как описано здесь "Въездные рампы / дороги скольжения должны быть помечены как шоссе = motorway_link или шоссе = primary_link" если вы импортируете данные карты для США (используя osm2pgsql ) Затем можно выбрать все ссылки на автомагистрали.

например. (выбирает на основании моих собственных данных, то есть за пределами США)

openmapdb=# select osm_id, name, ref from planet_osm_roads where highway='motorway_link';
  osm_id  | name | ref 
----------+------+-----
 23683997 |      | 
 26436348 |      | 
 [..]

23683997 и 26436348 - это идентификаторы OSM - если вы нажмете на ссылки, то увидите, что они действительно являются рампами входа / выхода.

После того, как вы определили путь, вы можете получить доступ к широте и логитусу:

openmapdb=# select astext(st_transform(way, 4326)) from planet_osm_roads where osm_id = '23683997';                                                                                                                                             
    LINESTRING(24.8757131412186 44.8730730514894,[..]
(1 row)
...