Javascript 有没有办法在google maps V3中动态放置不同的标记?

Javascript 有没有办法在google maps V3中动态放置不同的标记?,javascript,jsp,google-maps,google-maps-api-3,Javascript,Jsp,Google Maps,Google Maps Api 3,我正在开发谷歌地图API V3。我需要在地图上动态放置标记,我需要用任何方法区分每个标记 我需要有编号的标记或不同颜色的标记。请提出一个方法来完成我的项目。我在JSP页面中使用纯javascript。添加标记时,使用关联数组存储标记,其中的键是标记的唯一标识符。大概是这样的: var markersOnMap=[]; function addMarker(markerJson) { if(!markersOnMap[markerJson.identifier]) { //co

我正在开发谷歌地图API V3。我需要在地图上动态放置标记,我需要用任何方法区分每个标记


我需要有编号的标记或不同颜色的标记。请提出一个方法来完成我的项目。我在JSP页面中使用纯javascript。

添加标记时,使用关联数组存储标记,其中的键是标记的唯一标识符。大概是这样的:

var markersOnMap=[];

function addMarker(markerJson)
{
  if(!markersOnMap[markerJson.identifier])
  {
     //code to add marker
     markersOnMap[markerJson.identifier]=true;
  }
}
是从google maps API v3翻译的标记类别示例。我有一些可以翻译成v3的和或的v2 API示例

代码片段:

//此变量将收集最终放置在侧栏中的html
var side_bar_html=“”;
var gmarkers=[];
var gicons=[];
var-map=null;
var infowindow=new google.maps.infowindow({
尺寸:新谷歌。地图。尺寸(150,50)
});
gicons[“red”]=新的google.maps.MarkerImage(“http://www.geocodezip.com/mapIcons/marker_red.png",
//此标记宽20像素,高34像素。
新谷歌地图大小(20,34),
//此图像的原点为0,0。
新的google.maps.Point(0,0),
//这张图片的锚定点是9,34。
新google.maps.Point(9,34));
//标记大小表示为X,Y的大小
//图像(0,0)的原点所在的位置
//在图像的左上角。
//标记的原点、锚定位置和坐标
//沿X方向向右和向内增加
//Y方向向下。
var iconImage=new google.maps.MarkerImage('http://www.geocodezip.com/mapIcons/marker_red.png',
//此标记宽20像素,高34像素。
新谷歌地图大小(20,34),
//此图像的原点为0,0。
新的google.maps.Point(0,0),
//这张图片的锚定点是9,34。
新google.maps.Point(9,34));
var iconShadow=新的google.maps.MarkerImage('http://www.google.com/mapfiles/shadow50.png',
//阴影图像在水平维度上更大
//而位置和偏移量与主图像相同。
新谷歌地图尺寸(37,34),
新的google.maps.Point(0,0),
新google.maps.Point(9,34));
//形状定义图标的可单击区域。
//该类型定义了一个HTML区域元素“poly”,该元素
//将多边形绘制为一系列X、Y点。决赛
//坐标通过连接到第一个多边形来关闭多边形
//协调。
var iconShape={
坐标:[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,16,18,16,20,20,8,18,4,16,2,15,13,0],
类型:“poly”
};
函数getMarkerImage(iconColor){
if((typeof(iconColor)=“未定义”)| |(iconColor==null)){
iconColor=“红色”;
}
如果(!gicons[iconColor]){
gicons[iconColor]=新的google.maps.MarkerImage(“http://www.geocodezip.com/mapIcons/marker_“+iconColor+”.png”,
//此标记宽20像素,高34像素。
新谷歌地图大小(20,34),
//此图像的原点为0,0。
新的google.maps.Point(0,0),
//这张图片的锚定点是6,20。
新google.maps.Point(9,34));
}
返回gicons[iconColor];
}
功能类别2颜色(类别){
var color=“红色”;
开关(类别){
“剧院”案例:
color=“蓝色”;
打破
案例“高尔夫”:
color=“绿色”;
打破
案例“信息”:
color=“黄色”;
打破
违约:
color=“红色”;
打破
}
返回颜色;
}
gicons[“剧院”]=getMarkerImage(类别2颜色(“剧院”);
gicons[“高尔夫”]=getMarkerImage(类别2颜色(“高尔夫”);
gicons[“信息”]=getMarkerImage(category2color(“信息”);
//创建标记和设置事件窗口的函数
函数createMarker(latlng、名称、html、类别){
var contentString=html;
var marker=new google.maps.marker({
位置:latlng,
图标:gicons[类别],
影子:iconShadow,
地图:地图,
标题:姓名,
zIndex:Math.round(latlng.lat()*-100000)