Требования к ГИС, PointField и расчету расстояния с географией =True, включая вопрос базы данных

Ссылка на Django: плагины, пакеты или встроенные функции.

Нужно ли устанавливать другие плагины для использования ГИС-функций "PointField" и запросов на расчет расстояний с помощью dwithin? Ошибка теперь связана с отсутствием PointField в init или с запросом GDAL (я использую GeoIP2 с maxmind db? Не уверен, что они похожи или работают вместе) - Не могу найти четкий ответ относительно того, что нужно и что не является.

Также при условии, что dwithin является самым быстрым фильтром для этого - если у меня есть расстояние max? Это ST_Distance была медленной функцией и может быть медленнее для больших дБ?

Также будет ли иметь значение, если я сейчас использую sqllite3 для тестирования? Способен ли он на эти функции? Продолжайте читать о PostGIS и других ограничениях.

Спасибо большое!

1 ответ

Решение

Что я в итоге сделал - Насколько я помню:

Таким образом, я мог бы сделать Sqlite3 Spacial Database - я пытался, но у меня были проблемы с созданием Spacial Database, или были просто мои проблемы с GDAL, с которыми я столкнулся позже, что мешало мне быть успешным, планируя позже использовать PostgreSQL, я просто решил, что это было время двигаться

Затем я решил переключиться на PostgreSQL с PostGIS вместе с OSGeo4W, а также установить установленную программу psycopg2 для PostgreSQL.
При установке PostgreSQL: PostGIS я предпочитаю "Создать Пространственную базу данных" с именем, которое я хочу использовать при установке, - просто потому, что я пытался создать свой собственный, но у меня почти не осталось функциональности, которая была добавлена ​​так, как ее создает установить. (Да, я новичок и понятия не имею, как создать новую пространственную базу данных для себя). Также скажите "да" всем переменным среды, помогает всем найти нужные файлы.

Не на 100%, но я считаю, что все должно быть одинаково, если вы используете 32-битный Python, то вы хотите 32-битный все остальное (включая OSGeo4W) (я считаю, что это также включает в себя окна, так как в противном случае вы могли бы не иметь 32-битных DLL))

После установки OSGeo4W вам либо нужно указать на свою GDAL Dll непосредственно в настройках: GDAL_LIBRARY_PATH=your_path_to_the_dll/gdal204.dll
** Установив фактическую dll, которую вы имеете, django, похоже, ищет только версии 2.2 и ниже, поэтому, если вы укажете путь, он найдет только gdal202 и несколько более старых версий.

(вы можете отредактировать файл libgdal.py в site-packages.django.contrib.gis.gdal, чтобы он выполнял поиск более новых версий gdal)

У меня были СЕРЬЕЗНЫЕ головные боли, пытаясь заставить это работать на моей летней установке Windows 7 64bit с большим количеством случайных установок Visual Studio и тому подобного, 32-битный python, 32-битный gdal, и т. Д., И это были MESS, ошибки Dll слева и справа После нескольких дней размышлений у меня это почти возникло (у меня их не было) - Если у вас много проблем, я настоятельно рекомендую установить новую 64-битную Windows 10 и все 64-битные - Или сделайте то, что кажется лучшим предложением, и попробуйте dev на Ubuntu,

TRLR: Если у вас много проблем и вы не знаете, что делать:
Установите свежие 64-разрядные Windows 10, следуя инструкциям на сайте Django здесь, используя 64-разрядные версии всего. https://docs.djangoproject.com/en/2.1/ref/contrib/gis/install/ Тогда не забудьте поставить свой GDAL_LIBRARY_PATH

Другие вопросы по тегам