Ответы пользователя по тегу OpenStreetMap
  • Как привязать карту к мобильному приложению на Java?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Например, Mapbox SDK до 25 тыс. пользователей в месяц бесплатно. Ну и вообще смотреть сюда для начального знакомства с вопросом.

    Кроме того, можно просто напрямую использовать тайловые сервера различных рендереров OSM, но нужно понимать, что у них может быть usage policy, например, у рендерера на главной странице официального сайта он такой, так что для активно используемого приложения лучше обратиться к коммерческим поставщикам или даже сделать рендеринг нужной территории самостоятельно (для территории одного города это потребует не так уж и много ресурсов).
    Ответ написан
  • Какое решение подобрать, если нужны карты?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Leaflet в чистом виде позволяет быстро отображать карту, остальной функционал придётся дорабатывать. Есть сервисы и софт для роутинга (brouter, osrm) по OSM, есть готовые реализации сайтов для добавления всяких меток (например, umap, но тут по контексту скорее всего нужно будет делать своё). В отличие от ЯГуглов, тут нет такого, чтобы в одном месте было всё и сразу. Зато бесплатно и открыто.
    Ответ написан
    Комментировать
  • Как узнать регион по широте и долготе?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    1. Качаем local.osm.pbf с gis-lab

    2. Извлекаем границы:

    mkdump:
    spoiler
    osmosis \
      --rb file=local.osm.pbf \
      --tf accept-relations boundary=administrative --uw --un \
      outPipe.0=rels \
      \
      --rb file=local.osm.pbf \
      --tf accept-ways boundary=administrative --un \
      outPipe.0=ways \
      \
      --merge \
      inPipe.0=rels \
      inPipe.1=ways \
      \
      --wb file=local-bounds.osm.pbf


    3. Загружаем границы в postgis:

    Файл стиля adm.style:
    spoiler
    node,way   name:ru         text      linear
    node,way   name:en         text      linear
    node,way   alt_name        text      linear
    node,way   alt_name:ru     text      linear
    node,way   official_name   text      linear
    node,way   admin_level  text         linear
    node,way   boundary     text         linear
    node,way   name         text         linear
    node,way   ref          text         linear
    node,way   place        text    linear


    Загрузка данных (в базу с именем local, префикс таблиц adm_):

    osm2pgsql -d local local-bounds.osm.pbf -S adm.style -s -p adm --multi-geometry


    4. Теперь можно запросом выяснить принадлежность любой точки:

    spoiler
    local=> select osm_id,name,boundary,admin_level from (select ST_Transform(ST_SetSRID(ST_MakePoint(37.6,55.6),4326),3857) as point) a,adm_polygon b where a.point && b.way and ST_Within(a.point,b.way) and boundary='administrative' order by admin_level::INT asc;
      osm_id  |             name              |    boundary    | admin_level 
    ----------+-------------------------------+----------------+-------------
     -1029256 | Центральный федеральный округ | administrative | 3
      -102269 | Москва                        | administrative | 4
     -1282181 | Южный административный округ  | administrative | 5
      -950664 | район Чертаново Южное         | administrative | 8
    (4 rows)


    Если данные загрузить в ту же базу - то можно одним запросом извлекать данные, принадлежащие нужной области.
    Ответ написан
    Комментировать
  • Как преобразовать данные из Openstreetmap в geoJSON?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Overpass не поддерживает экспорт в geojson, см. https://github.com/drolbr/Overpass-API/issues/48

    Вместо этого используют https://github.com/tyrasd/osmtogeojson/
    Ответ написан
  • Отключить вывод POI?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Cloudmade даёт какие-то возможности по настройке стилей для карты.

    В общем случае надо рендерить свои тайлы. В своё время делал textless-тайлы, на которые отдельно можно было накладывать тайлы с надписями на нужном языке (name:XX). Такой вот proof of concept
    Ответ написан
  • Движок для картографического сервиса?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно сам движок openstreetmap и поднять со своей базой. Правда, это будет стрельбой из пушки по комарам — слишком сложно и громоздко.

    Гораздо проще взять OpenLayers и на его основе реализовать добавление меток по клику. Пример решения такого рода — сервис OpenStreetBugs.
    Ответ написан
    Комментировать