Google Maps JS API v3-简单的多标记示例

对谷歌地图Api来说是相当新的。我有一个数组的数据,我想循环通过并绘制在地图上。看起来相当简单,但我发现的所有多标记教程都相当复杂

让我们以谷歌网站上的数据数组为例:

变量位置=[
[Bondi Beach',-33.890542151.274856,4],
[Coogee Beach',-33.923036151.259052,5],
[Cronulla Beach',-34.028249151.157507,3],
[‘曼利海滩’,-33.80010128657071151.28747820854187,2],
[‘马鲁布拉海滩’,-33.950198151.259302,1]
];

我只想绘制所有这些点,并在单击以显示名称时弹出一个信息窗口

这是我可以简化为的最简单的方法:

<!DOCTYPE html>
<html>
<头>
<meta http equiv=“content type”content=“text/html;charset=UTF-8”/>
<标题>谷歌地图多个标记&lt/标题>
<脚本src=”http://maps.google.com/maps/api/js?sensor=false" 
type=“text/javascript”&gt&lt/脚本>
&lt/头>
<车身>
<div id=“map”style=“宽度:500px;高度:400px;”&lt/部门>
<script type=“text/javascript”>
变量位置=[
[Bondi Beach',-33.890542151.274856,4],
[Coogee Beach',-33.923036151.259052,5],
[Cronulla Beach',-34.028249151.157507,3],
[‘曼利海滩’,-33.80010128657071151.28747820854187,2],
[‘马鲁布拉海滩’,-33.950198151.259302,1]
];
var map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:新谷歌地图LatLng(-33.92151.25),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
对于(i=0;i<locations.length;i++){
marker=新的google.maps.marker({
位置:新的google.maps.LatLng(位置[i][1],位置[i][2]),
地图:地图
});
google.maps.event.addListener(标记,'click',(函数(标记,i){
返回函数(){
infowindow.setContent(位置[i][0]);
信息窗口。打开(地图、标记);
}
})(marker,i));
}
&lt/脚本>
&lt/车身>
&lt/html>

👨‍💻 在代码笔上编辑/分叉→

屏幕截图

将回调参数传递给addListener方法时,会出现一些闭包魔术。如果您不熟悉闭包的工作方式,那么这可能是一个相当棘手的话题。如果是这样的话,我建议查看以下Mozilla文章以获得简要介绍:

❯ Mozilla开发中心:使用闭包

发表评论