2014-02-27 2 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]은 의미가 없습니다. "location"은 변수의 나쁜 이름이므로 일부 브라우저에서는 페이지의 URL을 변경하는 경향이 있습니다.

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

은 다음과 같아야합니다

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

이 도와 주셔서 너무 감사합니다! – user3026876

관련 문제