sphakrrokr Subhrojit sphakrrokr Subhrojit - 5 months ago 32
JSON Question

How to get geocode latitude and longitude from json google map api in variables by javascript?

JSON GEO LOCATION
https://maps.googleapis.com/maps/api/geocode/json?address=KOLKATA&key=API_KEY

{
"results" : [
{
"address_components" : [
{
"long_name" : "Kolkata",
"short_name" : "Kolkata",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Kolkata",
"short_name" : "Kolkata",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "West Bengal",
"short_name" : "WB",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "India",
"short_name" : "IN",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Kolkata, West Bengal, India",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 23.0078201,
"lng" : 88.5428696
},
"southwest" : {
"lat" : 22.3436288,
"lng" : 88.19430439999999
}
},
"location" : {
"lat" : 22.572646,
"lng" : 88.36389500000001
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 23.0078201,
"lng" : 88.5428696
},
"southwest" : {
"lat" : 22.3436288,
"lng" : 88.19430439999999
}
}
},
"place_id" : "ChIJZ_YISduC-DkRvCxsj-Yw40M",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}


JS

$(function() {
$("#home_city_select").change(function() {
//alert( $('option:selected', this).text() );
var city = document.getElementById("home_city_select").value;
var ltd;
var lng;

var jsonLtdLng="https://maps.googleapis.com/maps/api/geocode/json?address="+city+"&key=API_KEY";
//alert(JSON.stringify(jsonLtdLng));
//alert($.getJSON(jsonLtdLng));
//alert($.getJSON(jsonLtdLng.lat));
//alert($.getJSON(jsonLtdLng.results.geometry.location.lat));
//alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat));
//alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat()));
alert(jsonLtdLng.results[0].geometry.location.lat());
});
});


Testing in IBM Worklight.

But I cannot get the latitude and longitude

alert(JSON.stringify(jsonLtdLng));//returns full address

alert($.getJSON(jsonLtdLng));//returns object Object

alert($.getJSON(jsonLtdLng.lat));//returns nothing

alert($.getJSON(jsonLtdLng.results.geometry.location.lat));//returns nothing

alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat));//returns nothing

alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat()));//returns nothing

alert(jsonLtdLng.results[0].geometry.location.lat());//returns nothing

Answer

Your call to $.getJSON was not totally correct

Try this :

$.getJSON(jsonLtdLng, function (data) {
  console.log(data.results[0].geometry.location.lat);
});