Краткое описание
Новая версия макроса для 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 и привязывать к нему свою б/карту; после данных настроек суточный бесплатный лимит по-прежнему работает).
В случае неработоспособности данного макроса, перед написанием комментария и/или отправки писем на мой адрес обязательно ознакомьтесь со списком основных проблем и способами их решения.
vsg-good Пользователь Сообщений: 170 |
Всем добрый день! Изменено: vsg-good — 04.12.2019 15:17:27 |
IKor Пользователь Сообщений: 1167 |
Я сильно сомневаюсь, что даже в надстройке Power Map Вы найдете информацию по координатам конкретных адресов — боюсь, что Вам самостоятельно придется собирать нужную информацию (руками или запросами ко внешним данным) в документ MS Excel.
Изменено: IKor — 04.12.2019 15:57:04 |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#3 04.12.2019 15:57:00
это ответ. Поищите на форуме. Не полно , но достаточно тем по этому. По вопросам из тем форума, личку не читаю. |
||
Из запасов, насколько это сейчас работоспособно, проверяйте сами. |
|
vsg-good Пользователь Сообщений: 170 |
|
doober Пользователь Сообщений: 2204 |
#6 04.12.2019 16:36:46 Макрос без ключа апи сейчас не работает
<#0> |
||
vsg-good Пользователь Сообщений: 170 |
А как получить этот ключ.. |
doober Пользователь Сообщений: 2204 |
Фраза для поиска Получение Api Ключа Для Яндекс.карт |
vsg-good Пользователь Сообщений: 170 |
Я так понимаю, что получить API может только юрлицо и только за деньги.. |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
Вроде OpenStreetMap еще жил. По вопросам из тем форума, личку не читаю. |
vsg-good Пользователь Сообщений: 170 |
А можно поподробнее. Как получить API c этого ресурса, как этот API интегрировать с макросом уважаемого Wild.Godlike . |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
https://wiki.openstreetmap.org/wiki/API По вопросам из тем форума, личку не читаю. |
vsg-good Пользователь Сообщений: 170 |
К сожалению, мне это ни о чем не говорит. |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
ссылка
но там нет конечного решения. По вопросам из тем форума, личку не читаю. |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#15 05.12.2019 10:36:50 Доброе время суток
Можете это доказать? Новые правила доступа к API Карт
|
||||
vsg-good Пользователь Сообщений: 170 |
#16 05.12.2019 11:04:24 Я выбирал другую опцию в Кабинете разработчика — Static API Яндекс.Карт, поэтому у меня обязательно требовали название компании и оплату.
А макрос все равно не работает. http://geocode-maps.yandex.ru/1.x/?apikey =APIключ&geocode=» & iAdress & «&format=xml&lang=ru_RU&results=1» Изменено: vsg-good — 05.12.2019 11:18:06 |
||
dimavp Пользователь Сообщений: 3 |
#17 02.02.2020 00:05:01 Файл работает отлично, нужно подставить свой API ключ от Яндекс карт (получаете бесплатно), в скриншоте вставленный ключ, файл работает. https://yadi.sk/i/yU8Qkzt2oyku5g |
Содержание
- Получение данных о географическом расположении
- Использование типа данных Geography
- Получение координат по адресам (через сервис геокодирования Яндекса)
- gramener/geocode-excel
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Найдите широту и долготу для каждого города в Excel
- Геокодирование данных Power Map
- Изменение географических полей
- Распространенные ошибки геокодирования
Получение данных о географическом расположении
Чтобы вставить в Excel географические данные, сначала преобразуйте текст в тип данных Geography (География). Затем вы сможете извлечь в другой столбец нужные сведения из этого типа данных, такие как численность населения или часовой пояс.
Примечание: Тип данных Stocks (Акции) доступен толькоMicrosoft 365 или с бесплатной учетной записью Майкрософт. В языковых параметрах Office также должен быть добавлен английский, французский, немецкий, итальянский, испанский или португальский язык редактирования.
Использование типа данных Geography
Введите текст в ячейки. Например, в каждой ячейке введите название страны, области, области, территории или города.
Затем выберем ячейки.
Хотя это необязательно, рекомендуем создать таблицу Excel. Это упростит получение сведений из Интернета. Чтобы создать таблицу, выберите Вставка > Таблица.
Выбрав ячейки, перейдите на вкладку Данные и нажмите кнопку География.
Если Excel обнаружит совпадение между текстом в ячейках и веб-источниками, текст будет преобразован в тип данных Geography. Вы узнаете, что преобразуются, если у них есть такой значок:
Выберите одну или несколько ячеек с типом данных, и появится кнопка данные. Нажмите эту кнопку, а затем щелкните имя поля, чтобы извлечь дополнительные сведения. Например, выберите Population (Население).
Нажмите кнопку Вставить данные еще раз, чтобы добавить дополнительные поля. Если вы используете таблицу, введите имя поля в строке заглавных строк. Например, введите Area (Область) в строке колонок, и столбец Area (Область) будет отображаться вместе с данными.
Чтобы увидеть все доступные поля, щелкните значок географии ( ) или выберите ячейку и нажмите CTRL+SHIFT+F5.
Если вы видите вместо значка, Excel не удается сопоставить текст с данными в веб-источниках. Исправьте орфографические ошибки и нажмите клавишу ВВОД, чтобы повторить попытку. Кроме того, вы можете щелкнуть , чтобы открыть область выделения. Выполните поиск по ключевым словам, выделите нужные данные, а затем нажмите кнопку Выбрать.
Источник
Получение координат по адресам (через сервис геокодирования Яндекса)
По списку адресов в таблице Excel, получить координаты объектов, и корректно написанный адрес (в том числе с разбивкой на город, улицу, номер дома, и т.д.)
Перед использованием этого парсера, нужно получить у Яндекса API ключ для работы с геоданными.
Делается это за пару минут по этой ссылке:
https://developer.tech.yandex.ru/services/
Нажимаем кнопку Подключить API, и выбираем JavaScript API и HTTP Геокодер
Потребуется заполнить короткую форму (указываете, что для некоммерческого проекта, что использоваться будет на общедоступном сайте)
Если всё сделали правильно, то по той же ссылке, в кабинете разработчика, будет доступен API ключ, который нужно скопировать, и вставить в настройки парсера (вкладка Основная информация)
Этот API ключ даст вам возможность выполнять ежедневно до 1000 запросов (по состоянию на декабрь 2021 года).
Если нужно больше адресов обрабатывать, то придется платить Яндексу за использования геокодера.
Перед запуском парсера нужно открыть таблицу Excel, содержащую адреса объектов в первом столбце.
Парсер заполнит данными несколько столбцов, начиная со второго столбца (см. скриншот выше)
Статья является примером использования программы «Парсер сайтов и файлов» для решения нижеописанной задачи.
Источник
gramener/geocode-excel
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is an Excel file (with a Visual Basic macro function) that converts addresses to latitudes and longitudes (geocoding), and latitude-longitudes to addresses (reverse geocoding). This works through public geocoding APIs.
- It has been tested on Office 2017 and Office 365 on Windows.
- It requires Excel 2013 or above (for the WorksheetFunction.EncodeURL method)
- It only works on Windows. The MSXML2 reference we use to access the APIs is not available on Mac.
Nominatim Geocoding functions
The Nominatim API uses OpenStreetMap, which is not as comprehensive as Google’s but is free. See: https://nominatim.org/release-docs/develop/
=NominatimGeocode(address) Converts a string address (e.g. «10 Downing Street» or «Tokyo, Japan») into a «latitude,longitude» string =NominatimReverseGeocode(lat, lng) Converts a latitude and longitude into an address
Google Geocoding functions
The Google Geocoding API is comprehensive, but requires an API key. See: https://developers.google.com/maps/documentation/geocoding/get-api-key
- =GoogleGeocode(address, api_key) Converts a string address (e.g. «10 Downing Street» or «Tokyo, Japan») into a «latitude,longitude» string
- =GoogleReverseGeocode(lat, lng, api_key) Converts a latitude and longitude into an address
The usage is otherwise identical to the Nominatim functions.
To get started, download and open Geocode.xlsm.
If you see a security warning, click on «Enable Content».
In any cell, type in the formula =NominatimGeocode(«10 Downing Street, London») in any cell. After a second, it shows the result as 51.50344025,-0.127708209585621 — which is the , combination. Here’s a live example:
Geocode an address
Visit the list of the largest cities and copy the table, along with its population into Excel.
If all the city names are in column A, you can create a new column with the formula =NominatimGeocode(A2) (replacing A2 with the actual cell reference).
Here, we use A2&», «&B2 to concatenate the city and nation. The first cell will look up “Chongqing, China”. When you press Enter, the result is:
Geocode multiple addresses
Copy the formula into the entire column.
Automatic calculations are disabled to reduce the number of API requests. So, if you copy-paste or drag a formula, the formula is not rerun. The values are copied as-is.
Instead, select a small group of cells and press Ctrl-Q to run the RefreshSelected macro. (Each lookup takes 0.5 — 1 seconds. Select batches of 10-20 cells at a time.)
Once you finish geocoding, replace the formulas with the values. Otherwise, Excel will re-run the entire geocoding every time you save, open, or refresh the file. To do this, copy the geocoded cells ( Ctrl-C ) and Paste Special > Values ( Alt-H-V-S-V ).
This geocodes the selected cell range. Geocoded cells turn blue. But if there’s an error, these cells turn red.
Errors occur if the location contains special characters (e.g. the “ã” in São Paulo). In such cases, re-write the location in ASCII, i.e. without special characters (e.g. Sau Paulo.)
To convert this single column with , into one column each, you can use Data > Text to Columns, and split the column using comma , as the separator.
The result is an Excel sheet with 2 columns: Latitude and Longitude.
Google Sheets alternatives
If you prefer using Google’s Geocoders on Google Sheets, use:
About
Convert addresses to lat-longs (and vice versa) in Excel
Источник
Найдите широту и долготу для каждого города в Excel
Предположим, у вас есть список городов в Excel, и вам нужно знать широту и долготу каждого города. Новая функция типа данных Geography, появившаяся в Office 365, упростит это. Проверьте вкладку «Данные» на ленте Excel. У вас есть новая категория типов данных с акциями и географией?
Если у вас есть новые функции, читайте дальше. Если вы не выполните поиск, как присоединиться к программе предварительной оценки Office.
Сначала сделайте копию данных о вашем городе. Операция Data Type немного деструктивна и изменит текст в ячейках города. Сначала сделайте копию, чтобы потом можно было использовать исходные города.
Сделайте копию данных
Выделите диапазон ячеек, содержащий города. На вкладке «Данные» на ленте щелкните «География» (показано ниже на португальском языке… на вашем компьютере будет отображаться язык по умолчанию).
Выделите ячейки и нажмите География.
Каждая ячейка должна получить значок карты. Если вместо этого в какой-либо ячейке стоит вопросительный знак в кружке, возможно, вы неправильно написали название города. Выберите эту ячейку и используйте панель в правой части экрана для поиска. Примечание. Это также может произойти, если есть два города с одинаковым названием, например Юнионтаун, штат Огайо или Саттер, штат Иллинойс. На панели выбора они покажут вам округ для двух Саттеров, и вы сможете выбрать.
Скажем, ваш первый тип данных о городе находится в C2. Добавьте формулу в D2 из =C2.Latitude .
Автозаполнение формул предлагает доступные поля
В E2 используйте =C2.Longitude . Скопируйте формулы D2 и E2 для всех городов.
Excel возвращает координаты для каждого города
Вы можете подумать, что все готово, но для формул в столбцах D и E необходимо, чтобы ячейки с типами данных оставались, чтобы продолжать работать. Выполните следующие дополнительные шаги:
- Выберите D2: E999
- Нажмите Ctrl + C, чтобы скопировать
- Щелкните правой кнопкой мыши и выберите значок «Вставить значения», чтобы преобразовать широту и долготу в значения.
- Теперь вы можете удалить лишние столбцы B и C.
Преобразуйте формулы в значения
Теперь вы можете отсортировать данные в порядке с севера на юг. Сортировать по широте по убыванию
Сортировать с севера на юг
Или — сортировать с запада на восток, сортировать по долготе по возрастанию
Сортировать с запада на восток
Вы также можете фильтровать данные. Чтобы найти все города вдоль Мексиканского залива, отфильтруйте по долготе, ищите все, что меньше -82,43.
Фильтровать по местоположению
Скачать файл Excel
Чтобы загрузить файл Excel: /find-latitude-and-longitude-for-each-city-in-excel.xlsx
Новые типы данных «География» в Excel позволяют добавлять метаданные о каждом городе.
Идея дня в Excel
Я попросил совета у моих друзей-мастеров Excel по поводу Excel. Сегодняшняя мысль задуматься:
«Правила для списков: без пустых строк, без пустых столбцов, заголовки в одну ячейку, вроде с подобным»
Источник
Геокодирование данных Power Map
Power Map поддерживает несколько форматов и уровней географических данных, в том числе:
широта и долгота (в десятичном формате);
область или край;
страна или регион.
Чтобы отобразить данные, в списке полей выберите столбцы, определяющие географическое положение, и укажите географический уровень, который они представляют. Power Map отображает эти данные.
Например, Power Map автоматически определяет и сопоставляет столбцы в этом наборе данных с географическими полями.
В данном случае Power Map начинает геокодирование данных на основе адреса, например:
После проверки соответствие полей географическим уровням в разделе Geography (География) и нажатия кнопки «Далее» Power Map автоматически начинается отрезок данных с помощью Bing. Вы увидите ход выполнения в панели состояния, и сможете вносить изменения в список полей и глобус, Power Map географические данные.
Если имеется несколько географических уровней, вы можете быстро просмотреть на карте данные на другом уровне. В нашем примере при выборе уровня Улица визуализируются данные по улицам, например:
При выборе уровня Область визуализируются данные по областям, например:
Изменение географических полей
Чтобы изменить географические поля, отображаемые по умолчанию на карте, выберите другие поля в списке География. Они автоматически появятся в области Уровень географии и карты, в которой вы можете проверить и изменить уровень отображения на карте.
Распространенные ошибки геокодирования
В процессе геокодирования могут возникать конфликты. Например, Power Map может показывать сообщение об ошибке, если не удается сопоставить некоторые географические поля. Это возможно, если имеется несколько городов с одинаковым именем в разных областях, например Советск.
Power Map и Bing пытаются найти решение, просматривая вспомогательные данные, чтобы определить местонахождение города из каждой строки данных, — они проверяют область, страну или регион, край и другие географические поля. Если дополнительные данные есть, город появляется на карте, но иногда строки пропускаются. Чтобы избежать подобных конфликтов, попробуйте добавить столбцы с дополнительными данными (например, почтовым индексом или страной), тогда Power Map сможет использовать эти сведения для более точного определения местонахождения.
Источник
У меня есть лист excel с колонкой адреса (20 тыс адресов). Для этих адресов требуется широта и долгота.
Как заполнить следующий столбец «Широта» и второй следующий столбец «Долгота»?
Есть ли сейчас полезный инструмент?
любое предложение?
-
Вопрос заданболее трёх лет назад
-
5024 просмотра
Пригласить эксперта
Нужно обращаться к геокодеру.
Отдавать адрес — получать координаты.
Учитывая, что вы хотите сделать это всё с помощью одного лишь экселя — предложений нет.
-
Показать ещё
Загружается…
16 апр. 2023, в 18:46
1 руб./за проект
16 апр. 2023, в 16:39
80000 руб./за проект
16 апр. 2023, в 14:44
4500 руб./за проект
Минуточку внимания
Получение координат по адресам (через сервис геокодирования Яндекса)
Задача:
По списку адресов в таблице Excel, получить координаты объектов, и корректно написанный адрес (в том числе с разбивкой на город, улицу, номер дома, и т.д.)
Описание:
Перед использованием этого парсера, нужно получить у Яндекса API ключ для работы с геоданными.
Делается это за пару минут по этой ссылке:
https://developer.tech.yandex.ru/services/
Нажимаем кнопку Подключить API, и выбираем JavaScript API и HTTP Геокодер
Потребуется заполнить короткую форму (указываете, что для некоммерческого проекта, что использоваться будет на общедоступном сайте)
Если всё сделали правильно, то по той же ссылке, в кабинете разработчика, будет доступен API ключ, который нужно скопировать, и вставить в настройки парсера (вкладка Основная информация)
Этот API ключ даст вам возможность выполнять ежедневно до 1000 запросов (по состоянию на декабрь 2021 года).
Если нужно больше адресов обрабатывать, то придется платить Яндексу за использования геокодера.
Перед запуском парсера нужно открыть таблицу Excel, содержащую адреса объектов в первом столбце.
Парсер заполнит данными несколько столбцов, начиная со второго столбца (см. скриншот выше)
- 3398 просмотров