を取得:私はマップとエリア選択フィールドを持つ長方形の幅と高さのリーフレットjqueryの
// initialize map
var map = L.map('map').setView([38, 0], 2);
L.tileLayer('http://{s}.tile.cloudmade.com/70146506bc514228adc1756788c730d3/997/256/{z}/{x}/{y}.png', {attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, Imagery © <a href="http://cloudmade.com">CloudMade</a>', maxZoom: 18}).addTo(map);
var areaSelect = L.areaSelect({
width:100,
height:150,
keepAspectRatio:true
});
areaSelect.addTo(map);
areaSelect.setDimensions({width: 50, height: 50});
は、長方形の幅と高さを取得したいです。
var rectangleWidth = rectangle.getBounds().getEast() - rectangle.getBounds().getWest();
var rectangleHeight = rectangle.getBounds().getNorth() - rectangle.getBounds().getSouth();
areaSelect.setDimensions({width: rectangleWidth, height: rectangleHeight});
が、これは別の幅と高さを与える:
var neLatCoord = $('#ne-lat-coordinate').val();
var neLonCoord = $('#ne-lon-coordinate').val();
var swLatCoord = $('#sw-lat-coordinate').val();
var swLonCoord = $('#sw-lon-coordinate').val();
var rectangle = L.rectangle([ [neLatCoord, neLonCoord], [swLatCoord, swLonCoord]]).addTo(map);
は、だから今、私はこのように選択した領域の大きさを設定することができるように長方形の幅と高さを取得したいですか?どうしてか分かりません?
誰かが私を助けてくれますか?私はこれに固執していますか?
私が代わりに面積の矩形を使用している場合は、選択します:私はクリックでこのリセットを行うと、イベントrectangle.on('edit', function() { ...
が動作していない
var rectangle = L.rectangle([ [21.616579, 29.487305], [7.798079, 20.522461]]);
map.addLayer(rectangle);
rectangle.editing.enable();
// Every time we move the selected rectangle, refresh data about the selected area.
rectangle.on('edit', function() {
selectedBounds = this.getBounds();
console.log("Area:", selectedBounds);
//some other code
});
$(".select").click(function() {
rectangle.editing.disable();
map.removeLayer(rectangle);
rectangle = new L.rectangle([ [17.853290, 34.980469], [10.876465, 14.853516]]);
map.addLayer(rectangle);
rectangle.editing.enable();
});
は、ここに私のJS FIDDLE
EDITですか?どうしてか分かりません?
あなたの答えは大変ありがたいですが、なぜ選択領域の位置が四角形と同じではないのですか? –
これは、地図キャンバスの途中でareaSelectが常にインスタンス化されるためです。しかし、私は私の答えを編集し、新しいフィドルを作成し、今、領域ractangleは中央にあります。選択。 答えが役に立つ場合は、アップ投票して受け入れてください。 – Manuel
私はupvoteをやった。私の質問を編集しました。どうして私がその問題を抱えているのを助けてくれますか? –