2012-04-29 25 views
7

मुझे मानचित्र पर क्लिक करने के बाद पता और समन्वय प्राप्त करने की आवश्यकता है, मैं Google मानचित्र एपीआई v3 का उपयोग कर रहा हूं, मैंने इनपुट में निर्देशांक को दोबारा शुरू किया लेकिन मुझे बिंदु की भीड़ की आवश्यकता है।मानचित्र पर क्लिक करने के बाद पता प्राप्त करें

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(); 
      } 

     } 

मैं पता पाने के लिए इस PHP स्क्रिप्ट का इस्तेमाल किया है, लेकिन अगर कैसे जावास्क्रिप्ट में इसका उपयोग करना नहीं जानते? क्या मैं पता पाने के लिए जावास्क्रिप्ट का उपयोग कर सकता हूं?

<?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; 

    ?> 

उत्तर

17

पता पुनर्प्राप्त करने का एक सरल उदाहरण यहां दिया गया है। परिणाम जटिल हो सकते हैं (यह एक सरणी है, मैंने देखा कि यह क्रॉस सड़कों, पड़ोस, राज्य और देश का मनमाना मिश्रण है। मुझे पैटर्न नहीं मिला)

मैं केवल पहली पंक्ति का उपयोग कर रहा हूं परिणाम जो सड़क, शहर, राज्य, देश का संयोजन है। यहां पढ़ें विवरण:

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

एक डेमो यहाँ है: http://jsfiddle.net/eB2RX/1/

मैंने देखा संकल्प बहुत अच्छा नहीं है, मेरा मतलब है, संयुक्त राज्य अमेरिका में आप सड़क नंबर प्राप्त नहीं बल्कि ट्यूनीशिया में। मैंने केवल स्ट्रीट नाम देखा।

कोड का एक हिस्सा:

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

बहुत बहुत शुक्रिया आदमी, यह काम;) – Houx

+0

आपका स्वागत है! –

+0

कृपया, मुझे फ्रांसीसी में परिणाम मिल गया है, मुझे उन्हें अंग्रेजी में, किसी भी विचार की आवश्यकता है। – Houx

संबंधित मुद्दे