0

使用第一个脚本创建地图并使用第二个脚本向其添加标记(不起作用)。我需要使用单独的脚本添加标记,因为标记数据是从我的数据库中检索的。查询循环遍历记录并为脚本提供标记的名称和坐标。我知道问题出在变量“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>
4

1 回答 1

1

这是一个时间问题。地图在 GoogleLoadMap() 函数中初始化(我假设它在窗口加载事件上运行,但您不提供该代码),在您创建所有标记后初始化。您需要在地图初始化后(在 GoogleLoadMap 函数内)初始化标记,或者在初始化地图后对所有标记调用 .setMap 方法。

于 2013-09-13T13:16:39.397 回答