我正在使用传单映射 API。我想确定折线中的哪个点被点击了。折线是我使用 MapQuest Open 的方向服务渲染的。
相关代码为:
for ( var i = 0; i < latlngs.length; i++ )
{
// the equals method uses a small fudge factor to decide if the two
// points are the same.
if ( latlng.equals( latlngs[ i ] ))
{
return i;
}
}
.equals() 应该将点与软糖因子进行比较。当我单击折线时,我会收到一个带有 lat/lngs 的事件,例如:
'38.83966582989183','-77.0083075761795'
我在折线中的纬度/经度精度较低,如下所示:
'38.841289','-77.008842'
因此,当我遍历寻找匹配项时,equals()
永远不会返回 true。显然,点击事件正在触发,所以传单知道我点击了折线,但似乎没有一种干净的方法来获取点击的 latlng 的实际偏移量。
我正在考虑只是降低鼠标单击返回的精度,但这并不“感觉”是正确的解决方案。
任何帮助/指针将不胜感激。
编辑:
设置L.LatLng.MAX_MARGIN
为1.0E-3
似乎有效,但这似乎是一个非常粗略的边距。