在Google地图中的标记周围使用javascript获取8点积分

时间:2016-05-10 03:56:51

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

我希望在谷歌地图上放置的标记周围的x米处获得8个位置的长度。请参考图片以获得一个想法。

Please see the image to get an idea

基本上我想在放置的标记周围得到一个包含8个位置(N,NE,E,SE,S,SW,W,NW)的数组。这些点距离标记可以是x米。

1 个答案:

答案 0 :(得分:2)

一种选择是使用geometry library computeOffset method计算每45度距中心点所需距离的位置:

代码段



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 bounds = new google.maps.LatLngBounds();
  var centerPt = map.getCenter();
  var marker = new google.maps.Marker({
    position: centerPt,
    map: map
  })
  for (var angle = 0, i = 0; angle < 360; angle += 45, i++) {
    var marker = new google.maps.Marker({
      position: google.maps.geometry.spherical.computeOffset(centerPt, 100, angle),
      map: map,
      title: "marker #" + i + ", at " + angle + " degrees"
    })
    bounds.extend(marker.getPosition());
  }
  map.fitBounds(bounds);

}
google.maps.event.addDomListener(window, "load", initialize);
&#13;
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
&#13;
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
<div id="map_canvas"></div>
&#13;
&#13;
&#13;