Javascript 我怎样才能在一个循环中创建谷歌地图标记,比如;Marker1"&引用;Marker2";
很抱歉那个新手的问题,但我没有发现任何关于这个问题的想法 我想在谷歌地图上创建4个标记(或更多,但这里是4个)。我通过get ajax请求获得信息,并使用JSON进行响应。我可以创建这些标记,但每个标记的信息窗口都有问题 下面是我尝试的代码:Javascript 我怎样才能在一个循环中创建谷歌地图标记,比如;Marker1"&引用;Marker2";,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,很抱歉那个新手的问题,但我没有发现任何关于这个问题的想法 我想在谷歌地图上创建4个标记(或更多,但这里是4个)。我通过get ajax请求获得信息,并使用JSON进行响应。我可以创建这些标记,但每个标记的信息窗口都有问题 下面是我尝试的代码: function readDevices(output){ // Get an array for the 4 devices with guid 42421 42422 42423 and 42424 var arrayOfDev
function readDevices(output){
// Get an array for the 4 devices with guid 42421 42422 42423 and 42424
var arrayOfDevices = new Array();
$.each(output.data, function(key, value){
$.each(value, function(deviceKey, deviceValue){
if(deviceKey == 'guid' && deviceValue >= 42421 && deviceValue <= 42424){
arrayOfDevices.push(value); // add the entire object in the tab
}
});
});
for(var i = 0; i < arrayOfDevices.length; i++){
var guid = arrayOfDevices[i]["guid"];
var latitude = arrayOfDevices[i]["latitude"];
var longitude = arrayOfDevices[i]["longitude"];
var name = arrayOfDevices[i]["name"];
var coord = new google.maps.LatLng(latitude, longitude);
var contentString = '<div id="content">'+
'<form method="get" action="manual" id="form-new">'+
'<button type="submit" id="new-button" name="'+guid+'" class="btn new-btn">Manual</button>'+
'</form>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: coord,
title: name
});
marker.setMap(map);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
}
。。。但也许有一些技巧可以做这样的事情
我希望这是清楚的^ ^'
谢谢你们的帮助,伙计们!:-)
回答后请更正代码!多亏了他。
function addMarker(markerData, map){
var contentString = '<div id="content">'+
'<form method="get" action="manual" id="form-new">'+
'<button type="submit" id="new-button" name="'+markerData["guid"]+'" class="btn new-btn">Manual</button>'+
'</form>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var LatLng = new google.maps.LatLng(markerData["latitude"], markerData["longitude"]);
var marker = new google.maps.Marker({
position: LatLng,
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
function readDevices(output){
var arrayOfDevices = new Array();
var markers = new Array();
$.each(output.data, function(key, value){
$.each(value, function(deviceKey, deviceValue){
if(deviceKey == 'guid' && deviceValue >= 42421 && deviceValue <= 42424){
arrayOfDevices.push(value);
}
});
});
for(var i = 0; i < arrayOfDevices.length; i++){
var guid = arrayOfDevices[i]["guid"];
var latitude = arrayOfDevices[i]["latitude"];
var longitude = arrayOfDevices[i]["longitude"];
var name = arrayOfDevices[i]["name"];
var coord = new google.maps.LatLng(latitude, longitude);
markers.push(addMarker(arrayOfDevices[i], map));
}
}
函数addMarker(markerData,map){
var contentString=''+
''+
“手册”+
''+
'';
var infowindow=new google.maps.infowindow({
内容:contentString
});
var LatLng=new google.maps.LatLng(markerData[“纬度”]、markerData[“经度”]);
var marker=new google.maps.marker({
位置:LatLng,
地图:地图
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
函数读取设备(输出){
var arrayOfDevices=新数组();
var markers=新数组();
$.each(输出数据、函数(键、值){
$.each(值、函数(设备键、设备值){
如果(deviceKey=='guid'&&deviceValue>=42421&&deviceValue,由于无法生成这样的变量,因此不可能执行此操作。但可以生成一个数组,在for循环中填充如下标记:
var markers = new Array();
for (var i = 0; i < ArrayWithYourResultYouWantGenerateTheMarkersFrom.length; ++i) {
markers.push(addMarker(ArrayWithYourResultYouWantGenerateTheMarkersFrom.[i], map));
}
public function addMarker(markerData, map){
var LatLng = new google.maps.LatLng(markerData.lat, markerData.lon);
var marker = new google.maps.Marker({
position: LatLng,
map: map,
}
var markers=new Array();
对于(var i=0;i
好的,在对我的代码进行一些更新后,它就可以工作了。我已经编辑了我的帖子,您将能够看到更改。非常感谢!很高兴我能提供帮助!:)
var markers = new Array();
for (var i = 0; i < ArrayWithYourResultYouWantGenerateTheMarkersFrom.length; ++i) {
markers.push(addMarker(ArrayWithYourResultYouWantGenerateTheMarkersFrom.[i], map));
}
public function addMarker(markerData, map){
var LatLng = new google.maps.LatLng(markerData.lat, markerData.lon);
var marker = new google.maps.Marker({
position: LatLng,
map: map,
}