2011-10-30 73 views
0

當您點擊「查找我」按鈕時,它會找到您的位置,但問題出在地理編碼部分。對Google地圖上的地理位置進行地理編碼時出錯

它應該在「myaddress」div中顯示你的位置的地址。但它給出了一個我不明白的錯誤。

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 
function initialize() { 
    var latlng = new google.maps.LatLng(0, 0); 
    var myOptions = { 
     zoom: 1, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("sbmr"), 
     myOptions); 


} 

///////////////////////////////////////////////////////////////////////////// 

var initialLocation; 
var siberia = new google.maps.LatLng(60, 105); 
var browserSupportFlag = new Boolean(); 
var myposition; 
var geocoder; 

function geocode() { 

     var myOptions = { 
     zoom: 6, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     var map = new google.maps.Map(document.getElementById("sbmr"), myOptions); 

    // Try W3C Geolocation (Preferred) 
    if(navigator.geolocation) { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 


     /////////////////PROBLEM IS WITH THIS PART/////////////////// 
     var latlng = new google.maps.LatLng(initialLocation); 
     geocoder = new google.maps.Geocoder(); 
     geocoder.geocode(latlng, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
      if (results[1]) 
      document.getElementById("myaddress").innerHTML = 'results[1].formatted_address' 
      } 
      else { 
      alert("Geocoder failed due to: " + status); 
      } 
      }); 
     ////////////////////////////////////////////////// 
     var marker = new google.maps.Marker({ 
        position: initialLocation, 
        map: map, 
        animation: google.maps.Animation.BOUNCE, 
        title:"You're here." 
        }); 

     map.setCenter(initialLocation); 

     map.setZoom(15); 

     //W3C olursa yapilanlar bitis 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    } 
}//geocodefinish 
</script> 

<style type="text/css"> 
<!-- 
#sbmr { 
    position:absolute; 
    left:62px; 
    top:39px; 
    width:1098px; 
    height:649px; 
    z-index:1; 
} 
#myaddress { 
    position:absolute; 
    left:1185px; 
    top:219px; 
    width:286px; 
    height:318px; 
    z-index:2; 
} 
#apDiv1 { 
    position:absolute; 
    left:1189px; 
    top:70px; 
    width:264px; 
    height:117px; 
    z-index:3; 
} 
--> 
</style> 
</head> 

<body onload="initialize()"> 



<div id="sbmr"></div> 
<div id="myaddress"> 
<h2>My address:</h2> 
<br /> 
</div> 
<div id="apDiv1"> 
    <label> 
    <input type="submit" name="button" id="button" value="Find Me" onclick="geocode()" /> 
    </label> 
</div> 
</body> 
</html> 
+0

什麼是錯誤? –

+0

未知屬性 [打開此錯誤] I.toSpan = function(){return new Q(this ... n(b){return b == j && c || b instanceof a}} main.js(第16行) – user552828

+0

@Vlad直接在Firefox上打開這個文件,你會看到問題 – user552828

回答

2

地理編碼器將字符串地址編碼到LatLng對象中。而不是傳遞具有傳遞latlng對象的地址的對象,這是錯誤的。

更改此:

geocoder.geocode(latlng, function(results, status) {... 

與此:

geocoder.geocode({address: "type your address here"}, function(results, status) ... 

UPDATE: 如果你正在尋找做反向地理編碼(從經緯度獲得地址)籤此鏈接: http://code.google.com/apis/maps/documentation/javascript/services.html#ReverseGeocoding

相關問題