让箭头标记指向另一个标记的方向

Naz*_*eem 4 javascript google-maps google-maps-api-3

我正在制作一个谷歌地图应用程序,用户可以在其中搜索位置。该位置必须指向预定义标记的方向。

鉴于以下代码段:

预定义的标记:

      var station = new google.maps.LatLng(52.375401, 5.218824);

      var stationMarker = new google.maps.Marker({
        position:   station,
        map:        map,
        });
Run Code Online (Sandbox Code Playgroud)

将放置在用户搜索位置的标记:

      var direction = new google.maps.LatLng(52.376423, 4.887234);

      var directionMarker = new google.maps.Marker({
        position:   direction,
        map:        map,
        draggable:  false,
        title:      "test"
        });

      directionMarker.setIcon(({
        path: google.maps.SymbolPath.BACKWARD_CLOSED_ARROW,
        scale: 6
        }));
Run Code Online (Sandbox Code Playgroud)

如何确保方向标记(即来自用户搜索结果的标记)始终指向预定义的标记?

我正在使用 Google Maps API v3。

我创建了一个 jsFiddle,你可以在这里找到

MrU*_*own 5

好的,你开始:

  1. 使用google.maps.SymbolPath.FORWARD_CLOSED_ARROW使其指向北方。
  2. 添加几何库以能够计算航向。
  3. 使用方向图标上的旋转参数。

以下是计算从方向标记到车站的航向的方法:

var heading = google.maps.geometry.spherical.computeHeading(direction,station);
Run Code Online (Sandbox Code Playgroud)

然后使用它相应地旋转您的图标:

directionMarker.setIcon({
    path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
    scale: 6,
    rotation: heading
});
Run Code Online (Sandbox Code Playgroud)

()在我删除的上述代码中,您还有一对不必要的。

JSFiddle demo

  • 另一种基于点坐标计算航向的方法(没有折线):http://jsfiddle.net/uepc2f8n/27/ (3认同)
  • @Nazeem:当箭头不能点击时,您可以使用带有 IconSequence 的隐藏折线,然后标记将指向所需的方向。http://jsfiddle.net/9f8dy5p4/ (2认同)