3D-*_*tiv 0 javascript google-maps google-maps-api-3
我想知道是否可以在页面加载时打开附加到下面代码中每个标记的 infoWindow 对象之一,而不仅仅是单击它们?现在,用户必须单击其中一个标记才能打开信息窗口。
我测试创建一个“独立”信息窗口对象并在加载时打开良好,但当我单击其他一些标记时它没有关闭,因为 onClick 函数附加到只能关闭信息窗口的标记附加到该对象。如果我错了,正确的医学?
这可能吗?我可以通过号码“调用”对象吗?或者我有什么选择?提示很有价值!
或者,如果可能的话,我尝试在加载时打开一个单独的信息窗口,并且如果我打开其他信息窗口之一,就能够关闭该窗口!?
var map = null;
var infowindow = new google.maps.InfoWindow();
var iconBase = 'images/mapNumbers/number';
//var zoomLevel = 11;
//var mapPositionLat = 55.678939;
//var mapPositionLng = 12.568359;
function initialize() {
var markerPos = new google.maps.LatLng(55.674196574861895, 12.583808898925781);
var myOptions = {
zoom: 11,
//center: new google.maps.LatLng(55.678939, 12.568359),
center: markerPos,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, 'click', function () {
infowindow.close();
});
google.maps.event.addListener(map, 'zoom_changed', function () {
infowindow.close();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(markerPos);
map.setZoom(zoomLevel);
//var center = map.getCenter();
});
// Add markers to the map
var point;
point = new google.maps.LatLng(55.667093,12.581255); createMarker(point, "<div class='infoWindow'>1</div>");
point = new google.maps.LatLng(55.660794,12.58972); createMarker(point, "<div class='infoWindow'>2</div>");
point = new google.maps.LatLng(55.660491,12.587087); createMarker(point, "<div class='infoWindow'>3</div>");
}
// Create markers
function createMarker(latlng, html, name, number) {
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: name,
icon: iconBase + number + '.png'
});
google.maps.event.addListener(marker, 'click', function () {
infowindow.setContent(html);
infowindow.open(map, marker);
//map.setCenter(marker.getPosition());
map.setCenter(55.678939, 12.568359);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)
为了InfoWindow在地图加载时显示,请调用
infowindow.open(map, marker);
Run Code Online (Sandbox Code Playgroud)
在标记侦听器之外。
下面是演示createMarker函数,其中参数displayInfoWindow定义了地图加载时是否显示InfoWindow:
// Create marker
function createMarker(map,markerPos, markerTitle,infoWindowContent,displayInfoWindow) {
var marker = new google.maps.Marker({
position: markerPos,
map: map,
title: markerTitle,
});
var infowindow = new google.maps.InfoWindow({
content: infoWindowContent
});
if(displayInfoWindow) {
infowindow.open(map, marker);
}
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
});
}
Run Code Online (Sandbox Code Playgroud)
示例: http: //jsbin.com/lusuquwu/1/
| 归档时间: |
|
| 查看次数: |
9817 次 |
| 最近记录: |