Геометрия объекта (здания) на карте

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
p10ne
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 дек 2018, 19:39
Репутация: 0
Откуда: Ижевск

Геометрия объекта (здания) на карте

Сообщение p10ne » 29 дек 2018, 19:55

Доброго времени суток!
Стоит такая задача:
Вывести карту, нарисовать на ней некоторый круг; определить, какие здания находятся внутри этого круга; если здание находится на границе, то узнать, какая часть здания внутри, какая - снаружи.
Пробовал сделать это на Яндекс картах, но уперся в то, что у зданий в api нет информации об их геометрии.

Задача в рамках диплома в универе, если кому интересно: для прогнозирования последствий землетрясения. Круг - область с определенной бальностью землетрясения.

Вопрос:
Можно ли решить задачу с помощью других каких-либо систем? Сейчас изучаю OpenStreetMap + OpenLayers 3. Реализуемо ли это с данными средствами и в какую сторону надо копать? Какие гайды есть?
Спасибо за ответы!

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Геометрия объекта (здания) на карте

Сообщение trir » 29 дек 2018, 20:54

https://overpass-turbo.eu/
(around:radius,latitude,longitude)

тут три разные задачи:
1. Где взять данные
2. Как анализировать
3. Как отображать
и эти задачи совершенно не зависимы друг от друга

p10ne
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 дек 2018, 19:39
Репутация: 0
Откуда: Ижевск

Re: Геометрия объекта (здания) на карте

Сообщение p10ne » 29 дек 2018, 23:10

Спасибо, крутая штука.
Получил точки по запросу:

Код: Выделить всё

node(around:20,56.85,53.21);
out;
Ответ такой:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API 0.7.55.5 2ca3f387">
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base="2018-12-29T19:59:02Z"/>

  <node id="1397317817" lat="56.8499082" lon="53.2100989"/>
  <node id="1397317819" lat="56.8499274" lon="53.2102448"/>
  <node id="1397317834" lat="56.8500520" lon="53.2100274"/>
  <node id="1397317835" lat="56.8500724" lon="53.2101784"/>
  <node id="5366248785" lat="56.8500831" lon="53.2101874"/>
  <node id="5366248786" lat="56.8498255" lon="53.2100646">
    <tag k="barrier" v="gate"/>
  </node>
  <node id="5648241690" lat="56.8500582" lon="53.2099981"/>
  <node id="5648241691" lat="56.8498744" lon="53.2100488"/>
  <node id="5648241692" lat="56.8499054" lon="53.2102690"/>

</osm>

Спойлер
Изображение

Собственно,
trir писал(а):
29 дек 2018, 20:54
2. Как анализировать
как получить связанные точки, принадлежащие одному конкретному зданию?
с relationship не получается

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Геометрия объекта (здания) на карте

Сообщение trir » 29 дек 2018, 23:36

Код: Выделить всё

node(around:20,56.85,53.21);<->.a;
(way.a[building=yes];>;);
out;
(area.a[building=yes];>;);
out;

p10ne
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 дек 2018, 19:39
Репутация: 0
Откуда: Ижевск

Re: Геометрия объекта (здания) на карте

Сообщение p10ne » 05 янв 2019, 22:27

trir, еще такой вопрос:
как получить такой же результат, как выше, если входными данными являются координаты точки, лежащей в области исследуемого здания.
Т.е. сделали клик на карте по зданию - получили опять же данные связанных точек этого здания, как выше.

Пытался разобраться с языком overpass-а, но пока тяжеловато дается.

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Геометрия объекта (здания) на карте

Сообщение trir » 05 янв 2019, 23:43

не понял

p10ne
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 дек 2018, 19:39
Репутация: 0
Откуда: Ижевск

Re: Геометрия объекта (здания) на карте

Сообщение p10ne » 06 янв 2019, 00:11

trir, выше вы мне дали запрос для получения точек здания по координатам точки и радиусу (around...).
А сейчас я, кликнув на произвольном месте по зданию на карте, хочу получить тот же результат (связанные точки здания, по которому кликнул).

Типа как в любых коммерческих картах, когда кликаешь по зданию, и вся его геометрия выделяется, появляется какая-то информация о нем.

trir
Гуру
Сообщения: 5277
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Геометрия объекта (здания) на карте

Сообщение trir » 06 янв 2019, 02:48

для этого придётся делать свой GUI

p10ne
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 дек 2018, 19:39
Репутация: 0
Откуда: Ижевск

Re: Геометрия объекта (здания) на карте

Сообщение p10ne » 06 янв 2019, 13:51

trir, т.е. делать свой слой карты с нанесенными полигонами под размеры объектов?

Задача то вроде и под силу overpass-у: взять точку на карте и искать полигон, в который входит эта точка.

В принципе попробую так:
1. взять тот же around с определённым радиусом
2.получим полигоны, которые связаны с этой областью
3. перебираем все полигоны, и если точка входит в полигон n - это и есть искомый полигон (здание)

Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей