Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Взаимодействие с картой #67

Open
ibezrukov opened this issue Mar 25, 2019 · 6 comments
Open

Взаимодействие с картой #67

ibezrukov opened this issue Mar 25, 2019 · 6 comments

Comments

@ibezrukov
Copy link

В вики-движке довольно много полей с потенциальной геолокацией, возможно ли интегрировать эти данные с сервисом карт?
Интересно было бы увидеть места жительства родственников на карте. Возможно какую-то аналитику, например процессы миграции.

PS: Пока писал понял, что такую карту можно создать вручную, например с помощью конструктора карт от yandex или аналогичных сервисов и ссылкой привязать к профилю или событию. Но вдруг реализация этой хотелки не дико сложная задача.

@impworks
Copy link
Owner

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

В общем, пока я не вижу способа реализовать это так, чтобы преимущества перевесили недостатки, но если четкое видение есть у вас - то давайте обсудим.

@ibezrukov
Copy link
Author

Здравствуйте, Андрей.

Поискал альтернативные геокодеры, из свободных нашел nominatim. Политика использования накладывает ограничения на частоту запросов к сервису, не больше 1 в секунду, более чем достаточно в случае фамильной вики.

Тот же гугл подсказывает, что отображать карту с метками, слоями и разными фишками можно с помощью например https://leafletjs.com или https://openlayers.org/ .

Вообще интересно кому-нибудь еще нужен подобный функционал, чтобы из профиля человека была возможность открыть карту со связанными с человеком местами.

@impworks
Copy link
Owner

@ibezrukov к сожалению, все известные мне бесплатные сервисы геокодирования работают из рук вон плохо. Я честно попытался найти адрес "Москва, Тверская, 1" на Nominatim и он не справился:

image
image
image

Помимо этого я пробовал "Спутник", Geonames, DataScienceToolkit - с аналогичными результатами. "Как следует" работают только платные API - Яндекс, Google, DaData, 2ГИС.

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

@nrm
Copy link

nrm commented Mar 28, 2019

@impworks попробуйте иной порядок адресса -> номер дома — улица — город

я попробовал скриптом подергать разные адреса, вот пример

from geopy.geocoders import Nominatim
location = geolocator.geocode("1 тверская улица Москва")
print(location.address)
ВТБ Банк Москвы, 15/1 с1, Тверская улица, Тверской район, Центральный административный округ, Москва, ЦФО, 103265, РФ
print((location.latitude, location.longitude))
(55.7571401, 37.6139807)

location = geolocator.geocode("Тунка")
print(location.address)
Тунка, сельское поселение Галбай, Тункинский район, Бурятия, СФО, РФ

@impworks
Copy link
Owner

@nrm у обычного пользователя от необходимости записи российского адреса в американском формате взорвется мозг

@centralhardware
Copy link
Contributor

Сделать отдельный поля. адресс отдельное поле, дом, и тд а потом формировать запрос как будет угодно сервису

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants