получение названия места от Json с помощью Google API - PullRequest
1 голос
/ 19 декабря 2011

Когда я запускаю этот код, я получаю пустой экран, и ничего не отображается. Какие изменения я должен внести, чтобы сделать это правильно, и где я иду не так?

     <html>
     <head>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> </script> 
   <script>
   $(document).ready(function() {
   $.getJSON("https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyC1BIAzM34uk6SLY40s-nmXMivPJDfWgTc",
  function(data, textStatus){
alert(data);
  $.each(data.results,function(i, name) {;
   $("#placenames").append(i+':'+name.vicinity+'<br/>');
 });
});
});
 </script>
 </head>
  <body> 
  <div id="placenames"></div>
  </body>
  </html>

Ответы [ 3 ]

2 голосов
/ 03 января 2012

Вы пытались использовать API Карт Google Javascript ? Это делает все вещи JSONP для вас.

Вот демонстрация с вашими координатами: http://jsfiddle.net/ThinkingStiff/CjfcX/

Сценарий:

var places = new google.maps.places.PlacesService( document.createElement( 'div' ) ),
    searchRequest = {

        name: 'harbour',
        location: new google.maps.LatLng( -33.8670522, 151.1957362 ),
        radius: 500,
        types: ['food']

    };

places.search( searchRequest, function ( results, status ) {

    var html = '';

    for ( var index = 0; index < results.length; index++ ) {

        html +=
              '<li '
            + 'data-location-id="' + results[index].id + '" '
            + 'data-address="' + results[index].vicinity + '" '
            + 'data-latitude="' + results[index].geometry.location.lat() + '" '
            + 'data-longitude="' + results[index].geometry.location.lng() + '" '
            + 'data-name="' + results[index].name + '">'
            + '<div>' + results[index].name + '</div>'
            + '<div>' + results[index].vicinity + '</div>'
            + '</li>';

    };

    document.getElementById( 'results' ).innerHTML = html;

} );

HTML:

<script src="http://maps.googleapis.com/maps/api/js?libraries=places,geometry&sensor=true"></script>
<ul id="results"></ul>

Выход:

enter image description here

1 голос
/ 03 января 2012

Google API в настоящее время не поддерживает обратный вызов / JSONP из jQuery get / getJSON

Чтобы загрузить асинхронный вызов, вам нужно сделать что-то вроде этого:

function loadScript() {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize";
  document.body.appendChild(script);
}

http://code.google.com/apis/maps/documentation/javascript/basics.html#Async

0 голосов
/ 19 декабря 2011

Вы должны добавить эту строку запроса, чтобы она анализировалась как jsonp:

&callback=?

См. Этот блог для получения дополнительной информации:

http://www.mattcashatt.com/post/index/Obtaining-and-Parsing-Open-Social-Graph-Data-with-JSONP-and-jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...