OpenLayers kullanarak ReactBounds'dan dikdörtgen çizme
Aug 27 2020
Çözümü bulduğum reactbond'larla dikdörtgeni çizebileceğim bir çözüm arıyorum, ancak bu, OL'nin eski bir versiyonu. Tahvillere tepki verdim ["-1535320.98225989", "6134670.12008471", "379695.245336351", "9059640.13281387"]ve buna benzer bir şey aradım:
http://dev.openlayers.org/examples/boxes.html
İşte aşağıdakiler için kod:
var box_extents = [
[-10, 50, 5, 60],
[-75, 41, -71, 44],
[-122.6, 37.6, -122.3, 37.9],
[10, 10, 20, 20]
];
var map;
function init(){
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
var boxes = new OpenLayers.Layer.Boxes( "Boxes" );
for (var i = 0; i < box_extents.length; i++) {
ext = box_extents[i];
bounds = OpenLayers.Bounds.fromArray(ext);
box = new OpenLayers.Marker.Box(bounds);
box.events.register("click", box, function (e) {
this.setBorder("yellow");
});
boxes.addMarker(box);
}
map.addLayers([ol_wms, boxes]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
DÜZENLEME: Bazı aramalardan sonra dikdörtgeni çizebileceğimi buldum ol.interaction.Draw.createBox(). Ama reactBonds ile hala şans yok İşte tam kod:
rectangle = new ol.interaction.Draw({
source: new ol.source.Vector({wrapX: false}),
type: "box",
geometryFunction: ol.interaction.Draw.createBox(),
});
map.addInteraction(rectangle);
Herhangi bir öneri?
Yanıtlar
1 Mike Aug 27 2020 at 15:33
OpenLayers 3 ve üstündeki eşdeğer kod
var boxes = new ol.layer.Vector({
source: new ol.source.Vector(),
style: new ol.style.Style({
stroke: new ol.style.Stroke({
width: 2,
color: 'red'
})
});
for (var i = 0; i < box_extents.length; i++) {
ext = box_extents[i];
box = new ol.Feature({
geometry: ol.geom.Polygon.fromExtent(ext)
});
boxes.getSource().addFeature(box);
}
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı