是否可以使用多个图像作为Google Maps v3 MarkerImage?

yin*_*ash 4 javascript image google-maps-api-3 google-maps-markers

我想要一个由三个图像组成的地图标记.两个图像在所有标记上都是相同的,其中一个是可变的.似乎没有办法在MarkerImage类上指定多个图像.我能想到的唯一方法是将所有图像绘制到画布上,然后将其输出为MarkerImage类的png dataURL.这似乎有点矫枉过正了.

Bry*_*ver 8

我不认为有三个单独的图像是可能的.

如果两个图像总是相同,我猜你可以将它们合并为一个并将其存储在icon属性中,然后在shadow属性中使用变量图像,反之亦然(图标将始终位于阴影的顶部).您只需要操纵MarkerImage对象的大小和位置.

工作实例:http: //jsfiddle.net/mG4uz/1/

var image1 = new google.maps.MarkerImage(
   'http://google-maps-icons.googlecode.com/files/sailboat-tourism.png',
    new google.maps.Size(45, 90), //adjust size of image placeholder  
    new google.maps.Point(0, 0), //origin
     new google.maps.Point(0, 25) //anchor point
  );

var image2 = new google.maps.MarkerImage(
   'http://google-maps-icons.googlecode.com/files/sailboat-tourism.png',
   new google.maps.Size(45, 45),
   new google.maps.Point(0, 0), 
   new google.maps.Point(0, 0) 
  );

var marker = new google.maps.Marker({
   position: centerPosition,
   map: map,
   icon: image1,
   shadow:image2
  });
Run Code Online (Sandbox Code Playgroud)

  • 当标记重叠时,使用变量图像作为阴影会出现问题,因为所有图标始终显示在所有阴影上方.我当前的方法将两个静态图像组合成一个图像,幸好没有疯狂的不透明度重叠问题,然后将两个标记放在相同的Lat/Long上,并增加z索引.默认重叠行为无效,并且在将3个标记放在同一位置时不起作用. (3认同)