Jquery 在Google地图阵列中显示某些信息窗口
我希望能够在页面加载时显示某些信息窗口。因此,用户不必将鼠标悬停在它们上面,它们已经被加载了——然而,我只想在数组中的4个标记中的2个上执行此操作Jquery 在Google地图阵列中显示某些信息窗口,jquery,arrays,google-maps,google-maps-api-3,Jquery,Arrays,Google Maps,Google Maps Api 3,我希望能够在页面加载时显示某些信息窗口。因此,用户不必将鼠标悬停在它们上面,它们已经被加载了——然而,我只想在数组中的4个标记中的2个上执行此操作 var marker, i; var markers = []; var locations = [ ['<div style="width: 170px;">Title1</div>', 50.794785, -1.116947, image], ['<div s
var marker, i;
var markers = [];
var locations = [
['<div style="width: 170px;">Title1</div>', 50.794785, -1.116947, image],
['<div style="width: 190px;">Title2</div>', 50.797, -1.109, image],
['<div style="width: 120px;">Title3', 50.796928, -1.107119, '../images/map-pointer.png'],
['<div style="width: 150px;">Title4</div>', 50.794703, -1.117880, '../images/map-pointer.png']
];
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,
icon: locations[i][3],
//visible: false,
zIndex: 10
});
/* Open marker on mouseover */
google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
markers.push(marker); // save all markers
}
/* Change markers on zoom */
google.maps.event.addListener(map, 'zoom_changed', function() {
var zoom = map.getZoom();
// iterate over markers and call setVisible
for (i = 0; i < locations.length; i++) {
markers[i].setVisible(zoom >= 15);
}
if (map.getZoom()>=15) {
flightPath.setMap(map)
} else {
flightPath.setMap(null)
}
});
这对我不起作用,但我走对了吗?这是怎么做的
编辑
所以它部分起作用了
这就是我的for循环当前的样子:
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,
icon: locations[i][3],
//visible: false,
zIndex: 10
});
/* Check to see if it should open */
if ((locations[i][4]) == 'true') {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
/* Open marker on mouseover */
google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
markers.push(marker); // save all markers
}
(i=0;i
marker=新的google.maps.marker({
位置:新的google.maps.LatLng(位置[i][1],位置[i][2]),
地图:地图,
图标:地点[i][3],
//可见:假,
zIndex:10
});
/*检查它是否应该打开*/
如果((位置[i][4])=='true'){
infowindow.setContent(位置[i][0]);
信息窗口。打开(地图、标记);
}
/*鼠标盖上的打开标记*/
google.maps.event.addListener(标记'mouseover',(函数(标记,i){
返回函数(){
infowindow.setContent(位置[i][0]);
信息窗口。打开(地图、标记);
}
})(marker,i));
markers.push(marker);//保存所有标记
}
不过,这只是我的一个“真的”——我假设这是因为我需要多个infoWindow实例,如下面的人所说
编辑:成功完成-感兴趣的人请参见下面应该是
if ((locations[i][4]) == true)
更多问题:
- 当前infowindow没有任何内容(内容设置为onmouseover)。在标记上触发鼠标悬停,而不是以编程方式打开信息窗口:
- 似乎您使用的是单个
-实例,如果您希望同时打开多个InfoWindow,则必须使用多个实例google.maps.InfoWindow
- 成功做到了!有兴趣的人士:
var infowindow = new google.maps.InfoWindow();
var marker, i;
var markers = [];
var locations = [
['<div style="width: 170px;">Title1</div>', 50.794785, -1.116947, image,'true'],
['<div style="width: 190px;">Title2</div>', 50.797, -1.109, image,'true'],
['<div style="width: 120px;">Title3', 50.796928, -1.107119, '../images/map-pointer.png','false'],
['<div style="width: 150px;">Title4</div>', 50.794703, -1.117880, '../images/map-pointer.png','false']
];
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,
icon: locations[i][3],
//visible: false,
zIndex: 10
});
/* Open specific markers on page load */
var infocontent = locations[i][0];
if ((locations[i][4]) == 'true') {
var infwin = new google.maps.InfoWindow({content: infocontent});
infwin.open(map, marker);
}
/* Open marker on mouseover */
google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
markers.push(marker); // save all markers
}
var infowindow=new google.maps.infowindow();
var标记,i;
var标记=[];
变量位置=[
[Title1',50.794785,-1.116947,图像,'true'],
[Title2',50.797,-1.109,图像,'true'],
[Title3',50.796928,-1.107119,../images/map pointer.png','false'],
['Title4',50.794703,-1.117880,../images/map pointer.png','false']
];
对于(i=0;i
什么是“标记[i][4]”?这看起来不对。需要是你的位置数组。谢谢。我如何制作多个信息窗口?会是var infowindow,i=new google.maps.infowindow()?
if ((locations[i][4]) == true)
if ((locations[i][4])) {
google.maps.event.trigger(marker,'mouseover');
}
var infowindow = new google.maps.InfoWindow();
var marker, i;
var markers = [];
var locations = [
['<div style="width: 170px;">Title1</div>', 50.794785, -1.116947, image,'true'],
['<div style="width: 190px;">Title2</div>', 50.797, -1.109, image,'true'],
['<div style="width: 120px;">Title3', 50.796928, -1.107119, '../images/map-pointer.png','false'],
['<div style="width: 150px;">Title4</div>', 50.794703, -1.117880, '../images/map-pointer.png','false']
];
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,
icon: locations[i][3],
//visible: false,
zIndex: 10
});
/* Open specific markers on page load */
var infocontent = locations[i][0];
if ((locations[i][4]) == 'true') {
var infwin = new google.maps.InfoWindow({content: infocontent});
infwin.open(map, marker);
}
/* Open marker on mouseover */
google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
markers.push(marker); // save all markers
}