Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Геокодирование через Яндекс-карты - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Геокодирование через Яндекс-карты (Макросы Sub)
Геокодирование через Яндекс-карты
Ru1- Дата: Пятница, 10.01.2014, 21:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Всем добрый вечер!
Буду бесконечно благодарен за любую помощь по вопросу обратного геокодирования Яндекс-карт.

Задачу получилось реализовать с помощью Google API, но к сожалению, Google не дает требуемой точности определения координат (некоторых населенных пунктов вообще нет на карте). Попытался все переписать для Яндекса, но никак не получается заставить код работать.

[vba]
Код
Option Explicit

Function getYandexMapsGeocode(sAddr As String) As String

Dim xhrRequest As XMLHTTP60
Dim sQuery As String
Dim domResponse As DOMDocument60
Dim LatLng As IXMLDOMNode

getYandexMapsGeocode = ""

Set xhrRequest = New XMLHTTP60
sQuery = "http://geocode-maps.yandex.ru/1.x/?results=1&geocode="
sQuery = sQuery & Replace(sAddr, " ", "+")
xhrRequest.Open "GET", sQuery, False
xhrRequest.send

Set domResponse = New DOMDocument60
domResponse.LoadXML xhrRequest.responseText

Set LatLng = domResponse.SelectSingleNode("/ymaps/GeoObjectCollection/featureMember/GeoObject/Point/pos")

getYandexMapsGeocode = LatLng.Text

'Pause
Dim d As Date
d = DateAdd("s", 1, Now)
Do While Now < d
DoEvents
Loop

End Function
[/vba]

Заранее большое спасибо!

UPD: Файл во вложении.
К сообщению приложен файл: Book3.xlsm(24.0 Kb)


Сообщение отредактировал Ru1- - Пятница, 10.01.2014, 22:22
 
Ответить
СообщениеВсем добрый вечер!
Буду бесконечно благодарен за любую помощь по вопросу обратного геокодирования Яндекс-карт.

Задачу получилось реализовать с помощью Google API, но к сожалению, Google не дает требуемой точности определения координат (некоторых населенных пунктов вообще нет на карте). Попытался все переписать для Яндекса, но никак не получается заставить код работать.

[vba]
Код
Option Explicit

Function getYandexMapsGeocode(sAddr As String) As String

Dim xhrRequest As XMLHTTP60
Dim sQuery As String
Dim domResponse As DOMDocument60
Dim LatLng As IXMLDOMNode

getYandexMapsGeocode = ""

Set xhrRequest = New XMLHTTP60
sQuery = "http://geocode-maps.yandex.ru/1.x/?results=1&geocode="
sQuery = sQuery & Replace(sAddr, " ", "+")
xhrRequest.Open "GET", sQuery, False
xhrRequest.send

Set domResponse = New DOMDocument60
domResponse.LoadXML xhrRequest.responseText

Set LatLng = domResponse.SelectSingleNode("/ymaps/GeoObjectCollection/featureMember/GeoObject/Point/pos")

getYandexMapsGeocode = LatLng.Text

'Pause
Dim d As Date
d = DateAdd("s", 1, Now)
Do While Now < d
DoEvents
Loop

End Function
[/vba]

Заранее большое спасибо!

UPD: Файл во вложении.

Автор - Ru1-
Дата добавления - 10.01.2014 в 21:55
doober Дата: Пятница, 10.01.2014, 22:27 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 237 ±
Замечаний: 0% ±

Excel 2010
Используйте для работы
api-maps.yandex Geocoder.xml
api-maps.yandex Router.xml




Сообщение отредактировал doober - Пятница, 10.01.2014, 22:56
 
Ответить
СообщениеИспользуйте для работы
api-maps.yandex Geocoder.xml
api-maps.yandex Router.xml

Автор - doober
Дата добавления - 10.01.2014 в 22:27
Ru1- Дата: Понедельник, 13.01.2014, 20:45 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Большое спасибо за помощь!
Тему можно закрывать.
 
Ответить
СообщениеБольшое спасибо за помощь!
Тему можно закрывать.

Автор - Ru1-
Дата добавления - 13.01.2014 в 20:45
Юлия Дата: Вторник, 30.09.2014, 17:43 | Сообщение № 4
Группа: Гости
а не могли бы вы для особо одаренных прислать код с иправлениями? я не могу разобраться
 
Ответить
Сообщениеа не могли бы вы для особо одаренных прислать код с иправлениями? я не могу разобраться

