谷歌地图地理位置错误

时间:2014-02-27 06:02:58

标签: google-maps-api-3

我被赋予了位置(纬度和长度),但位置不正确,小数点不正确。所以,我被告知用这段代码进行转换:

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 个答案:

答案 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(",");