Використання класів 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.