Використання класів Label vs Definition - які найкращі?


11

Що б забезпечило найкращі показники для роботи в ArcMap з дуже великими наборами даних, що зберігаються в базі геоданих ArcSDE? Кілька класів міток, що використовують складні запити SQL для позначення конкретних особливостей або кілька копій одного шару, використовуючи один і той же складний SQL запит, встановлений як запит визначення для кожного шару?


2
Я думаю, що "декілька копій одного шару, кожен із власним запитом визначення та простою міткою на місцях" буде вподобаним, але у мене немає показників, щоб підкріпити це відчуття кишечника, тому я думаю, що це чудове питання. Чи може класифікація класів об’єктів бази даних геоданих з мільйоном полігонів кваліфікуватися як дуже великий набір даних у вашій мові?
PolyGeo

Відповіді:


5

Якщо припустити, що запити SQL для класів міток такі ж, як і для розділених шарів, одношаровий підхід з декількома класами міток буде швидшим. Чому ?:

Мітка в ArcMap виконає один запит для малювання шару, а потім один запит для кожного класу міток. Таким чином, шар із 4 класами міток буде запитувати один раз (1 запит) для всіх намальованих функцій, а потім ще 4 додаткові рази (по одному для кожного класу міток або ще 4 запити) = 5 загальних запитів

Якщо ви розділите шари, у вас буде 1 відфільтрований запит (запит на визначення) для кожного шару (4 запити) плюс той самий запит для кожного класу міток (ще 4 запити) = 8 загальних запитів

Майже у всіх випадках 5 запитів будуть швидшими, ніж 8 запитів, завдяки простому запиту над головою, хоча це залежить від джерела даних.

Зауважте, що в ArcGIS Server кеш використовується для маркування функцій, і 1 шар із 4 класами міток, швидше за все, буде оброблятися за допомогою одного запиту, коли класи міток використовують досить стандартний SQL без конкретних функцій для постачальника.


2
Але, за сценарієм запиту на визначення, я б не створював класи міток. Їх би просто помітили на основі одного значення поля. Або я неправильно читаю третій абзац?
ianbroad

Класи міток використовуються для позначення підмножини функцій, визначених SQL, де застереження (точно таке, як запит на визначення) та мають власний текстовий символ, вираз мітки та правила розміщення. З вашого опису мені незрозуміло, як перехід від класів до запиту на визначення дозволяє позначати лише одне поле. Ви маєте на увазі складні вирази міток, а не складні запити SQL?
Крейг Вільямс

1
Ні, я просто маю на увазі, що в обох сценаріях жоден із виразів міток не використовує. Обидва маркуються за допомогою одного поля.
ianbroad

4
Я працюю над командою з маркування в Esri. Я тісно знайомий з тим, як це працює. Місце виклику запиту не вплине на ефективність, але ви хочете зменшити загальну кількість запитів.
Крейг Вільямс

1
Я думаю, що зараз я розумію вашу відповідь, Крейг, але мені цікаво, чи є якийсь спосіб переробити її, щоб полегшити її розуміння. Мені довелося прочитати це кілька разів, щоб зрозуміти, що твоя математика насправді, мабуть, не помиляється, як я та інші думали.
jmpreiks

2

Я провів кілька дуже простих тестів, використовуючи деякі дані NHD, що надходять із з'єднання SDE, і виявив дуже невелику різницю між будь-яким методом.

  1. 7 Класи етикетки в одному шарі, також 7 окремих символій: 36 секунд
  2. 7 Окремі шари із запитами визначення, один клас міток у кожному без запиту: 37 секунд

Кілька застережень:

  1. Мій тест був дуже простий з простими мітками та простими запитами, складні запити слід перевірити, оскільки це було частиною питання.
  2. Близько третини всього часу припадало на малювання символіки.
  3. Мої терміни були з секундоміром, тому похибка досить велика.

+1 для ваших тестів. Цікаво, чи має значення, чи виникають конфлікти міток чи ні? Можливо, ви можете збільшити розмір шрифту, щоб багато міток перекривалося. Потім вимкніть опцію міток, що перекриваються. Чи є зараз різниця?
Єнс

1
Насправді в моїх тестах було багато конфліктів між етикетками, оскільки мені довелося показати велику міру, щоб отримати дійсно довгий час обробки, який я міг легко виміряти.
jmpreiks

1
Не існує такого поняття, як "немає класів етикетки", як завжди є.
Крейг Вільямс

Правда Крейг, я відредагував свою відповідь, щоб уточнити.
jmpreiks

1

Я думаю, що запит на визначення буде швидшим, оскільки він знаходиться на рівні об'єкта, а не на рівні даних атрибутів.

Вам все одно доведеться тестувати. Однак я б використовував запити визначення, а не класи міток.


1
Так, будь ласка, протестуйте (і повідомте про це, якщо зможете). Я також схиляюся до запитів визначення, але з міркувань продуктивності використання. Діалоги виразів міток болісно мляві і на кілька шарів клацання глибші, ніж ті, що задаються. Вони також простіше потрапити в python.
matt wilkie

Я не думаю, що це кваліфікується як відповідь без якоїсь технічної бази або кількісного тестування. Це може ввести в оману деяких людей. Було б краще, як коментар до початкового питання.
jmpreiks

Я зробив би це, якби мав можливість коментувати. Дякуємо за голос "за" Просто намагаюся допомогти.
geogeek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.