use*_*097 3 google-maps distance area marker
我正在使用谷歌地图,并希望能够使用用户当前位置检测用户是否在标记的半径(放置在地图上).我有用户当前位置坐标(纬度和经度)和标记的坐标,但不知道如何计算用户是否在该区域.下面的图片可能最能描述我想要做的事情.

我有这样的算法:
map.OnInfoWindowClickListener(new OnInfoWindowClickListener()){
public void isUserInArea(Marker marker){
float[] distance = new float[2];
//users current location
Location.distanceBetween(currentLocation.getLatitude(),currentLocatiocation.getLongitude(),
marker.getPosition().latitude, marker.getPosition().longitude, distance);
}
Run Code Online (Sandbox Code Playgroud)
如果当前位置在标记区域内,则无法找到,因为我无法抓住标记圈.然而,这是我最接近它的.很感激帮助.
为了提供帮助,我在这样的地图上添加了一个圆圈
// adding circle to map
circleOptions = new CircleOptions();
circleOptions.center(new LatLng(locationlist.get(i)
.getLatitude(), locationlist.get(i).getLongitude()));
circleOptions.radius(20);
circleOptions.strokeColor(Color.BLUE);
circleOptions.fillColor(Color.BLUE);
map.addCircle(circleOptions);
//check that all tasks are in circle radius
Marker locationMarker = map.addMarker(markerOp);
locationMarker.showInfoWindow();
Run Code Online (Sandbox Code Playgroud)
Nat*_*arr 11
我用这个:
Location.distanceBetween(mMarker.getPosition().latitude,
mMarker.getPosition().longitude, mCircle.getCenter().latitude,
mCircle.getCenter().longitude, distance);
if (distance[0] > mCircle.getRadius()) {
//Do what you need
}else if (distance[0] < mCircle.getRadius()) {
//Do what you need
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8680 次 |
| 最近记录: |