javascript - 如何检查给定标记是否在区域内

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

大家好啊/ 我知道这比 gmap 更像是一个数学问题,但我想有人已经通过了这个 =)

在我的 map 中,我有圆圈(实际上我有几个,但这并不能改变问题),像这样:http://code.google.com/intl/pt-BR/apis/maps/articles/mvcfun/step6.html

我如何知道标记(带有纬度 X 和经度 Y)是否在此圆内?

抱歉英语不好,我是巴西人=p

最佳答案

在 Google Maps JavaScript API v3 中,您可以使用几何库。要启用它,您必须稍微更改脚本 URL:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>

该库包含用于计算球体几何数据的实用函数。您可以利用它以这种方式计算由它们的 latLngs 给出的两点的距离:

var distanceInMetres = google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);

现在您可以轻松检查点是否在圆内(假设 R 以米为单位):

if(distanceInMetres < R)
   alert("in the circle");

关于javascript - 如何检查给定标记是否在区域内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027266/

相关文章:

javascript - NgMap,如何访问 Controller 中的方向? map.directionsRenderers[0].directions 在 Controller 中未定义。

javascript - 鼠标右键 - 激活输入文件中的粘贴选项

javascript - 如何建立像google+一样的拖放圈子系统

javascript - 获取网格的坐标

java - 在给定源坐标和目标坐标的情况下推导参数抛物线方程

python - 正切 x 的反正切未精确计算

ios - 绘制遵循道路几何形状的多段线

html - 三层透明

javascript - jQuery(几乎)相当于 PHP 的 strip_tags()

javascript - jQuery 目标通用类项目,但具有触发单击的唯一 href