Check if marker is inside circle radius

牧云@^-^@ 提交于 2019-12-20 09:05:45

问题


I'm trying to know if a given marker is inside a circle radius.

In javascript, i can do something like:

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

But in android, using maps-v2, i'm stucked.


回答1:


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?




回答2:


The same APIs you'd use in Javascript are available for Android here: https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java




回答3:


I think its possible to find the Centre of the circle, you are defining the circle in your code with repect to a given geopoint. You can save it and use later. Then try Location.distanceBetween(..)



来源:https://stackoverflow.com/questions/16082622/check-if-marker-is-inside-circle-radius

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!