2013-05-27 37 views
0

嗨,我想知道Geocoder是否仍在工作?它似乎沒有反應,當我初始化新的google.maps.geocoder();我的目的是從經度和緯度獲取位置地址。Geocoder仍然適用於Javascript?

警報A和B正在工作。停止在警報C上。

$('#btn').click(function initialize() { 
      alert("A"); 
      var loc = {}; 
      alert("B"); 
      var geocoder = new google.maps.Geocoder(); 
      alert("C"); 
      if(google.loader.ClientLocation) { 
       alert("D"); 
       loc.lat = google.loader.ClientLocation.latitude; 
       loc.lng = google.loader.ClientLocation.longitude; 

       var latlng = new google.maps.LatLng(loc.lat, loc.lng); 
       geocoder.geocode({'latLng': latlng}, function(results, status) { 
        if(status == google.maps.GeocoderStatus.OK) { 
         alert(results[0]['formatted_address']); 
        }; 
       }); 
      } 
     }); 
+0

使用'alert(google.loader.ClientLocation);''alert'後面''並且說出你得到了什麼。解釋你使用'google.loader.ClientLocation'並且在你調用這個函數之前你有lat和lng嗎? –

+0

返回null。這是爲什麼?我已經包含了jsapis.js文件。 –

+0

http://stackoverflow.com/questions/14195837/is-google-loader-clientlocation-still-supported –

回答

0

試試這個從lat,lng得到地址。點擊標記以顯示地址。它替代你的工作方式。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Testing</title> 
    <script src="scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyA7IZt-36CgqSGDFK8pChUdQXFyKIhpMBY&sensor=true" type="text/javascript"></script> 
    <script type="text/javascript"> 

     var map; 
     var geocoder; 
     var marker; 
     var latlng; 
     var infowindow; 

     $(document).ready(function() { 

     }); 

     function initialize() { 
      var mapOptions = { 
       //center: new google.maps.LatLng(40.4230, 98.7372), // Coimbatore = (11.0168445, 76.9558321) 
       zoom: 6, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

      geocoder = new google.maps.Geocoder(); 
      infowindow = new google.maps.InfoWindow(); 

      var latlngStr = $('#address').val().split(","); 
      var lat = parseFloat(latlngStr[0]); 
      var lng = parseFloat(latlngStr[1]); 

      latlng = new google.maps.LatLng(lat, lng); 
      marker = new google.maps.Marker({ 
       position: latlng, 
       map: map, 
       draggable: true 
      }); 
      map.setCenter(latlng); 

      google.maps.event.addListener(marker, 'click', function(event) { 
       geocoder.geocode({ 'latLng': event.latLng }, function(results, status) { 
        infowindow.setContent(results[0].formatted_address); 
       }); 

       infowindow.setContent(this.html); 
       infowindow.setPosition(event.latLng); 
       infowindow.open(map, this); 
      }); 
     } 

    </script> 

</head> 
<body> 
    <label> 
     Lat, Lng: 
    </label> 
    <input id="address" type="text" placeholder="10.9435131, 76.9383790" /> 
    <input type="button" value="Go" onclick="initialize()" /> 
    <br /> 
    <br /> 
    <div id="map-canvas" style="width: 800px; height: 500px"> 
    </div> 
</body> 
</html> 
相關問題