簡體   English   中英

Google Maps GeoCoder問題

[英]Google Maps GeoCoder Issue

我正在嘗試制作一個簡單的頁面,該頁面允許將來自mysql數據庫的地址轉換為經緯度,然后在地圖上顯示為標記。

下面的大多數代碼來自google文檔,其中還包含一些地理編碼器。

我可以成功警告正確的坐標(請參閱第48-53行),然后嘗試將其傳遞到Google地圖的“ point”變量中以創建標記,但地圖上沒有任何內容。

誰能看到我的代碼有什么問題嗎? 我對Java語言不熟悉,因此可能根本上是錯誤的。

謝謝

 function load() {
 geocoder = new google.maps.Geocoder();
 map = new google.maps.Map(document.getElementById("map"), {
   center: new google.maps.LatLng(47.6145, -122.3418),
   zoom: 3,
   mapTypeId: 'roadmap'
 });
 var infoWindow = new google.maps.InfoWindow;

 // Change this depending on the name of your PHP file
 downloadUrl("phpsqlajax_genxml3.php", function(data) {
   var coords;
   var xml = data.responseXML;
   var markers = xml.documentElement.getElementsByTagName("marker");
   for (var i = 0; i < markers.length; i++) {
     var name = markers[i].getAttribute("name");
     var address = markers[i].getAttribute("address");
     var type = markers[i].getAttribute("type");

     geocoder.geocode( { 'address': address}, function(results, status) {
       var latpoint = parseFloat(results[0].geometry.location.lat());
       var lngpoint = parseFloat(results[0].geometry.location.lng());
       coords = latpoint + ', ' + lngpoint;
       //alert(coords); //For Testing
     });

     var point = new google.maps.LatLng(coords);
     var html = "<b>" + name + "</b> <br/>" + address;
     var icon = customIcons[type] || {};
     var marker = new google.maps.Marker({
       map: map,
       position: point,
       icon: icon.icon,
       shadow: icon.shadow
     });
     bindInfoWindow(marker, map, infoWindow, html);
   }
 });

}

LatLng對象構造函數正在等待Number類型。 在這里,給它一個帶有連接坐標的string ,這是錯誤的。 這里文檔

嘗試嘗試:

var latpoint = parseFloat(results[0].geometry.location.lat());
var lngpoint = parseFloat(results[0].geometry.location.lng());

var point = new google.maps.LatLng(latpoint, lngpoint);

並且請參閱@Pekka웃評論,以確保下次有人回答您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM