2014-02-27 84 views
0

我給出的位置(經緯度和長度),但位置不正確,小數點不正確。所以,有人告訴我做轉換,此代碼:「找不到對象」Google地圖定位錯誤

var location = "N1433.704483,E12100.012501"; 
var latlngarr = location[1].split(","); 

if (latlngarr) { 

    longitude = latlngarr[1]; //經度 

    if (longitude.indexOf("E") >= 0) { 

     longitude = longitude.substring(1); 
     var degree = longitude/100 | 0; //除100後取整。 
     var cent = (longitude - degree * 100); //分的部分。 
     longitude = degree + cent/60.0; 

    } else if (longitude.indexOf("W") >= 0) { 

     longitude = longitude.substring(1); 
     var degree = longitude/100 | 0; //除100後取整。 
     var cent = (longitude - degree * 100); //分的部分。 
     longitude = degree + cent/60.0; 
    } 

    latitude = latlngarr[0]; //緯度 

    if (latitude.indexOf("N") >= 0) { 

     latitude = latitude.substring(1); 
     var degree = latitude/100 | 0; //除100後取整。 
     var cent = (latitude - degree * 100); //分的部分。 
     latitude = degree + cent/60.0; 

    } else if (latitude.indexOf("S") >= 0) { 

     latitude = latitude.substring(1); 
     var degree = latitude/100 | 0; //除100後取整。 
     var cent = (latitude - degree * 100); //分的部分。 
     latitude = degree + cent/60.0; 
    } 
} 

但是,當我試圖把它放在我的代碼裏面的網頁說:這是我的完整代碼。

var location = "N1433.704483,E12100.012501"; 
var latlngarr = location[1].split(","); 

if (latlngarr) { 

    longitude = latlngarr[1]; //經度 

    if (longitude.indexOf("E") >= 0) { 

     longitude = longitude.substring(1); 
     var degree = longitude/100 | 0; //除100後取整。 
     var cent = (longitude - degree * 100); //分的部分。 
     longitude = degree + cent/60.0; 

    } else if (longitude.indexOf("W") >= 0) { 

     longitude = longitude.substring(1); 
     var degree = longitude/100 | 0; //除100後取整。 
     var cent = (longitude - degree * 100); //分的部分。 
     longitude = degree + cent/60.0; 
    } 

    latitude = latlngarr[0]; //緯度 

    if (latitude.indexOf("N") >= 0) { 

     latitude = latitude.substring(1); 
     var degree = latitude/100 | 0; //除100後取整。 
     var cent = (latitude - degree * 100); //分的部分。 
     latitude = degree + cent/60.0; 

    } else if (latitude.indexOf("S") >= 0) { 

     latitude = latitude.substring(1); 
     var degree = latitude/100 | 0; //除100後取整。 
     var cent = (latitude - degree * 100); //分的部分。 
     latitude = degree + cent/60.0; 
    } 
} 

var locations = [ 
    ['Bondi Beach', latitude, longitude], 
    ]; 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(14.5833, 120.9667), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var infowindow = new google.maps.InfoWindow(); 

var marker, i; 

for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function (marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
    })(marker, i)); 
} 

誰能告訴我我的代碼有什麼問題嗎?

回答

1

位置不是數組,它是一個字符串,所以位置[1]沒有意義。 「位置」是變量的錯誤名稱,它傾向於在某些瀏覽器中更改頁面的URL。

var location = "N1433.704483,E12100.012501"; 
var latlngarr = location[1].split(","); 

應該是:

var plocation = "N1433.704483,E12100.012501"; 
var latlngarr = plocation.split(","); 
+0

非常感謝你的幫助! – user3026876