我只想在指定区域显示标记!例如,我想绘制半径为假设3或任意和中心(任何LatLng)的圆。然后,我需要仅在该圆圈的区域中显示标记。 我怎样才能做到这一点?有可能吗?
更新:解决我的问题
function isMarkerInArea(circle, marker)
{
return (circle.getBounds().contains(marker.getPosition()));
};
描述:
最后,根据返回的布尔值设置标记的可见性!
答案 0 :(得分:1)
最好的方法(假设你有一系列标记)就是使用circle contains()
函数。
一个例子:
function isMarkerInArea(circle, marker){
return (circle.getBounds().contains(marker.getPosition());
};
此函数将返回boolean
。如果确实如此,则设置显示标记,否则隐藏它。
答案 1 :(得分:0)
很难确切地知道你在做什么,但我会假设你有一系列标记,而你只想显示你定义的某个圆圈内的标记。您可以使用差异的平方来计算相当不错的距离(如果它很小)。假设您有一个已知的圆Cx和Cy的中心点和一个数组P.比较数组项i的这个公式:(P [i] x-Cx)(P [i] x-Cx)+(P [i] y-Cy)(P [i] y-Cy)到您关心的距离的平方(比如3000米或其他)。不要用平方根来打扰,因为这是处理密集型的。只需使用正方形。然后只绘制低于你限制的标记。
我能正确理解您的问题吗?也许你正在做的事与我想象的不同。