如何检测一个人是否进入了谷歌地图上的某个区域

How to detect whether a person has entered a certain area in google maps

本文关键字:谷歌地图 区域 何检测 检测 是否 一个人      更新时间:2023-09-26

我目前正在开发一个使用html5和javascript的谷歌地图应用程序。该应用程序的要求之一是允许用户在地图上创建圆圈。在创建这些之后(我一直在使用google.maps.Circle)

这是我的圆圈代码…

var cityCircle = new google.maps.Circle({
    strokeColor: '#FF0000',
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: '#FF0000',
    fillOpacity: 0.35,
    map: map,
    center: pos,
    radius: 200
  });

基本东西。用户按下移动设备屏幕即可定义pos

我的问题是,我如何通过走进圆圈来检测用户何时进入圆圈?我还需要检测它们是否离开了圆圈。

贾斯汀。

获取圆心与用户站立位置之间的距离。如果该距离小于半径,则用户在半径…

  1. Google maps还提供了一个功能:google.maps.geometry.spherical.computeDistanceBetween

  2. 为用户传递一个对象,为圆圈传递一个对象。

  3. 使用cityCircle.center.lat()cityCircle.center.lng()从圆心获取坐标

现在我们使用这个逻辑

var userposition = navigator.geolocation.getCurrentPosition(function(position){
return position;
})
var user = {lat : userposition.latitude , lng : userposition.longitude}
var centerOfCircle = {lat : cityCircle.center.lat() , lng : cityCircle.center.lng() }
var distanceBetween = google.maps.geometry.spherical.computeDistanceBetween(user , centerOfCircle);
if(distanceBetween <= cityCircle.radius){
    alert('You are within radius of your target')
}

提示:可能需要Math.floor()来删除小数…

Google geometry lib: https://developers.google.com/maps/documentation/javascript/geometry