GeoCoder возвращает другой идентификатор long / lat для значения geometry-location - PullRequest
1 голос
/ 28 марта 2012

Похоже, что GeoResult из Google Geocoder со вчерашнего дня возвращает другой тег идентификатора для значения geometry-location.В прошлом они использовали для значений long / lat идентификаторы Va / Ua в своем JSON-подобном объекте результата.Вчера идентификатор долготы изменился с Va на Ta.Является ли это общим для каких-либо результатов запроса Google, этот идентификатор будет меняться со временем?Если это так, как Google сообщает разработчикам о таком изменении API?

В моем коде (Objective-C) я буду анализировать эти идентификаторы с помощью анализатора JSON для получения текущих значений long / lat.Поэтому я должен придерживаться текущей используемой записи такого идентификатора, потому что объект JSON будет преобразован в массив или словарь, а последующая навигация по словарям будет осуществляться с помощью вызова, например, [locationResult objectForKey: @ "Va"],

Любой другой опыт работы с Google JavaScript API.В противном случае мне нужно проверить результат long / lat в JavaScript, а затем вернуть окончательные результаты обратно в мой код Objective-C.Но я все же предпочел бы способ вернуть весь объект результата JSON в мой код Objective-C и проанализировать его там.

С уважением


Я обновлю свой собственный вопрос своей последнейРасследования: Google будет часто менять внутренний формат объекта JSON, сегодня они снова изменили его.Поэтому я должен оценивать весь результат геокодера на стороне JavaScript, а не в Objectiv-C, анализируя результат с помощью анализатора JSON.Грустно для меня, но я предполагаю, что безопаснее придерживаться JavaScript API, а не сырого результата.: - (

Спасибо за ответы !!!

Ответы [ 2 ]

8 голосов
/ 28 марта 2012

Попробуйте вызвать функции lat () и lng (), чтобы получить значения, хранящиеся в объекте geometry.location.

вместо

var lat = results[0].geometry.location.Ua;
var long = results[0].geometry.location.Va;

Использовать

var lat = results[0].geometry.location.lat();
var long = results[0].geometry.location.lng();

Это то, что я использую для проекта javascript, который был поражен той же самой проблемой tody.

0 голосов
/ 28 марта 2012

Я не уверен, о чем вы говорите, но JSON-ответ вернул только элементы, определенные здесь: https://developers.google.com/maps/documentation/geocoding/?hl=de#JSON

Нет Va, Ua, Ta или подобных.

Элементами являются lat и lng, больше ничего.

...