Utilizzo dell’indirizzo invece di longitudine e latitudine con l’API di Google Maps

Ho sentito che è ansible inviare un indirizzo anziché Longitudine e Latitudine e questo sarebbe molto più fattibile per il mio sistema. L’utente deve inserire il proprio indirizzo durante la creazione del proprio profilo e il loro profilo successivamente mostrerà una Google Maps della propria casa. Attualmente l’API di Google Maps funziona perfettamente con Longitude e Latitude:

   Login Page   html { height: 100% } body { height: 100%; margin: 0; padding: 0 } #map-canvas { height: 100% }     function initialize() { var mapOptions = { center: new google.maps.LatLng(52.640143,1.28685), zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), mapOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(52.640143,1.28685), map: map, title: "Mark On Map" }); } google.maps.event.addDomListener(window, 'load', initialize);   

Per favore qualcuno può aiutarmi a modificare il mio codice in modo che consenta all’API di Google Maps di richiedere un indirizzo al suo posto perché voglio leggere l’indirizzo dell’utente direttamente dal database mySQL.

Vedi questo esempio, inizializza la mappa in “San Diego, CA”.

Utilizza il Geocoder dell’API di Google Maps Javascript v3 per tradurre l’indirizzo in coordinate che possono essere visualizzate sulla mappa.

     Google Maps JavaScript API v3 Example: Geocoding Simple     

snippet di codice funzionante:

 var geocoder; var map; var address = "San Diego, CA"; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var myOptions = { zoom: 8, center: latlng, mapTypeControl: true, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU }, navigationControl: true, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); if (geocoder) { geocoder.geocode({ 'address': address }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (status != google.maps.GeocoderStatus.ZERO_RESULTS) { map.setCenter(results[0].geometry.location); var infowindow = new google.maps.InfoWindow({ content: '' + address + '', size: new google.maps.Size(150, 50) }); var marker = new google.maps.Marker({ position: results[0].geometry.location, map: map, title: address }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map, marker); }); } else { alert("No results found"); } } else { alert("Geocode was not successful for the following reason: " + status); } }); } } google.maps.event.addDomListener(window, 'load', initialize); 
 html, body, #map_canvas { height: 100%; width: 100%; } 
  

Ecco il mio codice per generare la mappa dalla posizione

Codice HTML

  
< ?php echo $doctorInfo[0]->serachLocation;?> // set address for which you need to generate map

Codice Javascript

  

per saperne di più clicca qui

La geocoding è il processo di conversione degli indirizzi (come “1600 Amphitheatre Parkway, Mountain View, CA”) in coordinate geografiche (come latitudine 37.423021 e longitudine -122.083739), che è ansible utilizzare per posizionare indicatori o posizionare la mappa.

Sarebbe questo quello che stai cercando: contiene codice di esempio
https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingRequests

È ansible analizzare la geolocalizzazione tramite gli indirizzi. Crea una matrice con jquery in questo modo:

 var addressesArray = [ 'Address Str.No, Postal Area/city', //follow this structure ] //loop all the addresses and call a marker for each one for (var x = 0; x < addressesArray.length; x++) { $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addressesArray[x]+'&sensor=false', null, function (data) { var p = data.results[0].geometry.location var latlng = new google.maps.LatLng(p.lat, p.lng); var aMarker= new google.maps.Marker({ position: latlng, //it will place marker based on the addresses, which they will be translated as geolocations. map: map }); } 

Inoltre, tieni presente che Google limita i risultati se non hai un account commerciale con loro e tu ricevi un errore se utilizzi troppi indirizzi.

 var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var mapOptions = { zoom: 8, center: latlng } map = new google.maps.Map(document.getElementById('map'), mapOptions); } function codeAddress() { var address = document.getElementById('address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == 'OK') { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { alert('Geocode was not successful for the following reason: ' + status); } }); }  

Oppure fai riferimento alla documentazione https://developers.google.com/maps/documentation/javascript/geocoding