2012-04-29 20 views
7

Haritaya tıkladıktan sonra adres ve koordinatlarını almam gerekiyor, google map api v3 kullanıyorum, girişlerdeki koordinatları sildim ama aynı zamanda noktanın bir yedeğini de aldım. Haritadaki tıklatıldıktan sonra adres alın

function initialize() { 
      var myOptions = { 
       center: new google.maps.LatLng(36.835769, 10.247693), 
       zoom: 15, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById("map_canvas"), 
      myOptions); 
      google.maps.event.addListener(map, 'click', function(event) { 
       placeMarker(event.latLng); 
      }); 

      var marker; 
      function placeMarker(location) { 
       if(marker){ //on vérifie si le marqueur existe 
        marker.setPosition(location); //on change sa position 
       }else{ 
        marker = new google.maps.Marker({ //on créé le marqueur 
         position: location, 
         map: map 
        }); 
       } 
       latitude.value=location.lat(); 
       longitude.value=location.lng(); 
      } 

     } 

ben adresini almak için bu php script kullanılan ancak eğer javascript nasıl kullanılacağını bilmiyor musunuz? Adres almak için javascript kullanabilir miyim?

<?php 
    $url  = 'http://where.yahooapis.com/geocode?location=40.714224,-73.961452&gflags=R&flags=J'; 
    $response = json_decode(file_get_contents($url)); 
    $location = $response->ResultSet->Results[0]; 
    foreach ((array) $location as $key => $value) { 
      if($key == 'city') 
       $city = $value; 
      if($key == 'country') 
       $country = $value; 
      if($key == 'street') 
       $street = $value; 
    } 
    echo "Street: ".$street."<br>"; 
    echo "City: ".$city; 
    echo "<br/>Country: ".$country; 

    ?> 

cevap

17

Adres almak için basit bir örnek. Sonuçlar karmaşıklaşabilir (gördüğüm noktadan, çapraz sokakların, mahallelerin, eyaletlerin ve ülkenin rasgele bir karışımı olduğunu görüyorum. Bir model görmedim)

Sadece ilk satırı kullanıyorum sokak, şehir, eyalet, ülke birleşimi olan sonuçlar. Burada ayrıntıları okuyun:

https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingResults

Bir demo buradadır: http://jsfiddle.net/eB2RX/1/

Ben çözünürlüğü çok iyi değil fark, yani ABD'de sokak numaralarını alabiliriz, ancak Tunus'ta. Sadece Sokak isimlerini gördüm. kod

Bölüm:

var map; 
    var geocoder; 
    var mapOptions = { center: new google.maps.LatLng(0.0, 0.0), zoom: 2, 
    mapTypeId: google.maps.MapTypeId.ROADMAP }; 

    function initialize() { 
     var myOptions = { 
      center: new google.maps.LatLng(36.835769, 10.247693), 
      zoom: 15, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     geocoder = new google.maps.Geocoder(); 
     var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
     google.maps.event.addListener(map, 'click', function(event) { 
      placeMarker(event.latLng); 
     }); 

     var marker; 
     function placeMarker(location) { 
      if(marker){ //on vérifie si le marqueur existe 
       marker.setPosition(location); //on change sa position 
      }else{ 
       marker = new google.maps.Marker({ //on créé le marqueur 
        position: location, 
        map: map 
       }); 
      } 
      document.getElementById('lat').value=location.lat(); 
      document.getElementById('lng').value=location.lng(); 
      getAddress(location); 
     } 

    function getAddress(latLng) { 
    geocoder.geocode({'latLng': latLng}, 
     function(results, status) { 
     if(status == google.maps.GeocoderStatus.OK) { 
      if(results[0]) { 
      document.getElementById("address").value = results[0].formatted_address; 
      } 
      else { 
      document.getElementById("address").value = "No results"; 
      } 
     } 
     else { 
      document.getElementById("address").value = status; 
     } 
     }); 
    } 
    } 
+0

çok teşekkürler adam, o iş;) – Houx

+0

Bir şey değil! –

+0

lütfen, sonucu Fransızca olarak aldım, İngilizce'ye ihtiyacım var, herhangi bir fikir. – Houx

İlgili konular