Javascript 如何在Google maps v3中为每个标记添加编号?

Javascript 如何在Google maps v3中为每个标记添加编号?,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我想问一下如何使用JavaScript在Google Maps v3中的每个标记上动态添加数字。例如,第一个标记是1,第二个标记是2,等等。在这种情况下,我有如下位置数据: [ new google.maps.LatLng(1.3667, 103.8000), new google.maps.LatLng(1.3667, 103.8000), new google.maps.LatLng(1.3667, 103.8000), new google.maps.LatLng(1.3667,

我想问一下如何使用JavaScript在Google Maps v3中的每个标记上动态添加数字。例如,第一个标记是1,第二个标记是2,等等。在这种情况下,我有如下位置数据:

[
 new google.maps.LatLng(1.3667, 103.8000),
 new google.maps.LatLng(1.3667, 103.8000), 
 new google.maps.LatLng(1.3667, 103.8000),
 new google.maps.LatLng(1.3667, 103.8000),
 new google.maps.LatLng(51.0000, 9.0000),
 new google.maps.LatLng(51.0000, 9.0000),
 new google.maps.LatLng(51.5142, -0.0931),
 new google.maps.LatLng(51.5142, -0.0931),
 new google.maps.LatLng(54.0000, -2.0000),
 new google.maps.LatLng(51.6000, -1.2500),
 new google.maps.LatLng(51.7500, -1.2500)
];
但这些数据是动态变化的。因此,对于第一个位置lat/long,我将在第一个标记上给出数字1,在第二个标记上给出数字2,等等。我还使用每个标记的图标:

"http://chart.apis.google.com/chart?chst=d_map_xpin_letter_withshadow&chld=pin_star|%E2%80%A2|CC3300|000000|FF9900"
我必须更改标记图标吗?
我真的需要你的建议或示例代码来解决这个问题。请帮忙。非常感谢您的帮助。

您可以通过多种方式完成此操作。更改标记图像是其中之一,但需要创建所有这些标记图像。另一种方法是使用。

您可以保留带星号的pin图标,并在旁边添加一个不显眼的标签。这个标签可以说任何东西,但我把它保留为一个简单的数字。是()

演示

你也需要为它定义一个CSS

  .labels {
     color: blue;
     background-color: white;
     font-family: "Lucida Grande", "Arial", sans-serif;
     font-size: 12px;
     font-weight: bold;
     text-align: center;
     width: 25px;
     border: 1px solid black;
     white-space: nowrap;
   }
​
并用MarkerWithLabel替换常规标记:

for (var i = 0; i < point.length; i++) {
    var marker = new MarkerWithLabel({
        map: map,
        position: point[i],
        icon: pinImage,
        shadow: pinShadow,
        labelContent: i,
        labelAnchor: new google.maps.Point(12, -5),
        labelClass: "labels"
    });
}
for(变量i=0;i
包括在HTML文件中

  <head>
    <style type="text/css">
      html, body, #map_canvas { margin: 0; padding: 0; height: 100% }
      .labels {
        color: blue;
        background-color: white;
        font-family: "Lucida Grande", "Arial", sans-serif;
        font-size: 12px;
        font-weight: bold;
        text-align: center;
        width: 25px;
        border: 1px solid black;
        white-space: nowrap;
      }
    </style>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.5/src/markerwithlabel_packed.js"></script>

    <script type="text/javascript">
      var map;
      var mapOptions = { center: new google.maps.LatLng(0.0, 0.0), zoom: 2,
        mapTypeId: google.maps.MapTypeId.ROADMAP };
      ...

html,body,#map_canvas{margin:0;padding:0;height:100%}
.标签{
颜色:蓝色;
背景色:白色;
字体系列:“Lucida Grande”,“Arial”,无衬线;
字体大小:12px;
字体大小:粗体;
文本对齐:居中;
宽度:25px;
边框:1px纯黑;
空白:nowrap;
}
var映射;
var mapOptions={center:new google.maps.LatLng(0.0,0.0),zoom:2,
mapTypeId:google.maps.mapTypeId.ROADMAP};
...

Chad先生,你能举个例子吗??我是新手,所以我不知道如何处理StyledMarker库。。。谢谢我链接的StyledMarker库既有文档也有示例,比如这个:所以我们只有StyledMarker.js文件,然后我们在映射文件中调用这个类,不是吗??非常感谢你(再次)的帮助。所以,我想问一下你的答案。对于markerwithlabel_packed.js,我从来都不知道这个脚本。这真的很难理解,尤其是像我这样的新手。但我试着去了解,即使它需要很长的时间去做。对于CSS,我需要创建新文件吗?或者我可以把它添加到我的JavaScript中??非常感谢您。是的,带标签包装的markerwithlabel_令人困惑,因为它是为了节省带宽。需要做的是将.label添加到样式标记和markerwithlabel中,就像GoogleMapsAPI一样。如果您想格外小心,请下载该文件并包含本地副本。请看我最新答案的结尾。哦,@Lilina,我很快就会试试。在看到你的最新答案后,我现在明白了。对于markerwithlabel,可以使用类似于Google Maps API的链接包含库。如果我将其保存在本地磁盘中,那么链接会是什么样子??这就像:如果我错了就纠正我。感谢Lilina…对于本地副本,最好使用相对路径,我的意思是,只需将其保存在与php文件相同的文件夹中,然后编写script type=“text/javascript”src=“markerwithlabel\u packed.js”我建议您保存该文件,因为一旦我看到远程文件被更改,我的应用程序被破坏。我会告诉您Lilina…)