Check if marker is inside circle radius

匿名 (未验证) 提交于 2019-12-03 02:45:02

问题:

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(..)



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