Простой API, чтобы получить долготу и широту от заданного названия города - PullRequest
0 голосов
/ 27 февраля 2012

Я хочу, чтобы мой посетитель ввел название города, после чего я могу получить широту и долготу по этому названию.Я не мог понять, как получить их с помощью Google Map API.Я легко нашел мировой прогноз погоды онлайн, поэтому я получил ответ json, но не могу пройти через него.

{ "search_api" : {
    "result" : [
      { "areaName"   : [ { "value" : "New York" } ], 
        "country"    : [ { "value" : "United States Of America" } ],
        "latitude"   : "40.710",
        "longitude"  : "-74.010", 
        "population" : "8107916",  
        "region"     : [ { "value" : "New York" } ], 
        "weatherUrl" : [ { "value": "http:\/\/free.worldweatheronline.com\/weather\/United-States-Of-America\/2395340\/New-York\/2478232\/info.aspx" } ]
      }, 
      { "areaName"   : [ { "value" : "New York" } ],
        "country"    : [ { "value" : "United States Of America" } ],
        "latitude"   : "32.170",
        "longitude"  : "-95.670",
        "population" : "0",
        "region"     : [ { "value" : "Texas" } ],
        "weatherUrl" : [ { "value": "http:\/\/free.worldweatheronline.com\/weather\/United-States-Of-America\/2395340\/New-York\/2516758\/info.aspx" } ]
      }
    ]
  }
}

Это то, что я пытался:

$.getJSON(url, function(data) {
  var cord = data.search_api.latitude;

  alert(cord);
} );

Может кто-нибудь помочь мнеэто или дать мне лучший способ узнать долготу и широту по названию города или адресу?

1 Ответ

0 голосов
/ 27 февраля 2012

Ваш код не работает, потому что вы пытаетесь перейти с search_api на latitude, когда вам нужно сначала пройти массив с именем result, например,

$.getJSON( url, function( data ) {
  var firstResult = data.search_api.result[ 0 ];

  console.log( "City:",      firstResult.areaName[ 0 ].value, ",",
                             firstResult.region[ 0 ].value
  );
  console.log( "Latitude:",  firstResult.latitude );
  console.log( "Longitude:", firstResult.longitude );
} );

/* Output:
   > City: New York , New York
   > Latitude: 40.710
   > Longitude: -74.010
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...