我想知道给定的标记是否在圆半径内。
在 javascript 中,我可以执行以下操作:
google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);
但是在android中,使用maps-v2,我被卡住了。
我想知道给定的标记是否在圆半径内。
在 javascript 中,我可以执行以下操作:
google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);
但是在android中,使用maps-v2,我被卡住了。
After a lot of research, i found a very simple solution:
float[] distance = new float[2];
Location.distanceBetween( marker.getPosition().latitude, marker.getPosition().longitude,
circle.getCenter().latitude, circle.getCenter().longitude, distance);
if( distance[0] > circle.getRadius() ){
Toast.makeText(getBaseContext(), "Outside", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "Inside", Toast.LENGTH_LONG).show();
}
I'm testing this and it's working. Can someone test too and give the feedback here?
您在 Javascript 中使用的相同 API 可在此处用于 Android:https ://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java
我认为可以找到圆的中心,您正在代码中定义与给定地理点相关的圆。您可以保存并稍后使用。然后尝试Location.distanceBetween(..)