osm-by / OpenStreetMap.by

bugtracker for http://openstreetmap.by
http://openstreetmap.by
11 stars 6 forks source link

Tutorial: Как получить все остановки #21

Open abitrolly opened 4 years ago

abitrolly commented 4 years ago

Из телеграм канала.

ребята, прошу помощи 
в osm можно как то получить остановки транспорта в рб?

  1. Просто описать хоть где-нибудь, и добавить ссылку на сайт
  2. Добавить туториал на http://osmlab.github.io/learnoverpass//
  3. Добавить http://osmlab.github.io/learnoverpass/ на сайт

См. также https://github.com/osm-by/OpenStreetMap.by/issues/44 - как получить все баскебольные площадки.

folt commented 4 years ago

Если коротко - это нельзя сделать.
Дело в разметке. Часть остановок помеченные как точки дороги, часть как фигуры.
Так же они относятся к разным типам (точнее тегам, если говорить про терминологию OSM).
Пример:

public_transport=station
railway=station
amenity=bus_station

По этому считаю формулировку "Как получить все остановки" немного неудачной. Нужно понимать какие остановки нужны.

shrddr commented 4 years ago

вообще можно это все в один оверпасс запрос запихнуть, просто надо быть готовым к дубликатам

[out:json][timeout:25];
// gather results
(
  node["amenity"="bus_station"]({{bbox}});
  way["amenity"="bus_station"]({{bbox}});
  relation["amenity"="bus_station"]({{bbox}});
  node["public_transport"="station"]({{bbox}});
  way["public_transport"="station"]({{bbox}});
  relation["public_transport"="station"]({{bbox}});
  node["railway"="station"]({{bbox}});
  way["railway"="station"]({{bbox}});
  relation["railway"="station"]({{bbox}});
);
// print results
out body;
>;
out skel qt;
abitrolly commented 4 years ago

Смысл туториала тогда, чтобы не только научиться вытягивать данные, но обрабатывать их до готовности. Дубликаты, неправильная геометрия, как исправить, где соглашения посмотреть..