Більше

Додайте набір функцій у графічному шарі без ітерацій


У мене є служба геообробки, яка повертає велику кількість функцій (featureSet). Я хочу приєднати їх до графічного шару, але не хочу повторювати їх усі. Я спробував використати параметр mygraphicLayer.graphics, щоб встановити функції (масив графіки) на графічний шар, але це не працює.

У вас є поняття, як я міг це зробити?

функція addCityFeatureSetToMap (featureSet) {console.debug ("featureSet", featureSet) var symbol = new esri.symbol.SimpleMarkerSymbol (); symbol.setColor (новий dojo.Color ([0,0,255])); // Створити графічний шар для міст var cityLayer = new esri.layers.GraphicsLayer ({графіка: featureSet.features}); map.addLayer (cityLayer);

редагувати: я трохи повозився і зрозумів, що моя оригінальна відповідь неправильна. вам потрібно перебирати окремі графіки та додавати () їх по черзі, тому що графічна властивість GraphicsLayer не є "встановлюваною".

При цьому важливо відзначити, що не було б жодних переваг API, які б розкривали техніку масового завантаження графіки, оскільки нам все одно доведеться перебирати окремі геометрії всередині, щоб вставити їх у DOM.


Оригінальна відповідь: я не впевнений, що ви побачите збільшення продуктивності у цьому підході, але це повинно працювати чудово, якщо ви встановите відповідний рендерер для GraphicsLayer.

var myRenderer = новий SimpleRenderer (символ); cityLayer.renderer = myRenderer; cityLayer.graphics = featureSet.features; cityLayer.redraw ();

зараз ви передаєте масив графічних об’єктів без жодного визначеного символу.


Я б розширив GraphicsLayer таким чином

GraphicsLayer.prototype.addGraphics = function (arrayOfGraphics) {var that = this; arrayUtil.forEach (arrayOfGraphics, function (графічний) {that.add (графічний);}); }


Подивіться відео: İŞSİZLİK GARANTİSİ VEREN BÖLÜMLER (Вересень 2021).