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

时间:2014-08-14 08:45:11

标签: javascript google-maps google-maps-api-3

我正在创建一个用户可以搜索位置的Google地图应用程序。此位置必须指向预定义标记的方向。

给出以下代码:

预定义标记:

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

      var stationMarker = new google.maps.Marker({
        position:   station,
        map:        map,
        });

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

      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
        }));

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

我正在使用Google Maps API v3。

我创建了一个jsFiddle,你可以找到here

1 个答案:

答案 0 :(得分:4)

好的,你走了:

  1. 使用google.maps.SymbolPath.FORWARD_CLOSED_ARROW使其指向北方。
  2. 添加几何图形库以便能够计算标题。
  3. 在方向图标上使用旋转参数。
  4. 以下是从您的方向标记到电台的compute the heading

    var heading = google.maps.geometry.spherical.computeHeading(direction,station);
    

    然后用它来相应地旋转你的图标:

    directionMarker.setIcon({
        path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
        scale: 6,
        rotation: heading
    });
    

    在上面的代码中,您还删除了一对不必要的()

    JSFiddle demo