我被赋予了位置(纬度和长度),但位置不正确,小数点不正确。所以,我被告知用这段代码进行转换:
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));
}
有谁能告诉我我的代码有什么问题?
答案 0 :(得分:1)
location不是数组,它是一个字符串,所以location [1]没有意义。 “location”是变量的错误名称,它倾向于在某些浏览器中更改页面的URL。
var location = "N1433.704483,E12100.012501";
var latlngarr = location[1].split(",");
应该是:
var plocation = "N1433.704483,E12100.012501";
var latlngarr = plocation.split(",");