Google maps api 3 检查视口中是否有点

Google maps api 3 检查视口中是否有点,google-maps-api-3,Google Maps Api 3,我这样检查: 在这里输入代码 var点=新g.LatLng(parseFloat(lat),parseFloat(lng)); var bounds=map.getBounds(); if(边界包含(点)) { 该点位于视口中 } 但当我改变缩放级别时,在视口坐标之前,“不可见”点不会被检测为“可见”,我的意思是在视口中。 点不是标记 如果视口中的地球周长大于地球的整个周长,则可能会出错 左侧边缘可能比右侧边缘更东map.getBounds()在这种情况下获取错误的结果 左侧边缘可能位于右侧边缘

我这样检查: 在这里输入代码 var点=新g.LatLng(parseFloat(lat),parseFloat(lng)); var bounds=map.getBounds(); if(边界包含(点)) { 该点位于视口中 }

但当我改变缩放级别时,在视口坐标之前,“不可见”点不会被检测为“可见”,我的意思是在视口中。
点不是标记

如果视口中的地球周长大于地球的整个周长,则可能会出错

左侧边缘可能比右侧边缘更东
map.getBounds()
在这种情况下获取错误的结果

左侧边缘可能位于右侧边缘的西部,但由两者的经度定义的区域可能不包括关注点

这是我为另一个答案开发的一个例子,证明了这一点。左侧边缘位于83°E,右侧边缘位于162°E。标记位于54°W和8°W,两者都不在
地图范围内。getBounds()
-它们不在83°E和162°E之间-即使它们明显在地图上


我不知道API中有任何方法可以满足这一要求。

如果视口中的地球周长超过整个周长,则可能会出错

左侧边缘可能比右侧边缘更东
map.getBounds()
在这种情况下获取错误的结果

左侧边缘可能位于右侧边缘的西部,但由两者的经度定义的区域可能不包括关注点

这是我为另一个答案开发的一个例子,证明了这一点。左侧边缘位于83°E,右侧边缘位于162°E。标记位于54°W和8°W,两者都不在
地图范围内。getBounds()
-它们不在83°E和162°E之间-即使它们明显在地图上


我不知道API中有任何方法可以满足这一要求。

我编写了一个可能适用于您的场景的黑客程序。就我所测试的而言,当世界上没有太多的重复时,它就起作用了。我知道如果世界被显示两次或更多次,这个黑客是不可靠的。因此,如果可以设置地图的最小缩放,就可以防止出现这种情况

其想法是将地图分为左右两半,并检查标记是否在两半中

这是黑客,小心使用


我写了一个可能适用于您的场景的黑客程序。就我所测试的而言,当世界上没有太多的重复时,它就起作用了。我知道如果世界被显示两次或更多次,这个黑客是不可靠的。因此,如果可以设置地图的最小缩放,就可以防止出现这种情况

其想法是将地图分为左右两半,并检查标记是否在两半中

这是黑客,小心使用


如果在地图上设置了点(即一个标记),但在其他情况下也可以?对不起,我不明白您所说的“其他情况”是什么意思。你的意思是不止一个标记吗?不,只针对地图上未设置的点。但是我检查了你的代码,没问题。很好的例子。谢谢。如果在地图上设置了点(即一个标记),那没关系,但是在其他情况下?对不起,我不明白你所说的“其他情况”是什么意思。你的意思是不止一个标记吗?不,只针对地图上未设置的点。但是我检查了你的代码,没问题。很好的例子。非常感谢。