(Коли) я повинен використовувати базу даних із підтримкою ГІС?


22

Я давній програміст, новачок у ГІС. Я намагаюся зрозуміти аспекти бази даних ГІС і розумію, що є деякі бази даних, спеціалізовані для використання ГІС. В основному я намагаюся зрозуміти, використовувати таку базу даних чи дотримуватися надзвичайно популярного, добре встановленого, широко підтримуваного (та безкоштовного) MySql.

Такі програми, які я підлягаю кодуванню, такі речі:

  • управління парком (наземні або океанські транспортні засоби)
  • відстеження працівників
  • контроль запасів (при деталізації фізичного положення з точністю до метра або близько того)
  • Помилка, саме про це, насправді

Зазвичай я очікую відстежувати не більше 1 декількох сотень (максимум, можливо, кілька тисяч) предметів. Іноді предмети будуть розташовані в одній (великій) будівлі, серії будівель, місті, країні або в усьому світі, залежно від програми.

Я інколи буду візуально представляти їх або на власному плані будівлі, або, швидше за все, в Google Планета Земля тощо) (більше про це в іншому питанні).

Мені здається, що я так само добре поєднуюся з MySql і додаю стовпці для lat / long або інших позиційних даних, але це може бути просто тому, що я знаю MySql.

Чи є якась причина, чому я повинен шукати більш спеціалізовану базу даних?

Відповіді:


13

Реальною перевагою просторових баз даних (PostGIS, просторові розширення на MySQL або що-небудь інше) є те, що ви можете робити просторові операції над просторовими даними. Якщо ви просто зберігаєте координати точок, то ви просто не отримуєте великої кількості просторових (просто використовуйте два числові стовпці). Якщо ви зберігаєте комбінації точкових координат (там, де перебувають клієнти), і координати ліній (куди їздять вантажні машини), так і полігони (регіони продажу), а потім виконуєте запити, що стосуються цих різних бітів інформації (скільки клієнтів у межах продажу зону, скільки вантажних автомобілів проїхало менше ніж 2 км від сайту замовника сьогодні, але не здійснили доставку чи пікап), ви можете багато отримати.

Як вказував iant, PostGIS, безумовно, варто шукати серверну програму. SpatiaLite - це просторові розширення для SQLite, які, можливо, краще підходять для настільних / вбудованих / офлайн-мобільних додатків, пропонуючи при цьому досить схожі функції SQL [ Розкриття: Я працюю над SpatiaLite ], зазначаючи, що нічого, що не зупиняє вас використовувати PostGIS в настільний додаток.


+1 і спасибі Просто цікаво, чому він базувався на Sqlite, а не MySql ...
Mawg

1
Я думаю, що його просто різні цілі дизайну (вбудовані, без конфігурації тощо).
BradHards

+1 про це я подумав (я теж з вбудованого фону). Дякуємо за інформацію. Я сподіваюся, що я закінчу програму на основі браузера (більшість з нас, навіть якщо ми воліємо цього не робити), тому "Lite" не дуже потрібна. Просто цікаво, які програми зараз, де d / b знаходиться у вбудованій системі / пристрої? (вибачте, все ще навчаюсь)
Mawg

1
вбудована - велика область, але офлайн мобільний телефон, здається, стає новою областю.
BradHards

2
@Mawg Більшість сучасних телефонів та браузерів використовують sqlite як сховище даних. Це дійсно один файл c, а API дуже простий і він працює в процесі. На відміну від MySQL, який вимагає декількох запущених процесів та архітектуру клієнт / сервер. Два дуже різні випадки використання
Рагі Ясер Бурхум

8

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

Після того, як вам потрібно буде задавати питання, наприклад, які об’єкти знаходяться в якій країні (або будівлі), то PostGIS дійсно стає власною, і якщо ви вирішите, що вам потрібно зіставити об’єкти, то всі популярні інструменти з відкритим кодом будуть спілкуватися з PostGIS поза коробка.


+1 і велике спасибі Я зараз заглядаю в це. Формуючи точку зору кодерів, я хочу бачити, що він добре розмовляє з PHP, якщо я переходжу на веб-сторінку, і якщо я переходжу на додаток Widnwos для настільних комп'ютерів, тоді я використовую компоненти доступу до бази даних AnyDac для Delphi, тому я надішлю електронну пошту для підтримки AnyDac. Знову дякую!
Mawg

1
До Mawg: мені все одно доводиться бачити будь-яку з сторонніх баз даних delphi для підтримки будь-якої з функцій ГІС у postgis, db2, spatiallite, sql сервері тощо. Здається, це щось, що потрібно робити самостійно.
Uffe Kousgaard

+1 @UffeKousgaard Я знайшов це лише за 295 доларів за найдешевший cartovcl.com
Mawg

1
Cartovcl (яким я користуюся майже 10 років) - це плоский файл GIS SDK, який має вбудовану функціональність GIS. Це не тонкий API поверх просторово включеної віддаленої бази даних.
Uffe Kousgaard

1
Історичний документ :-) Але TatukGIS - це, мабуть, один із найвичерпніших всебічних GIS SDK там (але також трохи дорого). Але це в тій же лізі, що і cartovcl, тобто вбудована gis-функціональність, це не API поверх віддаленої бази даних.
Uffe Kousgaard

2

Щоб додати відповіді та ще раз повторити деякі моменти, ви використовуєте базу даних з увімкненою простором, якщо у вас є запити, що стосуються просторових відносин даних, декілька з яких такі:

  1. які точки знаходяться в межах кілометрів від моїх визначних місць
  2. які точки ближче
  3. наскільки точка від іншої точки
  4. які точки - х кілометрів у межах під'їзної дороги

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

Звичайно, можна скористатися логікою кодування / застосунку для деяких із цих запитів, таких як використання формули відстані для 1, але не потрібно винаходити колесо.

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