使用第一个脚本我创建地图并使用第二个脚本添加标记(这不起作用)。我需要使用单独的脚本添加标记,因为标记数据是从我的数据库中检索的。查询循环记录并为脚本提供标记的名称和坐标。我知道问题是关于变量“map”。如果我将标记脚本移动到第一个脚本中,它就可以工作。有人可以帮帮我吗?
<script type="text/javascript">
var map;
function GoogleLoadMap() {
var latLng = new google.maps.LatLng(35.337186, 33.337439);
var homeLatLng = new google.maps.LatLng(35.314246, 33.389347);
map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 12,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
};
</script>
<script type="text/javascript">
var marker<%=iii%> = new MarkerWithLabel({
position: new google.maps.LatLng(<%=lat%>, <%=lon%>),
draggable: true,
map: map,
labelContent: "<%=HNAME%>",
labelAnchor: new google.maps.Point(22, 0),
labelClass: "labels", // the CSS class for the label
labelStyle: {opacity: 0.75}
});
var iw<%=iii%> = new google.maps.InfoWindow({
content: "<%=HNAME%>"
});
google.maps.event.addListener(marker<%=iii%>, "click", function (e) {
iw<%=iii%>.open(map, marker<%=iii%>); });
</script>
答案 0 :(得分:1)
这是一个时间问题。在创建所有标记后,将初始化在GoogleLoadMap()函数中初始化的地图(我假设它在窗口加载事件上运行,但您不提供该代码)。初始化地图后(在GoogleLoadMap函数内),您需要初始化标记,或者在初始化地图后调用所有标记上的.setMap方法。