Tamam, ModifyFeature
denetimini atlayın ve seçilen özelliklerin kaydını tutmak için SelectFeature
denetimine bağlanın ve ardından seçilen noktaları aynı anda işlemek için DragControl
kullanın. Kontrol örnekleme ait
Örnek: Olayın
var drag = new OpenLayers.Control.DragFeature(vectors, {
onStart: startDrag,
onDrag: doDrag,
onComplete: endDrag
});
var select = new OpenLayers.Control.SelectFeature(vectors, {
box: true,
multiple: true,
onSelect: addSelected,
onUnselect: clearSelected
});
Örnek işleme fonksiyonları:
/* Keep track of the selected features */
function addSelected(feature) {
selectedFeatures.push(feature);
}
/* Clear the list of selected features */
function clearSelected(feature) {
selectedFeatures = [];
}
/* Feature starting to move */
function startDrag(feature, pixel) {
lastPixel = pixel;
}
/* Feature moving */
function doDrag(feature, pixel) {
for (f in selectedFeatures) {
if (feature != selectedFeatures[f]) {
var res = map.getResolution();
selectedFeatures[f].geometry.move(res * (pixel.x - lastPixel.x), res * (lastPixel.y - pixel.y));
vectors.drawFeature(selectedFeatures[f]);
}
}
lastPixel = pixel;
}
/* Featrue stopped moving */
function endDrag(feature, pixel) {
for (f in selectedFeatures) {
f.state = OpenLayers.State.UPDATE;
}
}
Teşekkür - o da benim için çalışıyor, özellikleri sürüklenen edildikten sonra, artık seçim kutusundan "seçilebilir" olduğunu beklemek ve yine taşınamaz. Bu problemin var mıydı? –
Net örnek için, sürükleme ve olaylar hakkında basit bir örnek bulmak neredeyse bir gün sürdü. Bu harika! Ben çoklu özellikler için kullanmıyorum ama 1 için. – Marco
Bulundu, kullanıldı ve çalışıyor :). Yani bir büyük TEŞEKKÜR EDERİZ! – elrado