Javascript 将google.maps.latLng对象添加到列表中会导致[未捕获类型错误:google.maps.latLng不是函数]
我正在对服务器进行ajax调用,以获取纬度和经度数据,并将它们推送到包含google.maps.latLng坐标的列表中。我在做一些计算,因为包含数据的矩阵来自一个稀疏矩阵(当然会被重写,因为到目前为止它很难看)。我知道我的Javascript 将google.maps.latLng对象添加到列表中会导致[未捕获类型错误:google.maps.latLng不是函数],javascript,ajax,google-maps-api-3,Javascript,Ajax,Google Maps Api 3,我正在对服务器进行ajax调用,以获取纬度和经度数据,并将它们推送到包含google.maps.latLng坐标的列表中。我在做一些计算,因为包含数据的矩阵来自一个稀疏矩阵(当然会被重写,因为到目前为止它很难看)。我知道我的tempLong和tempLat值是正确的,但是当我执行ajax调用时,我不断得到[未捕获的类型错误:google.maps.latLng不是一个函数]。我怀疑这与ajax执行的异步调用有关,但我不确定。我看了这篇文章,决定把我所有的代码放在.done{}函数中,但这并没有帮
tempLong
和tempLat
值是正确的,但是当我执行ajax调用时,我不断得到[未捕获的类型错误:google.maps.latLng不是一个函数]
。我怀疑这与ajax执行的异步调用有关,但我不确定。我看了这篇文章,决定把我所有的代码放在.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;
});}
函数getmultiplearlays(){
var div=document.getElementById(“map2”);
$.get('getJSONObject',函数(数据){
}).完成(功能(数据){
var minLat=data.minLat;
var minLong=data.minLong;
var m=data.m;
var n=数据n;
var val=data.val;
var col=data.col;
var行=data.row;
var列表=[];
var minLatCoo=minLat*1000000;
var minLongCoo=minLong*1000000;
var i,j,k,零指数;
对于(i=0;i类是LatLng,而不是LatLng.Javascript区分大小写;它应该是
list.push(new google.maps.LatLng(tempLong,tempLat));
……不是
list.push(new google.maps.latLng(tempLat, tempLong));
你也可以新建google.maps.latLng(tempLong,tempLat)
,从中我推断出你的经纬度混淆了
见: