简体   繁体   English

Google Maps API,添加带有标签的自定义 SVG 标记

[英]Google Maps API, add custom SVG marker with label

I'm trying to add a label to my SVG marker, and I'm having a problem with the position of the text with respect to the marker or vice-versa.我正在尝试向我的 SVG 标记添加标签,但文本相对于标记的位置出现问题,反之亦然。

This is my icon:这是我的图标:

  var clickIcon = {
      path: 'M8,0C3.400,0,0,3.582,0,8s8,24,8,24s8-19.582,8-24S12.418,0,8,0z M8,12c-2.209,0-4-1.791-4-4   s1.791-4,4-4s4,1.791,4,4S10.209,12,8,12z',
      fillColor: myRandomColor,
      fillOpacity: 1,
      strokeColor: myRandomColor,
      strokeWeight: 1
  };

And this where I add the marker:这是我添加标记的地方:

  clickMarker = new google.maps.Marker({
  position: location,
  map: map,
  animation: google.maps.Animation.DROP,
  draggable: isDraggable,
  icon: clickIcon,
  label: {
      text: labels[labelIndex++ % labels.length],
      color: 'black',
      fontSize: '15px',
      fontWeight: 'bold'
  }
  });

Please notice that I only added the relevant code, if more is needed let me know.请注意,我只添加了相关代码,如果需要更多让我知道。 As you can see, I can't align the label and the marker.如您所见,我无法对齐标签和标记。 Ideally, I would like to have it inside the pin circle, but below the pin would work as well.理想情况下,我希望将它放在图钉圈内,但在图钉下方也可以使用。 Thanks in advance.提前致谢。

在此处输入图片说明

Use the labelOrigin property of the Symbol使用SymbollabelOrigin属性

labelOrigin标签原点

Type: Point类型:点

The origin of the label relative to the origin of the path, if label is supplied by the marker.如果标签由标记提供,则标签的原点相对于路径的原点。 By default, the origin is located at (0, 0).默认情况下,原点位于 (0, 0)。 The origin is expressed in the same coordinate system as the symbol's path.原点在与符号路径相同的坐标系中表示。 This property is unused for symbols on polylines.此属性不用于折线上的符号。

code snippet:代码片段:

 function initialize() { var map = new google.maps.Map( document.getElementById("map_canvas"), { center: new google.maps.LatLng(37.4419, -122.1419), zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP }); var clickIcon = { path: 'M8,0C3.400,0,0,3.582,0,8s8,24,8,24s8-19.582,8-24S12.418,0,8,0z M8,12c-2.209,0-4-1.791-4-4 s1.791-4,4-4s4,1.791,4,4S10.209,12,8,12z', fillColor: "#ff0000", fillOpacity: 1, strokeColor: "#ff0000", strokeWeight: 1, labelOrigin: new google.maps.Point(8, 10), anchor: new google.maps.Point(9, 35), }; var clickMarker = new google.maps.Marker({ position: map.getCenter(), map: map, // animation: google.maps.Animation.DROP, draggable: true, icon: clickIcon, label: { text: "A", color: 'black', fontSize: '15px', fontWeight: 'bold' } }); } google.maps.event.addDomListener(window, "load", initialize);
 html, body, #map_canvas { height: 100%; width: 100%; margin: 0px; padding: 0px }
 <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script> <div id="map_canvas"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM