我的谷歌地图有点问题。我知道问题与循环有关,并且想要一些有关解决问题的更好方法的信息
所以让我为你画一幅画;我有一张通过 lat/lng 显示位置的地图(从数据库中提取)。这些标记有一个附加侦听器,允许您单击它们以显示信息,问题是,当我单击任何标记时,工具提示将集中在添加到地图中的最后一项并显示该标记的信息. 这是可笑的!(不是说唱歌手)
我想拿一把锤子把我的地图敲回原形,而不是在你们提出一些明智的建议之前。下面是编码。
function initialize() {
var mapOptions = {
center: new google.maps.LatLng([REMOVED], [REMOVED]),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
// RAZOR BEGIN
@foreach (var item in Model) {
<text>
var markerlatLng = new google.maps.LatLng(@(item.latitude), @(item.longitude));
var title = '@(item.address1)';
var description = '@(item.averageRating)';
var contentString = '<h3>' + title + '</h3>' + '<p>' + description + '</p>'
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: markerlatLng,
title: title,
map: map,
draggable: false
});
google.maps.event.addListener(marker, 'click', function () {
map.setZoom(15);
map.setCenter(marker.getPosition());
//open a div on the mouse location?
infowindow.open(map, marker);
});
</text>
}
//RAZOR END
如您所见,它循环遍历模型并获取要放置在地图上的相关信息。
我试过将监听器放在剃刀循环之外,但这只是让它根本不起作用。
与往常一样,Stackoverflow,您的帮助将非常非常感谢。
PS。这次没有饼干。