这是我的要求
需要像这样创建数组。我使用Spring mvc + ajax + jquery + google map 3.0 我将这些值单独作为json响应得到。
1. city name 2. long 3. lat
var markers = [['Bondi Beach', -33.890542, 151.274856],['Coogee Beach', -33.923036, 151.259052],['Cronulla Beach', -34.028249, 151.157507],['Manly Beach', -33.80010128657071, 151.28747820854187],['Maroubra Beach', -33.950198, 151.259302]];
如何用javascript数组函数创建上面的循环。可以记录超过20,30 是3D阵列吗?
请帮我解决这个问题
感谢所有
下面的显示我的脚本代码并帮助我修改它以获得我的目标结果
function jsonResponse(){
var longitude=0;
var latitude=0;
var merchant='';
var total =0;
$.ajax({
url: 'merchantsList.html',
dataType: 'json',
contentType: 'application/json',
mimeType: 'application/json',
success: function(data) {
longitude=data.longitude;
latitude=data.latitude;
merchant=data.merchant;
total = data.length;
},
error:function(data,status,er) {
alert("error: "+data+" status: "+status+" er:"+er);
}
});
var markers = [['Bondi Beach', -33.890542, 151.274856],['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],['Manly Beach', -33.80010128657071, 151.28747820854187],
['Maroubra Beach', -33.950198, 151.259302]];
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(latitude, longitude),
map: map
});}
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(markers[i][0]);
infowindow.open(map, marker);
};
})(marker, i));
}
答案 0 :(得分:1)
在javascript中创建多维数组
var iMax = 20;
var jMax = 10;
var f = new Array();
for (i=0;i<iMax;i++) {
f[i]=new Array();
for (j=0;j<jMax;j++) {
f[i][j]=0;
}
}
答案 1 :(得分:1)
我假设你在谈论如何迭代你的标记......你现在这样做:
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(latitude, longitude),
map: map
});
}
但这不起作用:new google.maps.LatLng(latitude, longitude)
。您需要从当前标记获取lat和long:
position: new google.maps.LatLng(markers[i][1], markers[i][2]),
答案 2 :(得分:1)
一些疯狂的假设:var标记是样本数据,并且您希望将其替换为ajax查询返回的内容;城市名称== ajax数据中的商家。
如果从merchantsList.html返回的数据有多个商家/长/拉项,您需要迭代数据并将每个数据添加到标记数组。
那将是
var markers = [];
// ajax call start here..
// ...
success: function(data) {
var i, item;
for (i = 0; i < data.length; i++) {
item = data[i];
markers.push([item.merchant, item.longtitude, item.latitude]);
}
},
// ajax call end code here