2017-12-06 22 views
2

私はレイヤーの入ったカスタムSVGコードを持っています。Leaflet.jsにSVGコードを含めるには?

これまでのところ、Webページで作業していますが、jQuery関数の表示/非表示を操作でき、今はリーフレットと統合したいと考えています。

私はLeafletjs.comのチュートリアルとドキュメントを読んでいます。 私が見たすべての例OpenStreetsマップ用の画像やいくつかのリンクを統合すると関連しているなど

私は例として、次のように試してみたまず第一に:

<script> 

    // initialize the map 
    var map = L.map('map-test').setView([42.35, -71.08], 13); 

    // load a tile layer 
    L.tileLayer('http://tiles.mapc.org/basemap/{z}/{x}/{y}.png', 
    { 
     attribution: 'Tiles by <a href="http://mapc.org">MAPC</a>, Data by <a href="http://mass.gov/mgis">MassGIS</a>', 
     maxZoom: 17, 
     minZoom: 9 
    }).addTo(map); 

</script> 

これは正常に動作し、それはです地図を表示したり、ズームインしたり、ズームアウトしたり、他のオブジェクトを見ることができますが、ソースコードから、これはいくつかのロジックを持つ別々の画像のように表示されています。

私のカスタムSVGコードを内部のすべてのレイヤーに統合したいので、リーフレットでドラッグしたりズームしたりできます。

このウェブサイトは、私がやりたい正確に何があります https://winter.intermaps.com/oetztal?lang=en

ソースコードから、あなたは彼らが<div class="leaflet-pane leaflet-overlay-pane">内の完全なSVGコードを統合している見ることができます。

EDIT:

私は自分のサーバーに私のmap.htmlファイルをアップロードした、全体SVGコードは、そのファイル内にあります。リーフレットにどのように含めることができますか?

答えて

0

svgをimageOverlayとしてロードすると、<img>となり、静的になります。 これをチェックするhttps://github.com/Leaflet/Leaflet/issues/5756<object>に置き換えてsvgの内容を入れて、これを大きな男の子svgとして扱うことができるということを理解した素晴らしい人です。少なくとも、svgのノード属性のイベントハンドラは機能します。

関連する問題