Я использую листовку L.esri.dynamicMapLayer
для отображения большого количества полилиний на карте, а запрос на экспорт на ArcGIS Server для их рисования может занять некоторое время. Если пользователь быстро делает несколько масштабирования или сковородок, я могу завершить кучу ожидающих запросов на экспорт, что также блокирует другие запросы на ArcGIS Server. Все эти запросы на экспорт, кроме последнего, бесполезны.Как предотвратить обновление динамическогоMapLayer при каждом масштабировании или панорамировании карты?
Для других слоев клиентской стороны я уже контролирую обновление, убедившись, что пользователь прекратил масштабирование или панорамирование не менее 2 секунд, прежде чем обновлять слои самостоятельно. Как я могу сделать то же самое для dynamicMapLayer
, могу ли я приостановить или остановить автоматическое обновление и решить, когда я хочу, чтобы запрос на экспорт был сделан?
Обратите внимание, что мы не можем использовать плитки для повышения производительности, поскольку по другим причинам слой должен оставаться динамическим.
Спасибо за андерсера. Как насчет удаления dynamicMapLayer на zoomStart или dragStart, а затем повторного добавления его через 2 секунды. Просто попробовал это и, похоже, сработал. Это тоже уродливо ... но, похоже, это работает. Для плиток есть атрибут, который будет использоваться в качестве фильтра для контроля того, какие линии видны или нет. Там уже 3 возможных значения для этого параметра и могут быть больше в будущем. Клиент предпочитает использовать dynamicLayers, и вместо этого мы планируем использовать упрощенные геометрии на более высоких уровнях масштабирования для повышения производительности. Вероятно, используя алгоритм Дугласа-Пьюкера. – greenkarmic
В вашем случае я бы сделал несколько наборов прозрачных плит и добавлял/удалял их на карту в зависимости от ситуации.При необходимости делегируйте функции с функциями щелчка. Даже используйте VectorGrid. Я нахожу, что клиенты заставляют технологический вопрос (много раз) ошибочно. – IvanSanchez
Забавно, что вы должны сказать, что только что закончили длинную цепочку писем с клиентом, и я думаю, что она, наконец, готова пойти на компромисс в использовании плиток ... Не может быть счастливее, я потратил столько времени на оптимизацию карты, используя dynamicLayer. последние несколько дней. Она просто не получала огромных последствий для динамики динамики и не хотела компрометировать функции. Даже после того, как я показал ей прото, используя плитки и как быстро это было, она не хотела сдвинуться с места. Во всяком случае, да, я буду использовать прозрачные плитки, возможно, PNG8, по одному для каждого значения атрибута. Уф. – greenkarmic