0
我寫了下面的代碼來顯示標記,並有相應的信息窗口顯示警察的名字。 警察課有名稱,經度和緯度。如何在JSP循環中定義動態變量?
<script>
function initialize()
{
var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
var myCenter = new google.maps.LatLng(28.6523605,77.0910645);
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
var mapProp = {
center: myCenter,
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP,
scaleControl: true
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
var marker = [];
var info= [];
<%
ArrayList<PoliceStation> stationList = new PoliceStation().loadclass();
for (int i=0 ; i < stationList.size() ; i++) {
%>
var pos = new google.maps.LatLng(
<%= stationList.get(i).getLatitude()%>,
<%= stationList.get(i).getLongitude()%>
);
marker = new google.maps.Marker({
position: pos,
map: map
});
marker.setMap(map);
var MarkerContent = "<div class=\"marker\">" +
"<h2>"+ "<%=stationList.get(i).getstationName()%>"
+"</h2>"+
"</div>";
info=new google.maps.InfoWindow();
info.setOptions({
content: MarkerContent,
size: new google.maps.Size(50, 50),
position: pos
});
google.maps.event.addListener(marker, 'click', function() {
info.setOptions({
content: MarkerContent
});
info.open(map, marker);
});
<%
}
%>
所有標記都按預期設置。然而,單擊任何標記都會導致僅打開繪製的最後一個標記的infowindow。
我知道這是因爲所有標記,infoWindow名稱是多餘的,最後只有最後一個infoWindow被保存到最後一個標記。
我所遇到的封裝與
(function() {var marker = ...; google.maps.event.addListener...;})();
但是裏面的內容for循環的解決方案,我正在尋找一個解決方案,動態明顯定義每個變量名。例如像在每次迭代時增加計數器的值到每個標記和信息變量。 請不要提供JSTP解決方案。尋找特定的JSP解決方案