How do I alert the latitude in this Google Maps javascript?
As you can see, there is a line in there that does an alert. It's "undefined". Whereas if I just alert results[0].geometry.location, it alerts (41.321, 41.556).
I just want to alert it and set it (as an int) to one of my id_lat and id_longs...
$("#geocodesubmit").click(function(){ $("#id_lat").val(""); $("#id_long").val(""); var address = $("#addressinput").val(); geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $("#badlocation_holder").hide(); $("#map_canvas").show(); $("#map_canvas_holder").show().css("background-color", "#E6E6FA").animate({"background-color":"#f5f5f5"}, 800); ; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); map.setCenter(results[0].geometry.location); alert(results[0].geometry.location[1]); //this is undefined. $("#id_lat").val(results[0].geometry.location[0]); $("#id_long").val(results[0].geometry.location[1]); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location, draggable:true }); } else { $("#map_canvas_holder").hide(); $("#badlocation_holder").show().css("background-color","#F08080").animate( {"background-color":"#f5f5f5"},800); } }); return false; });
Answers
Use results[0].geometry.location.lat() to get the latitude and results[0].geometry.location.lng() for the longitude.
If you look at the API, location isn't an array (that's the main issue here), it's a property, so .location is the correct way to access it, not .location[0].
The official documentation is a bit hard to find for specific types, but here are updated docs on that location (a LatLng type):
The toString() is what you're getting in an alert (lat, long), there's also .lat() for latitude and .lng() for longitude, like this:
alert(results[0].geometry.location.lat()); alert(results[0].geometry.location.lng());