【发布时间】:2019-04-02 18:57:54
【问题描述】:
我正面临在 JSP (Taglib) 中使用 JSTL 在 Google 地图上显示标记和 infoWindows 的问题 我有一个侦听器设置以单击标记,将显示相应的信息窗口(附加到标记)。
我的问题是:我点击任何标记它只显示 1 个信息窗口,当我另一个标记时它不能显示相应的标记和信息窗口..
我的脚本:
<script>
function initMap() {
var latLng = {lat:21.027763, lng:105.834160};
var map = new google.maps.Map(document.getElementById('googleMap'), {
mapTypeControlOptions: {
mapTypeIds: ['mystyle', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN]
},
zoom: 13,
center: latLng,
mapTypeId: 'mystyle'
});
map.mapTypes.set('mystyle', new google.maps.StyledMapType(myStyle, { name: 'My Style' }));
<c:forEach var="item" items="${itemList}">
var content = '<div id="div-main-infoWindow">' +
'<div id="iw-container">' +
'<div class="iw-title">' +
'<img src="${pageContext.request.contextPath}/photo/<c:out value="${item.THUMBNAIL_1}"/>" class="imgMarkerLabel">' +
'</div>' +
'<h2><c:out value='${item.NAME}'/></h2>' +
'<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>' +
'</div>' +
'</div>' +
'</div>';
var infowindow = new google.maps.InfoWindow({
content: content,
maxWidth: 291
});
google.maps.event.addListener(infowindow, 'domready', function () {
$('#div-main-infoWindow').closest('.gm-style-iw').parent().addClass('custom-iw');
});
var marker = new google.maps.Marker({
position: {lat: <c:out value="${item.LAT}"/>, lng: <c:out value="${item.MAPLONG}"/>},
map: map
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
</c:forEach>
}
google.maps.event.addDomListener(window, 'load', initMap);
</script>
我希望当我点击任何标记时,该标记将显示相应的信息窗口,并且它会在信息窗口中显示列表的属性 那么,我如何才能访问此侦听器之外的信息窗口?
【问题讨论】:
标签: javascript java google-maps jstl google-maps-markers