In de return van de geocoder response zou ik graag de stad (locality) willen hebben. Ik weet dat ik hem uit de address_components array kan halen maar mijn javascript kennis gaat niet ver genoeg..
Weet iemand hoe dit moet?



$(function() {
			initialize();
		  	$(function() {
		   		$("#address").autocomplete({
			      	//This bit uses the geocoder to fetch address values
			      	source: function(request, response) {

			        	geocoder.geocode( {'address': request.term }, function(results, status) {
			          		response($.map(results, function(item) {
			            		return {
			              			label: item.formatted_address,
			              			value: item.formatted_address,
							latitude: item.geometry.location.lat(),
						        longitude: item.geometry.location.lng()
			            		}
				          	}));
			        	})
			      	},

			      	//This bit is executed upon selection of an address
			      	select: function(event, ui) {
			        	$("#latitude").val(ui.item.latitude);
			        	$("#longitude").val(ui.item.longitude);
					
			        	var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
			        	marker.setPosition(location);
			        	map.setCenter(location);
			      	}
				});
			});


Toevoeging op 25/05/2014 12:43:13:

Ok ben iets verder om de waarde uit de array te halen..
Kan iemand me helpen om onderstaand geintegreerd te krijgen in bovenstaand script?


var locality;

for (i=0;i<results[0].address_components.length;i++){
    for (j=0;j<results[0].address_components[i].types.length;j++){
       if(results[0].address_components[i].types[j]=="locality")
          locality = results[0].address_components[i].long_name
    }
}


Toevoeging op 25/05/2014 13:45:16:

Ok heb hem....

$(function() {
			initialize();
		  	$(function() {
		   		$("#address").autocomplete({
			      	//This bit uses the geocoder to fetch address values
			      	source: function(request, response) {
			        	geocoder.geocode( {'address': request.term }, function(results, status) {
			          		response($.map(results, function(item) {
						    var city;
						    for (i=0;i<results[0].address_components.length;i++){
							for (j=0;j<results[0].address_components[i].types.length;j++){
							   if(results[0].address_components[i].types[j]=="locality")
							      city = results[0].address_components[i].long_name;
							}
						    }
			            		return {
							city:city,
			              			label: item.formatted_address,
			              			value: item.formatted_address,
							latitude: item.geometry.location.lat(),
						        longitude: item.geometry.location.lng()
			            		}
				          	}));
			        	})
			      	},

			      	//This bit is executed upon selection of an address
			      	select: function(event, ui) {
			        	$("#latitude").val(ui.item.latitude);
			        	$("#longitude").val(ui.item.longitude);
					$("#city").val(ui.item.city);
			        	var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
			        	marker.setPosition(location);
			        	map.setCenter(location);
			      	}
				});
			});

Reageren