【问题标题】:Get the latlong of 8 points in javascript around a marker in Google map在 Google 地图中的标记周围获取 8 个点的 latlong
【发布时间】:2019-12-05 13:23:48
【问题描述】:

我想在谷歌地图上放置的标记周围 x 米处获得 8 个位置的经度。请参考图片了解一下。

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

【问题讨论】:

  • 你知道角度(航向)吗?还是只有距离?
  • @stack-learner 它只是距离。并且所有六个点都在一个圆的边缘。
  • 圆有无数个点,它们会被放在一个圆上吗?您的数据不完整。
  • 圆圈没有边

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


【解决方案1】:

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

代码 sn-p:

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);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map_canvas"></div>

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 2018-02-11
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多