Есть ли способ уменьшить перерисовки в ARCGIS?


12

Я использую огромную базу данных на ArcGIS Desktop 9.3.1, и каждый раз, когда я делаю панорамирование / масштабирование, мне приходится ждать 0,5-1 минуту, пока вся база данных не перерисовывается. Есть ли способ уменьшить количество перерисовок (например, заставить программу перерисовывать только один раз каждые пять действий панорамирования)?

Ответы:


10

Убедитесь, что все ваши слои пространственно проиндексированы. Затем ArcMap (или любое другое программное обеспечение ГИС) может быстро определить, что находится внутри прямоугольника, который вы пытаетесь нарисовать.

Следующее - сделать каждый слой видимым только в масштабе, где он имеет смысл. Если вы рисуете слой, созданный для масштаба 1: 1000 в масштабе 1: 100000, это займет много времени, и вы, вероятно, не увидите детали в любом случае.

Третье - не иметь видимых слоев, которые бы покрывали друг друга. Тогда все они будут нарисованы (я думаю, что это справедливо и для программного обеспечения Arc), но вы видите только тот, что спереди.

Если он все еще медленный, вы, вероятно, отправляете данные с другого компьютера с слишком плохим соединением.

В качестве альтернативы вы толкаете базу данных далеко. Тогда, возможно, вам стоит взглянуть на другие программные решения (они могут быть открытыми и бесплатными ;-))

Я думаю, вы могли бы остановить его от автоматического перерисовки, но я не уверен, что это то, что вы действительно хотите сделать.

/ Никлас


1. Что на самом деле делает Spatial Index? поскольку я не знаком с этим, я проверю, улучшает ли это скорость перерисовки. Я видел, что это показано в том же разделе, что и атрибут idex, но я предполагаю, что индекс атрибута не относится к скорости перерисовки, а только к скорости запроса (например, индексирование в доступе).
Джонатр

1
2. Что касается видимого / невидимого - это хорошее решение, но только частично, так как скорость уменьшается лишь немного. 3. Много ли слоев не покрывают друг друга? как любая ГИС может это сделать? 5. Что касается программных решений - что вы имеете в виду (я буду признателен за некоторые «ключевые слова» или тип программного обеспечения, которые помогут мне их искать) ?? Бесконечно благодарен !!!
Джонатр

1) Если у вас нет пространственного индекса, программное обеспечение должно сканировать все геометрии в слое, чтобы определить, что рисовать. Большинство пространственных индексов работают таким образом, что они размещают ограничивающие рамки геометрий в многомерном индексе. Таким образом, он может очень быстро найти, какие ограничивающие рамки пересекаются со степенью, которую вы пытаетесь нарисовать, и из этого только соглашаться с геометриями, которые имеют смысл для этой степени.
Никлас Авен

2) насчет видимого и невидимого трюк состоит в том, чтобы найти, какие слои замедляют движение, и скрыть их, когда они не используются Некоторые слои не влияют на скорость вообще. Это может быть один слой, создающий проблему. Найдите это и разберитесь с ним. Еще одна проблема, о которой я не упомянул, - это сложные символы. Они имеют тенденцию очень сильно тормозить. Попробуйте медленные слои с одним цветным символом и посмотрите, что это дает.
Никлас Авен

3) О другом программном обеспечении ... Я написал несколько строк в вашем другом вопросе: gis.stackexchange.com/questions/1398/… , но я думаю, что для рендеринга ArcMap должен быть быстрым. QGIS, как я обычно использую, не такой быстрый. Но я думаю, что uDig довольно быстрый. Но когда дело доходит до анализа, обработки и веб-картографии, я думаю, что открытые альтернативы, упомянутые в другом вопросе, часто опережают Arc даже без сравнения затрат.
Никлас Авен

5

Вместо того, чтобы переключать кнопку рисования паузы, вы можете использовать клавишу выхода, чтобы отменить рисование. Таким образом, вы можете позволить достаточно перерисовать карту для следующей операции навигации.


1
Это хороший трюк, которым я часто пользуюсь (к сожалению, так как это немного не по порядку и не реальное решение).
Jonatr 18.10.10

Эй, я этого не знал. Хорошо знать!
LarsH

5

Если вы используете базу данных вместе с другими данными, возможно, стоит иметь их все в одной проекции. Таким образом, ArcMap не нужно перепроектировать на лету. Также убедитесь, что все данные в базе данных находятся в одной проекции (это будет применено в наборах классов объектов, но проекции могут отличаться в других подразделениях баз геоданных).


4

Приостановка надписей и панорамирование объектов, а не масштабирование объектов (масштаб может изменить масштаб, а панорамирование - нет).


под "пауза меток" вы имеете в виду отключить метки?
Мэтт Уилки

нет, мат. на панели инструментов «метка» есть кнопка паузы, которая останавливает перерисовку меток (хороший ответ, +1, но, как я сказал Джею, к сожалению, это тоже немного неестественное решение, а не прямое обращение с проблема).
Джонатр

2

Есть несколько вариантов, которые, я думаю, могут вам помочь.

1- Вы можете просто приостановить рисование (символ || в левом нижнем углу окна просмотра данных). Когда вы делаете это, вы все равно можете панорамировать и масштабировать, хотя, очевидно, вы не можете видеть, что вы панорамируете или масштабируете.

2 - Вы можете использовать видимые диапазоны масштаба, чтобы ограничить рендеринг отдельных слоев только при увеличении / уменьшении определенных диапазонов. Если вы неоднократно перемещаетесь по панорамированию или масштабируете в одинаковые места, вы также можете делать пространственные закладки (и на этих масштабных уровнях установить соответствующие слои, которые вы хотите визуализировать). ( Ответ Никласа побил меня тоже этот пункт)

Я полагаю, что другие могут дать рекомендации по снижению сложности файлов, это также может помочь другим, если вы опишите тип данных, которые вы отображаете.


2

Мне нравится использовать инструмент MXDPerfStat при работе с 9.x MXD, чтобы проанализировать, где можно улучшить производительность при рисовании. В версии 10.0 есть несколько аналогичных функций панели инструментов публикации картографического сервиса, которые анализируют производительность слоев с целью оптимизации карт для ArcGIS Server.


0

Скотт Ла ванн получает приз. «Режим чернового переключения» является ключевым при использовании нескольких фреймов данных в большом макете.
В отличие от кнопки паузы, которая скрывает весь экран, она отдельно отображает каждый кадр данных, позволяя перемещать, изменять размеры и манипулировать текстовой / графической / легендой / северной стрелкой.
До тех пор, пока я не обнаружил, что я вырывал свои волосы при создании больших карт из-за медленной скорости перерисовки в КАЖДОМ ОДНОМ КЛИКЕ.


-1

Другой вариант - использовать кнопку «Переключить режим черновика» на панели инструментов макета. Это полезно только если вы находитесь в режиме макета. К сожалению, вы не можете видеть данные, которые вы панорамируете и масштабируете. Я нашел это очень полезным, хотя при настройке макета моего листа.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.