将google.maps.latLng对象添加到列表会导致[未捕获的TypeError:google.maps.latLng不是函数]

时间:2015-10-30 12:12:19

标签: javascript ajax google-maps-api-3

我正在对服务器进行ajax调用以获取纬度和经度数据并将它们推送到包含google.maps.latLng坐标的列表。我正在进行一些计算,因为包含数据的矩阵来自稀疏矩阵(当然会被重写,因为它到目前为止很难看)。我知道我的tempLongtempLat值是正确的,但是当我执行ajax调用时,我不断获得[Uncaught TypeError: google.maps.latLng is not a function]。我怀疑这与ajax执行的异步调用有关,但我不确定。我查看了this帖子并决定将我的所有代码都放在.done{}函数中,但这没有用。

无论如何,这是我的代码:

function getMultipleArrays(){
var div = document.getElementById("map2");

$.get('getJSONObject', function(data) {

}).done(function(data){
    var minLat = data.minLat;
    var minLong = data.minLong;
    var m = data.m;
    var n = data.n;
    var val = data.val;
    var col = data.col;
    var row = data.row;
    var list =[];

    var minLatCoo= minLat*1000000;
    var minLongCoo= minLong*1000000;
    var i, j, k,zeroIndex;

    for(i=0; i<m;i++){
        zeroIndex=0;
        for(k=row[i]; k<row[i+1];k++){
            j= col[k];
            while(zeroIndex<j){
                zeroIndex++;
            }
            minLatCoo= minLat*1000000;
            minLongCoo= minLong*1000000;
            for(var l=val[k]; l>0;l--){
                minLatCoo+=zeroIndex;
                var tempLat = minLatCoo/1000000;
                minLongCoo+=i;
                var tempLong = minLongCoo/1000000;
                list.push(new google.maps.latLng(tempLong,tempLat));
                console.log(tempLong + " - " + tempLat);
            }
            zeroIndex++;
        }
    }
    console.log(list.length);
    console.log("DONE!");
    return list;
});}

list.push(new google.maps.latLng(tempLong,tempLat));行发生错误。任何想法失败的想法?

1 个答案:

答案 0 :(得分:1)

该类是LatLng,而不是latLng。 Javascript区分大小写;它应该是

list.push(new google.maps.LatLng(tempLong,tempLat));

......不是

list.push(new google.maps.latLng(tempLat, tempLong));

你也可以{I}推断出你的纬度和经度已经混淆了。

请参阅: https://developers.google.com/maps/documentation/javascript/reference#LatLng