【问题标题】:How do I determine Radius in Google Maps?如何在 Google 地图中确定半径?
【发布时间】:2023-03-03 00:01:01
【问题描述】:

var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 20,
    center:this.cityHallLocation ,
    disableDefaultUI : true,
    styles:[{"featureType":"landscape","stylers":[{"hue":"#FFBB00"},{"saturation":43.400000000000006},{"lightness":37.599999999999994},{"gamma":1}]},{"featureType":"road.highway","stylers":[{"hue":"#FFC200"},{"saturation":-61.8},{"lightness":45.599999999999994},{"gamma":1}]},{"featureType":"road.arterial","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":51.19999999999999},{"gamma":1}]},{"featureType":"road.local","stylers":[{"hue":"#FF0300"},{"saturation":-100},{"lightness":52},{"gamma":1}]},{"featureType":"water","stylers":[{"hue":"#0078FF"},{"saturation":-13.200000000000003},{"lightness":2.4000000000000057},{"gamma":1}]},{"featureType":"poi","stylers":[{"hue":"#00FF6A"},{"saturation":-1.0989010989011234},{"lightness":11.200000000000017},{"gamma":1}]}],
});

var marker = new google.maps.Marker({
    position: this.cityHallLocation,
    map: map,
});

如何确定我是否在谷歌地图的正确半径上。例如,我想要特定位置的 20 的特定半径,并且我想确定我是否在 20m 上,然后在该位置显示标记。对不起,我是谷歌地图的新手。

【问题讨论】:

  • 这不是 google-maps 也不是 Vue.js 问题。如果您想在启动谷歌地图之前从已知的中心点执行此操作,那么您应该在后端计算您的半径。这可以通过使用 Haversine 公式来完成。
  • @Stephan-v,这不是 vuejs 的问题,但我正在使用 vuejs。所以我把它包括在内。我想要的是在地图中绘制一个特定的半径。
  • 然后在您启动 Google 地图之前在后端计算您的半径并仅应用这些标记。

标签: javascript google-maps


【解决方案1】:

您需要使用库 geolib 或替代库 https://www.npmjs.com/package/geolib

geolib.isPointInCircle(object latlng, object center, integer radius)

例子

// checks if 51.525, 7.4575 is within a radius of 5km from 51.5175, 7.4678
geolib.isPointInCircle(
    {latitude: 51.525, longitude: 7.4575},
    {latitude: 51.5175, longitude: 7.4678},
    5000
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多