javascript - 在 Google Map API 上显示每个 Waypoint Pin 的标签

标签 javascript google-maps-api-3 label google-maps-markers map-directions

我正在尝试为沿途的每个航路点添加标签,但我不太确定应该如何处理它。在做了一些研究之后,我了解到您可以添加带有标签的自定义图钉,但那是我手动放下每个图钉的时候。我该怎么做才能获得指导?

最佳答案

如果您想访问来自 DirectionsRenderer 请求的标记,则需要破解,因为没有官方方法可以从 google map api 执行此操作。

有办法解决,这里是我做的例子:https://jsfiddle.net/TomKarachristos/cna78jbw/

google.maps.event.addListener(directionsDisplay, 'directions_changed', 
    function() {
        var self = this;
        markersArray = []; //empty the array
        setTimeout(function() { //wait until markers render
          for (var k in self) { //search everything in directionsDisplay
            if (typeof self[k].markers != 'undefined') { //  its that the markers?
              var markers = self[k].markers;
              for (var i = 0; i < markers.length; ++i) {
                markersArray.push(markers[i]);
                markersArray[i].setLabel({ //lets change the label!
                  color: "white",
                  fontSize: "16px",
                  text: i.toString()
                });
              }
            }
          }
          console.log(markersArray); // now markersArray have all the markers 
        }, 0);
      });

但是如果你想完全控制标记,这不是一个好的解决方案。如果你压制你有很多可能性的标记,你可以使用像markerLabel这样的库中的标记。或 RichMarker (使用 dom 元素作为标记!)

这是一个带有 markerLabel 的示例,您单击 map 中的任意位置,然后会出现一个带有标签的标记,该标签与中心标记的距离。 https://jsfiddle.net/TomKarachristos/x1zg503m/

[...]
 markerArray[1] = new MarkerWithLabel({
    position: location,
    map: map,
    animation: google.maps.Animation.DROP, //just for fun
    labelContent: "",
    labelClass: "marker-label"
  });
[...]
if (status === google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
      route = directionsDisplay.getDirections().routes[0];
      markerArray[1].set('labelContent', route.legs[0].distance.value / 1000)
[...]

更容易制作,更美观,更有趣! enter image description here

关于javascript - 在 Google Map API 上显示每个 Waypoint Pin 的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770599/

相关文章:

python - 在绘图上标记 python 数据点

javascript - 如何在 JavaScript 中将变量用作字符串?

jquery - 根据类别或组隐藏/显示 Google map 标记

php - 使用 php 将 Google Maps 多边形覆盖图保存到 oracle 中

java - 如何使java.awt.Label背景透明?

iphone - 如何为 iOS 应用程序设置 UILabel 的左上角对齐?

javascript - 如何将 Dart 转换为 JavaScript?

javascript - 如何在不刷新页面的情况下检测 Service Worker 更新?

javascript - 刷新页面后加粗的事件菜单

javascript - 如何在 Google map 信息窗口中添加地点自动完成框?