ela98 Пользователь Сообщений: 20 |
Добрый день. Поделитесь, пожалуйста, макросом для получения по заданному списку адресов их гео-координат (широта и долгота). |
Sanja Пользователь Сообщений: 14849 |
Пожалуйста Согласие есть продукт при полном непротивлении сторон. |
ela98 Пользователь Сообщений: 20 |
Есть другой метод, вызывающий больше доверия? |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#4 18.06.2019 16:48:03 Доброе время суток
Возможно есть — протестируйте на контрольных данных (таблица с известными адресами и geo-координатами, которые, например, вы лично прошли с GPS приёмником) найденные макросы и выберите тот, который вызовет у вас большее доверие. Изменено: Андрей VG — 18.06.2019 16:50:51 |
||
ela98, Ещё вариант off Изменено: Wild.Godlike — 18.06.2019 16:57:31 |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#6 18.06.2019 17:20:17
Так может не ставить в запросе к Яндекс results=1? Тогда возможно в других вариантах выдачи найдётся что-то и поближе другого конца страны. |
||
ela98 Пользователь Сообщений: 20 |
Wild.Godlike
, спасибо! Попробую протестировать. |
Андрей VG, Пробовал. но всё равно большое кол-во ошибок.(не прям поголовно из 1200 проверенных в ручную 118 ошибок было, жаль файлики не сохранились) Так что смотря для чего нужен парсер)))) И учитывая как работает РР……предположу на процентов 70 что это их косяк. Изменено: Wild.Godlike — 18.06.2019 17:32:08 |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#9 18.06.2019 18:32:20
Всё может быть. Таланты разные базу формируют |
||
dx1234 Пользователь Сообщений: 4 |
#10 05.02.2020 12:09:02 Добрый день. Скиньте пожалуйста рабочую версию файла а то не работает но ОЧЕНЬ нужно
|
||
Vladimir Chebykin Пользователь Сообщений: 1261 |
#11 05.02.2020 12:20:56
Дело не в файле, а в Яндексе. Полгода назад еще Яндекс позволял бесплатно (вроде 2500 адресов в сутки с одного IP-адреса) выгружать данные. Насколько я знаю, то теперь эта лавочка прикрыта и Яндекс принуждает устанавливать их геокодер. Подробностей не знаю |
||
dx1234 Пользователь Сообщений: 4 |
Как тогда можно реализовать то-же самое на данный момент времени? |
doober Пользователь Сообщений: 2223 |
Получаете у яндекса бесплатный ключ для апи геокодера и дело в шляпе. |
dx1234 Пользователь Сообщений: 4 |
Ключ получил. Куда его правильно вставить https://tech.yandex.ru/maps/geocoder/doc/desc/concepts/input_params-docpage/ нажал на кабинет разработчика и получил ключ JavaScript API и HTTP Геокодер |
doober Пользователь Сообщений: 2223 |
|
dx1234 Пользователь Сообщений: 4 |
Спасибо помогло. https://geocode-maps.yandex.ru/1.x/?apikey=<КЛЮЧ АПИ ЯНДЕКСА>&geocode=" ; & iAdress & «&format=xml&lang=ru_RU&results=1» |
vick Gura Пользователь Сообщений: 1 |
Всем привет. А кто то может сделать такое для Гугл таблиц? готов оплатить услугу. Почему то файл скачанный тут, выдает ошибку. |
vikttur Пользователь Сообщений: 47199 |
#18 18.02.2022 10:22:59
Создайте заказ в разделе Работа |
||
Программа позволяет загрузить координаты для списка адресов в таблице Excel
Исходными данными выступает столбец с адресами объектов (город, улица, номер дома)
Программа выполняет запрос к сервису geocode через Google API,
и получает информацию об объекте в формате XML
(полный адрес с индексом, правильное название района, города и улицы, координаты объекта — широту и долготу),
и выводит результаты (в данном случае — только координаты: LON и LAT) в таблицу Excel (в столбцы справа)
Для уменьшения вероятности бана со сторону Google (из-за большого количества запросов),
можно задать паузу (интервал) между запросами (от 0 до 60 секунд)
К ячейкам с адресами объектов добавляются гиперссылки, позволяющие открыть найденную в Google информацию по объекту.
UPD:
Есть также решение для ЯндексКарт, — если нужно, пишите на почту, прикрепив к письму файл с адресами, и указав, куда надо вставлять координаты
UPD: макрос этот более не продаётся, — теперь нужен API ключ для получения этих данных
(требуется переделка макроса)
Краткое описание
Новая версия макроса для Excel (VBA) для быстрого и удобного получения гео-координат/адресов из Yandex и Google. В качестве исходных данных на листе указывается список адресов (для получения координат) или список координат (для обратного геокодирования). Результаты запроса будут выведены в соседние ячейки.
Подробное описание
Некоторое время назад на сайте был опубликован макрос для получения координат из Yandex.
Несмотря на небольшой размер своего кода, макрос в удобном режиме позволяет по заданному списку адресов получать их geo-координаты (широту и долготу).
В текущей статье публикуем новый (доработанный) макрос для работы с координатами и адресами.
Изменения в новом макросе:
- Макрос может работать с API Яндекса и Гугла.
Для работы с сервисом Яндекса используйте лист «yandex», для работы с Гуглом — лист «google». Предыдущая версия работала только с Яндекс. - Из кода макроса исключен параметр KEY.
Это значит, что теперь не нужно получать ключ разработчика для корректной работы макроса. Теперь всё работает без KEY. Разумеется, общие ограничения сервисов по прежнему имеют место — это около 25 000 запросов в сутки с одного IP. При необходимости узнать более подробно о действующих ограничениях, следуйте по ссылкам: лимиты для яндекса, лимиты для гугл. - Добавлена возможность обратного геокодирования (определение адреса по долготе и широте).
Для работы с обратным геокодированием необходимо соблюдать несколько важных нюансов, касающихся формата записи строки с координатами:
— для Yandex координаты необходимо указывать в формате (через запятую, без пробелов): долгота,широта
— для Google координаты необходимо указывать в формате (через запятую, без пробелов): широта,долгота
В приложенном файле с макросом на соответствующих листах есть примеры как для Yandex, так и для Google. - Добавлена статистика по количеству обработанных строк.
Статистика начинает отображаться после запуска макроса. Наблюдать статистику можно в строке статус бара Excel. - Типы переменных для работы с XML переименованы в Object.
В предыдущей версии макроса типы были строго заданы как MSXML2.DOMDocument и MSXML2.IXMLDOMNodeList. Как следствие, возникали ошибки в процессе работы, если на ПК пользователя не было соответствующих библиотек «Microsoft XML».
Помимо указанных изменений, новый макрос содержит ряд других улучшений кода, в той или иной степени влияющих на корректность результата. По опыту, при тестировании макроса сервис Yandex показал более точный результат определения координат. Google, в свою очередь, показал более высокую скорость работы.
Также не забывайте, что оба сервиса хоть и служат одной и той же цели, но результат, полученный в каждом из них, немного отличается. Отличие не большое, но оно есть и, возможно, его стоит учесть. Поэтому, если этот момент вам принципиально важен, обязательно вручную проверьте результат в разных поисковых системах.
Важно!
Для работы с макросом предварительно необходимо получить API-ключ для Yandex/Google. Видео с инструкцией, как подключить нужный API Yandex, можно посмотреть по ссылке.
Соответствующее значения API-ключа указывается на листе «Настройки».
В целом, для Yandex принципиально ничего не изменилось, а вот у Google с августа 2018 г. действуют новые условия получения API (необходимо регистрировать аккаунт Google Cloud Platform и привязывать к нему свою б/карту; после данных настроек суточный бесплатный лимит по-прежнему работает).
В случае неработоспособности данного макроса, перед написанием комментария и/или отправки писем на мой адрес обязательно ознакомьтесь со списком основных проблем и способами их решения.
может так?
http://nominatim.openstreetmap.org/?format=json&q=…
{
place_id: "67176841",
licence: "Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright",
osm_type: "way",
osm_id: "47433257",
boundingbox: [
"55.7816307",
"55.7824031",
"37.5862366",
"37.5864554"
],
lat: "55.7816985",
lon: "37.5862554",
display_name: "улица Бутырский Вал, Сущёво, Tverskoy District, Центральный административный округ, Москва, Центральный федеральный округ, 125047, Российская Федерация",
class: "highway",
type: "tertiary",
importance: 0.2
},
wiki.openstreetmap.org/wiki/Nominatim#Example
Геокодирование адресов, легко и быстро
Геокодирование — это процесс превращения информации об адресе, городе, регионе или почтовом индексе в переносимые на карту координаты. Чтобы использовать практически любой онлайн-инструмент для картографирования, например, Google Карты, вам понадобятся данные о координатах (широте и долготе) для каждого из ваших местоположений, поэтому эта информация должна пройти процесс геокодирования.
Пакетное геокодирование с использованием нашего сервиса выглядит максимально просто — вам всего-то и нужно, что копировать и вставлять список местоположений. BatchGeo применяет в работе API Google Maps Geocoding, который обладает доступом к наиболее качественным данным. Другие сервисы требуют, чтобы вы писали код или выполняли геокодирование вручную, вводя каждый адрес отдельно, но наш сервис сам делает всё, что нужно и за несколько простых шагов. Создаваемыми на основе ваших данных картами можно делиться в закрытом режиме, публиковать их для общего доступа и даже вставлять на страницы вашего веб-сайта.
Как работает адресное геокодирование?
Существуют различные типы геокодирования с разным уровнем точности. Прежде чем мы познакомимся с более точным методом, который применяется в BatchGeo, давайте рассмотрим популярные способы, которые используют многие другие сервисы геокодирования.
Геокодирование по объектам (интерполяционное)
Как следует из название этого способа, данный тип геокодирования интерполирует местонахождение адреса исходя из проверенных объектов, например, перекрёстков для улиц с координатной привязкой. Допустим, вы хотите превратить адрес ул. Зоологическая, 160 в вашем родном городе в географические координаты.
- Сначала осуществляется поиск по названию улицы, направлению и типу улицы согласно базе данных. Система отличает улицу от других Зооологических улиц по названию города или почтовому индексу, если он известен.
- Определив улицу, геокодер использует номер улицы, чтобы определить ближайший квартал.
- Далее в дело вступает интерполяция, которая является наименее точным этапом в процессе геокодерования. В квартале порядка 100 потенциальных адресов, но домов всего около 12. Геокодер сделает допущение, что номер 160 находится чуть дальше середины квартала.
- Ещё одно допущение, которое должен сделать геокодер, это угадать, как далеко от центра улицы находится здание. Как правило эти данные задаются при настройке геокодера, и как правило это расстояние составляет ок. 15 метров. Невозможно точно угадать, как далеко от улицы отстоит здание или где у него вход, но в большинстве случаев догадки геокодер более-менее верны.
- И наконец геокодер должен выбрать, по какой стороне улицы расположен адрес. В большинстве городов чётные и нечётные дома находятся на противоположных сторонах улицы, но так бывает не всегда, поэтому геокодер должен хорошо знать правила данного региона, чтобы выдать точный результат.
Как видите, интерполяция происходит в несколько этапов, во время которых геокодеру приходится делать определённые догадки. Догадки, основанные на информации, могут давать довольно неплохие результаты, но могут быть и такие, которые будут очень далеки от реальности. Именно по этой причине, стоит прибегать к более точным методам геокодирования.
Геокодирование по областям
В сравнении с другими методами, геокодирование по областям — метод намного проще, но для его применения требуется намного более подробная информация. Вместо интерполирования точки на основе других близлежащих объектов, геокодирование по областям требует наличия информации о границах каждой области. Другими словами, геокодер знает, где расположен каждый участок (область).
Чтобы определить расположение дома по ул. Зоологическая, 160 при помощи геокодирования по областям, геокодер будет искать данный адрес в базе данных областей. Конечно, адрес всё равно необходимо будет отделить от других улиц с таким же названием, но геокодеру не придётся интерполировать местонахождение объекта на основе данных на уровне блока. Геокодирование по областям использует данные на уровне области.
Географические координаты, получаемые в результате геокодирования по областям чаще всего являются центральной точкой области. Хотя этот метод оставляет место для неточностей, например, если дом находится рядом с границей большой области, на практике результаты данного метода геокодирования намного точнее, чем метод интерполяции.
Как работает геокодирование BatchGeo?
Наш геокодер использует наиболее точные данные для геокодирования, те же самые, что используют Google Карты. API Google Maps Geocoding применяет геокодирование по областям, обеспечивая более точные результаты. Путём быстрого обмена данными с сервисом компании Google, наша система быстро превращает ваши Excel-таблицы и другие списки адресов в интересные, простые в использовании и невероятно точные карты.