Автор - Юлия
Дата добавления - 30.09.2014 в 17:43
dishkina Дата: Пятница, 10.10.2014, 17:43 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я тоже не понимаю где использовать api-maps.yandex. Подскажите, пожалуйста!
 
Ответить
СообщениеЯ тоже не понимаю где использовать api-maps.yandex. Подскажите, пожалуйста!

Автор - dishkina
Дата добавления - 10.10.2014 в 17:43
MadZu Дата: Четверг, 06.11.2014, 18:40 | Сообщение № 6
Группа: Гости
заменил DOMDocument60 на DOMDocument и работает
 
Ответить
Сообщениезаменил DOMDocument60 на DOMDocument и работает

Автор - MadZu
Дата добавления - 06.11.2014 в 18:40
Madfruit Дата: Пятница, 07.11.2014, 22:33 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
заменил DOMDocument60 на DOMDocument и работает

Спасибо, за подсказку. Но вот только при написании адреса по-русски координаты гугл не проставляются. Как быть?


Сообщение отредактировал Madfruit - Пятница, 07.11.2014, 22:34
 
Ответить
Сообщение
заменил DOMDocument60 на DOMDocument и работает

Спасибо, за подсказку. Но вот только при написании адреса по-русски координаты гугл не проставляются. Как быть?

Автор - Madfruit
Дата добавления - 07.11.2014 в 22:33
doober Дата: Суббота, 08.11.2014, 00:43 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 237 ±
Замечаний: 0% ±

Excel 2010
Гугл каким боком к этой теме.
Как быть?

USE Google
Спросить у Гугла
[vba]
Код

   'Узнать координаты Привоза    
Url="http://maps.googleapis.com/maps/api/geocode/xml?address=Одесса+Привоз&sensor=false"

   'Узнать высоту над уровнем моря
Url="http://maps.googleapis.com/maps/api/elevation/xml?locations=46.4679650,30.7359110&sensor=false"
[/vba]




Сообщение отредактировал doober - Суббота, 08.11.2014, 00:48
 
Ответить
СообщениеГугл каким боком к этой теме.
Как быть?

USE Google
Спросить у Гугла
[vba]
Код

   'Узнать координаты Привоза    
Url="http://maps.googleapis.com/maps/api/geocode/xml?address=Одесса+Привоз&sensor=false"

   'Узнать высоту над уровнем моря
Url="http://maps.googleapis.com/maps/api/elevation/xml?locations=46.4679650,30.7359110&sensor=false"
[/vba]

Автор - doober
Дата добавления - 08.11.2014 в 00:43
Madfruit Дата: Суббота, 08.11.2014, 23:45 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Гугл каким боком к этой теме.

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

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

Заранее большое спасибо!

UPD: Файл во вложении.
К сообщению приложен файл: Book35.xlsb(22.1 Kb)


Сообщение отредактировал Madfruit - Суббота, 08.11.2014, 23:45
 
Ответить
Сообщение
Гугл каким боком к этой теме.

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

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

Заранее большое спасибо!

UPD: Файл во вложении.

Автор - Madfruit
Дата добавления - 08.11.2014 в 23:45
doober Дата: Воскресенье, 09.11.2014, 02:06 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 237 ±
Замечаний: 0% ±

Excel 2010
Одесса рулит в Гугле
Использовал функцию RussianStringToURLEncode от Игоря (EducatedFool)
К сообщению приложен файл: 4694744.xlsb(24.2 Kb)


 
Ответить
СообщениеОдесса рулит в Гугле
Использовал функцию RussianStringToURLEncode от Игоря (EducatedFool)

Автор - doober
Дата добавления - 09.11.2014 в 02:06
wot Дата: Пятница, 06.02.2015, 10:58 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Уточните по прямому геокодированию, по координатам необходимо найти адрес, изучил несколько форумов, решений нет.
спасибо заранее.
[moder]Тема закрыта. Нарушение п.5q Правил форума
К сообщению приложен файл: Book145.xlsx(10.9 Kb)


Сообщение отредактировал wot - Пятница, 06.02.2015, 10:59
 
Ответить
СообщениеУточните по прямому геокодированию, по координатам необходимо найти адрес, изучил несколько форумов, решений нет.
спасибо заранее.
[moder]Тема закрыта. Нарушение п.5q Правил форума

Автор - wot
Дата добавления - 06.02.2015 в 10:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Геокодирование через Яндекс-карты (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!