Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75

    Recuperare coordinate da indirizzo

    Salve, sto sviluppando un sito, dove vado a salvare in un database mysql i dati di un attività. Al momento viene salvato l'indirizzo nel formato umano " es. via po, roma" io da questo indirizzo vorrei recuperare le coordinate: longitudine e latitudine da salvare nel mio db. Ho fatto una ricerca ma non ho trovato soluzione, o meglio qualcosa l'ho trovato ma di 4-5 anni fa, che adesso non funzionano più. Mi potete dare una mano, magari indirizzarmi su qualche guida o script?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75
    Esatto, e proprio quello che cerco...Ho provato ad usare il codice di quel esempio ma non funziona.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Si, già ci stavo dando un occhiata. Ma non ho capito che key bisogna generare. Dalla console mi chiede su quale piattaforma verrà usata. Io ho messo browser, ma se provo ad usare questo codice di esempio, non funziona:
    codice:
    <!DOCTYPE html><html>
      <head>
        <title>Geocoding service</title>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
        <meta charset="utf-8">
        <style>
          html, body {
            height: 100%;
            margin: 0;
            padding: 0;
          }
          #map {
            height: 100%;
          }
          #floating-panel {
            position: absolute;
            top: 10px;
            left: 25%;
            z-index: 5;
            background-color: #fff;
            padding: 5px;
            border: 1px solid #999;
            text-align: center;
            font-family: 'Roboto','sans-serif';
            line-height: 30px;
            padding-left: 10px;
          }
        </style>
      </head>
      <body>
        <div id="floating-panel">
          <input id="address" type="textbox" value="Sydney, NSW">
          <input id="submit" type="button" value="Geocode">
        </div>
        <div id="map"></div>
        <script>
          function initMap() {
            var map = new google.maps.Map(document.getElementById('map'), {
              zoom: 8,
              center: {lat: -34.397, lng: 150.644}
            });
            var geocoder = new google.maps.Geocoder();
    
    
            document.getElementById('submit').addEventListener('click', function() {
              geocodeAddress(geocoder, map);
            });
          }
    
    
          function geocodeAddress(geocoder, resultsMap) {
            var address = document.getElementById('address').value;
            geocoder.geocode({'address': address}, function(results, status) {
              if (status === google.maps.GeocoderStatus.OK) {
                resultsMap.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                  map: resultsMap,
                  position: results[0].geometry.location
                });
              } else {
                alert('Geocode was not successful for the following reason: ' + status);
              }
            });
          }
        </script>
        <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTn-w-2kAZPdBhUnya5bAJY4VtMofzZUU&callback=initMap">
        </script>
      </body>
    </html>

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    quello mi sembra il codice per mostrare un punto nella mappa
    tu dicevi di voler salvare il valore delle coordinate in un DB MySQL, di sicuro in quel modo non lo puoi fare

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75
    Si esatto, il problema che ho trovato un paio di esempi di script in php, ma aggiornati al 2008 ma che non funzionano piu, ho cercato di adattare questo script ma non funziona:

    codice:
    function address_in_coord($address){
    
    	$geocode_pending=true;
    
    
    	//Initialize delay in geocode speed
    	$delay=0;
    	//$base_url="http://".MAPS_HOST."/maps/geo?output=xml&key=".KEY;
    
    
    	$base_url="https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=AIzaSyDR2Vwtca_0LL0Wv2ipOfN3svjjDzyoCX8";
    
    
    	while($geocode_pending){
    
    
    		$request_url = $base_url . "&q=" . urlencode($address);
    		$xml=simplexml_load_file($base_url) or die("url not loading");
    
    
    		$status = $xml->Response->Status->code;
    		if (strcmp($status, "200") == 0){
    			// Successful geocode
    			$geocode_pending = false;
    			$coordinates = $xml->Response->Placemark->Point->coordinates;
    			$coordinatesSplit = explode(",", $coordinates);
    			// Format: Longitude, Latitude, Altitude
    			$lat = $coordinatesSplit[1];
    			$lng = $coordinatesSplit[0];
    
    
    			//echo $lat." --- ".$lng;
    
    
    			//punto di origine
    			$array=array();
    			$array[]=$lat;
    			$array[]=$lng;
    
    
    			return $array;
    
    
    
    
    
    
    		}elseif(strcmp($status, "620")==0) {
    		  // sent geocodes too fast
    		  $delay += 100000;
    		}else{
    		  // failure to geocode
    		  $geocode_pending=false;
    		  return "Address ".$address." failed to geocoded. Received status ".$status."\n";
    		}
    		usleep($delay);
    
    
    	}//while
    
    
    }

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    in genere non mi piace postare codice già pronto per l'uso, faccio un'eccezione.
    Questa è solo una delle soluzioni, adattala al tuo caso

    Codice PHP:
    <?php
    $urlAPI 
    "https://maps.googleapis.com/maps/api/geocode/json?"// URL della API per ottenere i dati in formato JSON
    $address "address=1600+Amphitheatre+Parkway,+Mountain+View,+CA"// l'indirizzo che vuoi cercare (gli spazi devono essere sostituiti da +)
    $key "&key="// qui occorre includere la 'API Key'


    // chiama l'URL della API concatenandoci i valori da passare come parametri
    $get file_get_contents($urlAPI $address $key); 
    // decodifica il JSON
    $data json_decode($get);


    // controlla che la chiamata sia andata a buon fine e recupera i dati di latitudine e longitudine
    if ($data->status == "OK") {
        
    $coords $data->results[0]->geometry->location;
        
    $lat $coords->lat;
        
    $lng $coords->lng;
    }
    // in casi negativo esce e mostra il messaggio di errore nella risposta
    else die("Errore nella risposta: '{$data->error_message}' \n");


    // stampa a video i dati ottenuti
    echo "Lat: $lat - Lon: $lng";
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.