2017-05-18 6 views
1

レイヤー(pbfLayerという名前)を使用してベクタータイルを表示しています。クリックイベントをpbfLayer.fileEvent('click', {latlng: <some coordinate>})でトリガーしたいとします。しかし、このようにイベント引数eがプロパティーlatlng,target、およびtypeしか持たないのであれば、マウスクリックで手動でトリガーするとlayerなどのプロパティーが増えます。イベントを手動で発生させるときにe.layerを埋めてください

例: https://jsfiddle.net/ziyuang/dfekwzhd/

クリックイベントがトリガされるたびに、コンソールは、イベント引数eを印刷します。

demo-points

eの他の特性を見つけて充填する方法があるが、私は、第1の座標と同じ用い、手動でクリックし、その後、プログラムによってイベントをトリガする場合は、コンソール出力のスクリーンショットは、以下のとおりでありますそのため、fireEventは完全にクリックを模倣することができますか?ありがとうございました。

アップデート1https://jsfiddle.net/ziyuang/dfekwzhd/4/):

私はIvanSanchezのprosthetic-hand @しようとしたが、まだ動作していません。追加されたコードは

var crs = L.CRS.EPSG3857; 
var rambaut_lake_latlng = L.latLng(40.99842740667731,-74.16458129882814); 
var rambaut_lake_point = crs.latLngToPoint(rambaut_lake_latlng , map.getZoom()); 
var southwest_point = crs.latLngToPoint(map.getBounds()._southWest, map.getZoom()); 
var x = rambaut_lake_point.x - southwest_point.x; 
var y = map.getSize().y - (southwest_point.y - rambaut_lake_point.y); 
console.log([x, y]) 

var hand = new Hand(); 
var finger = hand.growFinger('mouse'); 
finger.moveTo(x, y, 0).down().up(); 

手動でクリックすると、「Rambaut湖」のポップアップが作成されますが、私はページ上の任意のポップアップが表示されないです。

更新2:これは最終的にhappenを使用して行います。私の場合は は、私が

var canvas = document.elementFromPoint(left, top); 
$(canvas).happen({type: 'click', clientX: left, clientY: top}); 

に持っており、どちらも$('#map').happen({type: 'click', clientX: left, clientY: top})も使用してjQueryのtrigger私のために見つけcanvas作品に。

+0

クロス投稿:https://gis.stackexchange.com/questions/240938/fill-e-layer-when-firing-events-manually – xmojmr

答えて

1

「クリックを完全に模倣する」には、create and dispatch a synthetic click eventをDOMに入れる必要があります。これは、happenprosthetic-handのようなライブラリです。

このように送出されるイベントは、イベントが実際のものと同じように、リーフレットのイベント処理ロジックをトリガーします。

+0

ありがとう、イワン、私はあなたのリーフレットを使用しています.VectorGridと素晴らしいです!もしそれがsvgだったら私はあなたの[Leaflet.CheapLayerAt](https://github.com/IvanSanchez/Leaflet.CheapLayerAt)を使っていた可能性があります。 – ziyuang

+0

時間がある場合は、[私の他の質問](https://gis.stackexchange.com/q/240969/97502)もチェックしてください。ありがとうございました。 – ziyuang

関連する問題