featureLayer'daki tüm özellikleri silmenin doğru yolu nedir


10

Bir tane var featureLayerve onu öldürmek ve başka bir tane oluşturmak istemiyorum. Geçerli featureLayer tüm özellikleri silmek istiyorum. applyEditsYöntemi kullanabileceğimi buldum, ancak kullanabilmek için silmek istediğim tüm özelliklere sahip olmam gerekiyor. Bunları ayrıca saklamak istemiyorum. ArcGIS Javascript API'sini kullanırken featureLayer'ımı boşaltmanın daha iyi bir yolunu biliyor musunuz?

Yanıtlar:


3

Kirk'ün önerdiği gibi, tüm özelliklerinizi döndürecek bir konum cümlesi ile featureLayer.selectFeatures () yöntemini kullanın. Tüm özelliklerinize sahip olduğunuzda, bunları silme işlemi olarak applicationEdits () öğesine iletin.


Bu, istemciye birçok özellik döndürmez mi? Bu büyük bir veri kümesi ise gerçekten yavaş olabilir.
Kirk Kuykendall

2
Tek sorun doğru nerede belirtebilirsiniz yan tümce - "1 = 1", "NESNE> 0", vb denedim. Ama her hata olduğunda "FeatureLayer :: selectFeatures - sorgu bir veya daha fazla desteklenmeyen parametre içeriyor ". Kod var query = yeni esri.tasks.Query (); query.where = "1 = 1"; featureLayer.selectFeatures (sorgu, ...);
Kirill Lykov

Belki, özellik katmanı herhangi bir özellik hizmetiyle bağlantılı değilse, nerede yan tümceciklerini desteklemez. Ne düşünüyorsun?
Kirill Lykov

"özellik katmanı herhangi bir özellik hizmetine bağlı değilse, nerede yan tümceleri desteklemez" - bu doğru, ancak öyleyse düzenlemeyi de desteklemez. API referansından: "Temel katman ... bir Özellik Hizmetinden geliyorsa, özellikleri düzenlenebilir", bu nedenle featureLayer bir özellik hizmetine bağlı demektir
Stephen Lead

"düzenlemeyi de desteklemez" - Hizmete bağlı olmasa bile düzenlemeyi destekliyorum. Hovewer, bazı geçici çözümler yapmak zorunda kaldım.
Kirill Lykov

4

"1 = 1" ifadesi veya benzer bir şeyle REST silme özellikleri çağrısı yapmayı deneyin .


1
merhaba REST silme özellikleri çağrısında herhangi bir sözdizimi var mı? bunu yapmaya çalışırken bana bir örnek verebilir misiniz
jonleech

1

İstemci tarafında özellik katmanı oluşturduysanız (sunucu tarafı URL'si yoksa), burada yan tümcesi içeren bir sorgu kullanamazsınız. Haritanın kapsamını arayarak ve sonra bulduğum tüm öğeleri silerek bu sorunu çözebildim. Örneğin:

function removeAllLayerFeatures(map, layer) {
    require(['esri/tasks/query', 'esri/layers/FeatureLayer'], function (Query, FeatureLayer) {
        var query = new Query();
        query.geometry = map.extent;
        layer.selectFeatures(query, FeatureLayer.SELECTION_NEW, function (results) {
            for (var key in results) {
                layer.remove(results[key]);
            }
        });
    });
}


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.