偶然的你
这是使用Gooogle Maps API本身的不错的解决方案。没有外部服务,没有额外的库。并启用自定义形状以及多种颜色和样式。该解决方案使用矢量标记,googlemaps api将其称为Symbols。除了少数几个有限的预定义符号外,您还可以通过指定SVG路径字符串(Spec)来制作任何颜色的任何形状。要使用它,而不是将“ icon”标记选项设置为图像URL,而是将其设置为包含符号选项的字典。例如,我设法制作了一个与标准标记非常相似的符号:function pinSymbol(color) { return { path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', fillColor: color, fillOpacity: 1, strokeColor: '#000', strokeWeight: 2, scale: 1, };}var marker = new google.maps.Marker({ map: map, position: new google.maps.LatLng(latitude, longitude), icon: pinSymbol("#FFF"),});矢量标记如果您小心地将形状关键点保持在0,0,则不必定义标记图标居中参数。另一个路径示例,没有点的相同标记: path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z',无点矢量标记在这里,您有一个非常简单且难看的彩色标志: path: 'M 0,0 -1,-2 V -43 H 1 V -2 z M 1,-40 H 30 V -20 H 1 z',矢量标志您还可以使用可视工具(如Inkscape)(GNU-GPL,多平台)创建路径。一些有用的提示:Google API只接受一条路径,因此您必须将任何其他对象(正方形,cercle ...)转换为一条路径,并将它们作为单个路径加入。路径菜单中的两个命令。要将路径移至(0,0),请进入“路径编辑”模式(F2),选择所有控制节点并拖动它们。使用F1移动对象,不会更改路径节点坐标。要确保参考点位于(0,0),可以单独选择它,并在顶部工具栏上手动编辑坐标。保存为XML的SVG文件后,使用编辑器将其打开,查找svg:path元素并复制'd'属性的内容。