Способ добавления обратного вызова в ответ JSON геокодирования в Google Maps API V3 - PullRequest
0 голосов
/ 15 апреля 2011

Итак, у меня есть URL вроде:

http://maps.googleapis.com/maps/api/geocode/json?&sensor=false&address=1330+SW%203rd%20Ave,%20Portland,%20OR

Но он возвращает просто JSON. Я ищу, чтобы сделать вызов JSONP. Я хочу сделать это без кода на стороне сервера. Есть ли способ добавить имя переменной или функцию? Обычно API имеют параметр callback или что-то в этом роде. Или кто-нибудь из вас знает какие-нибудь хаки? Мой код сейчас:

createScriptTag:function(the_src,callback){
    var headID = document.getElementsByTagName("head")[0],         
        newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.onload=callback;
    newScript.src = the_src;
    headID.appendChild(newScript);
  }

 //Then call it like:
 createScriptTag(
   'http://maps.googleapis.com/maps/api/geocode/json?&sensor=false&address=1330+SW%203rd%20Ave,%20Portland,%20OR',
   function(){ /* I can't do anything with the JSON :( */ }
 )

1 Ответ

2 голосов
/ 15 апреля 2011

Похоже, вы используете API геокодера, а не API карт.Согласно документации, Geocoder API не предназначен для использования в реальном времени:

http://code.google.com/apis/maps/documentation/geocoding/

Этот сервис обычно предназначен для геокодирования статических (заранее известных) адресов для размещениясодержание приложения на карте;этот сервис не предназначен, чтобы реагировать в реальном времени на пользовательский ввод, например.Для динамического геокодирования (например, в элементе пользовательского интерфейса) обратитесь к документации для клиентского геокодера JavaScript API V2, клиентского геокодера JavaScript API V3 или API-интерфейса Maps for Flash Client Geocoder.Возможно, вам нужно взглянуть на http://code.google.com/apis/maps/documentation/javascript/services.html#Geocoding, который на стороне клиента со встроенными обратными вызовами.Хотя я считаю, что лицензия на этот API требует использования результата геокодирования в сочетании с картой Google.

...