Leaflet マッピング 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() は、ポイントをファッジファクターと比較することになっています。ポリラインをクリックすると、次のような緯度/経度のイベントが表示されます。
'38.83966582989183','-77.0083075761795'
ポリラインの緯度/経度は、次のように精度が低くなります。
'38.841289','-77.008842'
そのため、一致を探してループしてequals()
も true は返されません。明らかに、クリック イベントが発生しているため、リーフレットはポリラインをクリックしたことを認識していますが、クリックされた緯度経度の実際のオフセットを取得するきれいな方法はないようです。
マウスクリックから返される精度を下げることを検討していますが、それは正しい解決策のように「感じられません」。
ヘルプ/ポインタは大歓迎です。
編集:
に設定L.LatLng.MAX_MARGIN
する1.0E-3
とうまくいくようですが、マージンが非常に粗いようです。