2017-03-21 9 views
0

リーフレットマップにhtmlマークアップを埋め込んだimageOverlayのようなレイヤーを設定することはできますか?たぶんプラグインで? ポップアップで設定しようとしましたが、X座標とY座標をより詳細に制御する必要があります。それは私の場合の解決策ではありません。リーフレット:L.ImageOverlayのようなHTMLブロックを設定する

+0

ズームで拡大/縮小するにはHTMLレイヤーが必要ですか?小さな絵がおそらく助けになるでしょう。 – ghybs

+0

はい、ズームが可能です。 – User

+0

[ここにその例があります](http://jsfiddle.net/user9090900/3tf7o40u/) – User

答えて

1

あなたはリーフレットを拡張やプラグインを作成し、source code for L.ImageOverlayを見ている方にLeaflet tutorialsを読めば、答えは非常に簡単になり:

L.HtmlBlockOverlay = L.ImageOverlay.extend({ 
    initialize: function(bounds, options) { 
    return L.ImageOverlay.prototype.initialize.call(this, null, bounds, options); 
    }, 

    _initImage: function() { 
    var block = this._image = L.DomUtil.create('div', 'leaflet-image-layer' + 
               (this._zoomAnimated ? ' leaflet-zoom-animated' : '')); 

    if (this.options.className) { L.DomUtil.addClass(block, this.options.className); } 
    block.innerHTML = this.options.html; 
    } 
}); 


var blockOverlay = new L.HtmlBlockOverlay(bounds, { 
    html: 'Hello world!', 
    className: 'hello-world-box' 
}).addTo(map); 

working exampleを参照してください。

+0

うわー、それがどれほど簡単かと非常に感心しています。ありがとうございました! – User

+0

1つの質問:jqueryを作成した要素にバインドするにはどうすればよいですか? 'console.log( 'hello'); }); ' 'は動作しません。 – User

+0

イベントをイベントに添付しようとする前に、その内容がDOM内にあることを確認してください。 – IvanSanchez

関連する問題