Вопросы с тегами [geos]

0

голосов
0

ответ
3

Просмотры

Can I enable PointField in django without admin on windows?

Я использую мой настольный ПК (Windows 10) в моей среде разработки. Мне нужно добавить географические координаты к одному из моих таблиц. PostgreSQL имеет тип точки, и, кажется, что Джанго эквивалентная модель PointField Я пробовал: от django.contrib.gis.db.models импорта PointField ... класс ... место = PointField (пустой = True) и я получаю следующее сообщение об ошибке сообщение: django.core.exceptions.ImproperlyConfigured: не удалось найти библиотеку GDAL (пробовал "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Установлен ли GDAL? Если да, то попробуйте установить GDAL_LIBRARY_PATH в настройках. Кажется, мне нужно установить библиотеку GDAL библиотеку. Так что я попытался пип установить библиотеку GDAL --user, и я получил следующее сообщение об ошибке: ошибка: Microsoft Visual C ++ 14,0 требуется. Получить его "
Granny Aching
1

голосов
1

ответ
949

Просмотры

стройные и GEOS перерыв в методе расстояния

У меня возникли проблемы с использованием методы расстояния в стройном (я подозреваю, несовместимость с пакетом GEOS). Следующий код: от точки печати shapely.geometry импорта точки (0,0) .distance (Point (1,1)) создает следующее сообщение об ошибке: Python: GeometryComponentFilter.cpp: 34: виртуальные недействительных :: геых ГМО :: GeometryComponentFilter: : filter_ro (константные GEOS :: геый :: Геометрия *): Утверждение `0' не удалось. Отменено (ядро сбрасывали) Я бегу CentOS 6, питон 2.6, 3.4.2 (ГМО, хотя он создает ссылку из libgeos_c в 1.8.2) погуглить это дало несколько старых сообщений, которые не очень помогают мне. Спасибо, Raz
Raz
1

голосов
1

ответ
631

Просмотры

Вычислить ограничивающий прямоугольник для LINESTRING, содержащие географические координаты

Я вычислил LINESTRING от Google Maps API маршрутов. Я преобразовал LineString на объект GEOSGeometry. Мне нужно в другую область, которая охватывает все точки на расстоянии «D» от объекта LINESTRING. Расстояние в м, км. ГЕОС API обеспечивает GEOSGeometry.buffer (ширина, quadsegs = 8), чтобы сделать это, который хорошо работает в проекции 2-D. Но как сделать это для сферической модели? Это связано с SRID. от django.contrib.gis.geos импортировать LineString из django.contrib.gis.geos импорта GEOSGeometry направления = maps_client.directions (источник, пункт назначения) overview_polyline = decode_polyline (направления [0] [ 'overview_polyline']) linestring_obj = LineString (overview_polyline) # ДЛЯ 2-D проекции bounding_box = linestring_obj.buffer (ширина = 100) # Для сферической модели # ???
R Simon
1

голосов
1

ответ
52

Просмотры

How Can I Fake A MultiPolygon Field?

Я создаю завод Django для модели, которая содержит MultiPolygonField. Он бросает ошибку при запуске теста. Деталь ниже. Я создал специальный поставщик, чтобы фальсифицировать это поле. Код взят из документации Django: от django.contrib.gis.geos импорта (Polygon, MultiPolygon,) импорт завод из Факер импорта Faker из faker.providers импорта BaseProvider поддельный = Факер () класса поставщика (BaseProvider): Защиту mpoly ( самостоятельно): p1 = многоугольник (((0, 0), (0, 1), (1, 1), (0, 0))) р2 = многоугольник (((1, 1), (1, 2), (2, 2), (1, 1))) = mpoly MultiPolygon (p1, p2) возвращают mpoly fake.add_provider (Провайдер) класс GeographyFactory (factory.DjangoModelFactory): ""»фабрика генерировать фиктивные объекты GeographyFactory, которые будут использоваться в тестах «»»класса Meta.: модель = имя «location.Geography» = factory.Faker ( «имя») mpoly = fake.mpoly Я получаю ошибку, когда я запускаю тесты, однако, озадачены меня. TypeError: Невозможно установить Географию SpatialProxy (MultiPolygon) со значением типа: Это наводит на мысль, что я не возвращаюсь правильный типа, но я не могу понять, что он хочет, чтобы вместо объекта MultiPolygon я возвращаюсь. Почему думаю, что я возвращаюсь? Любые предложения будут приветствовать! т понять, что он хочет, чтобы вместо объекта MultiPolygon я возвращаюсь. Почему думаю, что я возвращаюсь? Любые предложения будут приветствовать! т понять, что он хочет, чтобы вместо объекта MultiPolygon я возвращаюсь. Почему думаю, что я возвращаюсь? Любые предложения будут приветствовать!
knittingarch
1

голосов
1

ответ
24

Просмотры

Есть ли лучший способ для обработки SpatialPolygons, которые пересекают (дата часть небесного меридиана, лежащая ниже горизонта линия)?

TL; DR Каков наилучший способ в R для обработки SpatialPolygons пересекающихся / перекрывающихся анти меридиан на +/- 180 ° широты и сократить их на две части вдоль этого меридиана? Предисловие Это собирается быть долгой, но только потому, что я собираюсь включать много кода и цифры для иллюстрации. Я покажу вам, что моя цель, и как я обычно достичь этого, а затем показать, как все это рассыпается вместе в буквальном края случае. Как подсказывает название, я уже нашел одно возможное решение моей проблемы, поэтому я включу это тоже. Но это не 100% чистое, и я хотел бы видеть, если кто-то может придумать что-то более элегантным. В любом случае, я думаю, что это интересная проблема, так как только пару дней назад я бы не заподозрили в самых смелых мечтах, что это может даже быть проблемой в 2019 году регулярного потока работы в R-первых,
Where's my towel
1

голосов
1

ответ
49

Просмотры

GeoDjango - как закрыть дыры в multipolygons?

Я использую PostGIS и GeoDjango и имею много геометрии области, как MultiPolygon полей и, кажется, многие из них имеют отверстие в них, есть ли способ я могу использовать, чтобы закрыть эти дыры и сохранить внешнюю границу? Спасибо
Dan
1

голосов
1

ответ
99

Просмотры

Джанго-отдых-каркасный GeoFeatureModelSerializer ГИС возвращение измененных / неправильные координат При сериализации

В настоящее время у меня есть GeometryField, который содержит полигон, который является GEOSGeometry. Я печатаю координаты полигона, и они, кажется, хорошо, там, где я указал. Затем я сохранить экземпляр модели, а затем десериализации с GeoFeatureModelSerializer, только чтобы узнать, что координаты моего многоугольника были изменены на что-то очень маленькое и близко к экватору. Это GEOSGeometry хранится в GeometryField сначала, что сохраняется в базе данных. ПОЛИГОН ((-79,94751781225206 +40,44287206073545, -79,94751781225206 +40,44385187931003, -79,94502872228624 40,44385187931003, -79,94502872228624 40,44287206073545, -79,94751781225206 +40,44287206073545)) Это после того, что сериализации с GeoFeatureModelSerializer и возвращается. [[-0,000718176362453, 0,000363293553554], [-0. 000718176362453, +0,000363316438548], [-0,000718135112337, +0,000363316438548], [-0,000718135112337, +0,000363293553554], [-0,000718176362453, +0,000363293553554]] Я понятия не имею, что может быть причиной этого. Заранее большое спасибо.
1

голосов
1

ответ
352

Просмотры

Перебирать точек в GEOS многоугольник с помощью C API

Как я могу перебрать точки в GEOS Polygon, не превращая его в строку WKT? В настоящее время мы делаем что-то вроде этого: GEOSGeometry * геом = GEOSGeomFromWKT ( "ПОЛИГОН ((1 1, 2 1, 2 2, 1 2, 11))"); символ geomAsWKT [900] = GEOSGeomToWKT (геом); / * Iterate над geomAsWKT, чтобы получить очки * / Все функции, которые я пробовал (GEOSGeomGetPointN, GEOSGeom_getCoordSeq и некоторые другие) работают только на LinearRing.
Cody Piersall
1

голосов
1

ответ
2.7k

Просмотры

Python can't import shapely

Я использую Python3.4 на Mac OSX, и я пытаюсь импортировать стройным. Однако я не в состоянии сделать это. Вот мой отслеживающий: от shapely.geometry импорта точки Файл «/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geometry/__init__.py», строка 4, в от .base импорта CAP_STYLE , JOIN_STYLE Файл "/Users/tc9/Library/Python/3.4/lib/python/site-packages/shapely/geometry/base.py", строка 9, в от shapely.coords импорта CoordinateSequence Файл «/ Users / tc9 / Библиотека /Python/3.4/lib/python/site-packages/shapely/coords.py "строка 8, в от shapely.geos импорта lgeos Файл" /Users/tc9/Library/Python/3.4/lib/python/site-packages /shapely/geos.py "строка 74, в _lgeos = load_dll ( 'geos_c', откаты = alt_paths) Файл" / Users / tc9 / Library / Python / 3. откаты или [])) OSError: Не удалось найти библиотеку geos_c или загрузить любой из его вариантов [ «/Library/Frameworks/GEOS.framework/Versions/Current/GEOS», «/opt/local/lib/libgeos_c.dylib»] Я думаю, что, возможно, придется установить GEOS_LIBRARY_PATH, но я не уверен, что, чтобы установить его. Вот Ls из /Users/tc9/homebrew/Cellar/geos/3.4.2/lib после того, как я заварить установки ГМО: libgeos-3.4.2.dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c .dylib я редактировал и источники моего ~ / .profile, но это не решало вещь: GEOS_LIBRARY_PATH = «/ Users / tc9 / доморощенный / Подвал / GEOS / 3.4.2» экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю. откаты или [])) OSError: Не удалось найти библиотеку geos_c или загрузить любой из его вариантов [ «/Library/Frameworks/GEOS.framework/Versions/Current/GEOS», «/opt/local/lib/libgeos_c.dylib»] Я думаю, что, возможно, придется установить GEOS_LIBRARY_PATH, но я не уверен, что, чтобы установить его. Вот Ls из /Users/tc9/homebrew/Cellar/geos/3.4.2/lib после того, как я заварить установки ГМО: libgeos-3.4.2.dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c .dylib я редактировал и источники моего ~ / .profile, но это не решало вещь: GEOS_LIBRARY_PATH = «/ Users / tc9 / доморощенный / Подвал / GEOS / 3.4.2» экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю. рамки / Версии / Current / GEOS»,„/opt/local/lib/libgeos_c.dylib“] Я думаю, что, возможно, придется установить GEOS_LIBRARY_PATH, но я не уверен, что, чтобы установить его. Вот Ls из /Users/tc9/homebrew/Cellar/geos/3.4.2/lib после того, как я заварить установки ГМО: libgeos-3.4.2.dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c .dylib я редактировал и источники моего ~ / .profile, но это не решало вещь: GEOS_LIBRARY_PATH = «/ Users / tc9 / доморощенный / Подвал / GEOS / 3.4.2» экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю. рамки / Версии / Current / GEOS»,„/opt/local/lib/libgeos_c.dylib“] Я думаю, что, возможно, придется установить GEOS_LIBRARY_PATH, но я не уверен, что, чтобы установить его. Вот Ls из /Users/tc9/homebrew/Cellar/geos/3.4.2/lib после того, как я заварить установки ГМО: libgeos-3.4.2.dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c .dylib я редактировал и источники моего ~ / .profile, но это не решало вещь: GEOS_LIBRARY_PATH = «/ Users / tc9 / доморощенный / Подвал / GEOS / 3.4.2» экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю. dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c.dylib я редактировал и источников моего ~ / .profile, но это не решало вещи: GEOS_LIBRARY_PATH = "/ Users / tc9 / доморощенного / Подвал / GEOS / 3.4.2" экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю. dylib libgeos.dylib libgeos_c.a libgeos.a libgeos_c.1.dylib libgeos_c.dylib я редактировал и источников моего ~ / .profile, но это не решало вещи: GEOS_LIBRARY_PATH = "/ Users / tc9 / доморощенного / Подвал / GEOS / 3.4.2" экспорт GEOS_LIBRARY_PATH Может кто-нибудь мне точку в направлении решения для получения стройного импортировать? Благодарю.
tommy.carstensen
2

голосов
1

ответ
88

Просмотры

Сериализация-структуры, определение которого не известно

Я использую библиотеку GEOS в моем программном обеспечении как геометрии двигателя. Я в настоящее время использую его АЛО (как это рекомендуется апи). Теперь проблема, я хотел бы сериализации и десериализации структуры GEOSGeometry. Сама библиотека находится в C ++ и чапи обертка вокруг него. Таким образом, определение структуры не доступно на говорят. Какие есть варианты? Это то, что чапи упоминает / * Когда мы включены geos_c.cpp, те с помощью #define в исходных * определения JTS через препроцессор. Мы их не трогаем, чтобы позволить * компилятору для перекрестной проверки деклараций. Однако для всех «нормальных» * пользователей C-API, мы должны определить их как «непрозрачные» STRUCT указатели, так как * те клиенты не имеют доступ к оригинальным заголовкам C ++, дизайн. * / #Ifndef GEOSGeometry ЬурейиХ структуры GEOSGeom_t GEOSGeometry; И это, как он обернут // Некоторые дополнительные магии делать заявление типа в geos_c.h работы - // для перекрестной проверки типов в заголовке. #define GEOSGeometry GEOS :: геом :: Геометрия Любая помощь приветствуется.
Go Pro
17

голосов
5

ответ
10.1k

Просмотры

OSError geos_c could not be found when Installing Shapely

Я новичок, чтобы сделать / черчения на картах с питоном, пытались следовать этому BlogPost, чтобы создать карту мира (http://sciblogs.co.nz/seeing-data/2011/08/12/plotting-geographic- данный на-миро-карта-с-питоном /). Застрял с несколькими вещами здесь: Установка Basemap (расширение Matplotlib для построения данных о географических проекциях). от mpl_toolkits.basemap импорт TraceBack (Базовой карты самого последнего вызова последнего): Файл «geos_demo.py», строка 1, в от mpl_toolkits.basemap импорта BaseMap ImportError: Нет модуль с именем не mpl_toolkits.basemap Установите стройный, но возникает следующая ошибка [1] : Тогда я пошел в файл geos.py и изменить все ссылки из geos.dll в geos_c.dll, в соответствии с рекомендациями по ссылке здесь: http://osgeo-org.1560.n6.nabble.com/osgeo4w-258 -проблемы-с-питона-стройный-питон-2-7-2-td4336816.html Однако, та же ошибка [1] имеет место. Я использую Python 2.7.1 и Mac OS 10.7.4. Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию, и действительно оценить какое-либо указание от сообщества здесь! Спасибо! [1] от shapely.geometry импорта точки TraceBack (самый последний вызов последнего): Файл "", строка 1, в файле «/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/ __init__.py», линия 4, в от гео импорта коробки, формы, asShape, проецируемый файл„/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/geo.py“, строка 5, в от точки импорта Point, asPoint Файл "/Users/Desktop/python/ENV/lib/python2.7/site-packages/shapely/geometry/point.py", строка 7, в от shapely.coords импортируют требуемого файла «/ Users / Desktop / питон / ENV / Библиотека / python2.
msunbot
5

голосов
1

ответ
4.6k

Просмотры

Установка полнофункциональной PostGIS 2.0 по вопросам / GDAL Ubuntu Linux ГЕОС

Я работаю над PostGIS 2.0 и работает на сервере Linux Ubuntu-индивидуалист-amd64 для примерно недели. Я буду для растрового и поддержки топологии. Я использовал следующие настройки для: Суд ./configure --with-растр --with-топологии --with-jsondir = / дом / zonabili / JSON-с-0.9 Файл конфигурации ниже описывает свои функции. PostGIS теперь настроен для x86_64-неизвестно-Linux-гну -------------- Компилятор Info ------------- C компилятор: GCC -g -O2 C ++ составитель: г ++ -g -O2 -------------- зависимости -------------- GEOS конфигурации: / USR / местные / бен / GEOS-конфигурации GEOS версия: 3.3.1 GDAL конфигурация: / USR / бен / GDAL-конфигурация GDAL версия: 1.8.0 PostgreSQL конфигурация: / USR / бен / pg_config PostgreSQL версия: PostgreSQL версия 9.1.2 PROJ4: 47 Libxml2 конфигурации: / USR / бен / xml2-конфигурации Libxml2 версия: 2.7.7 поддержка JSON-C: Да Уровень PostGIS отладки: 0 -------------- Расширения ---------- ---- PostGIS Raster: 0.1.6d PostGIS Топология -------- Документация Генерация -------- xsltproc: / USR / бен / xsltproc XSL таблицы стилей: dblatex: / USR / бен / dblatex конвертировать: / USR / бен / новообращенный мне удалось запустить сделать и Sudo сделать установку с более старыми (и бесполезными для новых функций) версиями GDAL и GEOS. Таким образом, я думаю, что проблемы лежат мою установку GEOS или GDAL. Там нет 3.3.1 загружаемого пакета для моей Linux версии, так что я должен был построить из источника, и я, вероятно, испортил это вверх, как я не привык делать это, хотя я следовал инструкциям, предоставляемые на сайте и скачал файл обработана. Я не отклонялся от другой, чем CD-ING в каталог, чтобы настроить и монтирует инструкции. Я сделал все, что в ней четко говорилось, что я должен делать. Я не получил сообщение, что он построен правильно, когда я построил его, так что я думаю, что-то пошло не так, как я получил следующие ошибки ближе к концу моего неудачного PostGIS сборки: сделать [2]: Выход каталог `/ главная / zonabili / PostGIS-2.0.0SVN / растр / rt_pg 'сделать -C загрузчик сделать [2]: Ввод каталога `/home/zonabili/postgis-2.0.0SVN/raster/loader' / бен / Баш ../..//libtool - -mode = ссылка НКУ -g -O2 -fPIC -DPIC -Wall -Wmissing пр ototypes -I ../ rt_core -I / дом / zonabili / PostGIS-2.0.0SVN / liblwgeom -I / USR / ВКЛЮЧАЕТ е / GDAL - I / USR / местные / включить raster2pgsql.o ../rt_core/librtcore.a ../rt_core/lib rtcore.a /home/zonabili/postgis-2.0.0SVN/liblwgeom/.libs/liblwgeom.a -L / USR / Библиотека -lgdal1.8. LIBS / liblwgeom.a (lwgeom_geos.o): В F помазание `lwgeom_snap ': /home/zonabili/postgis-2.0.0SVN/liblwgeom/lwgeom_geos.c:961: не определено ссылка на` GEOSSnap' V collect2: LD возвращается 1 выход статус сделать [2]: *** [raster2pgsql] Ошибка 1 Марка [2]: Выход каталог `/home/zonabili/postgis-2.0.0SVN/raster/loader» сделать [1]: *** [rtloader] Ошибка 2 сделать [1]: Выход каталог `сделать /home/zonabili/postgis-2.0.0SVN/raster»: *** [все] Ошибка 1 модуль JSON-C также является проблемой, так как все они говорят, что делать с ним распаковка его и /.configure сделать это. но я чувствую, что есть, вероятно, больше, что мне нужно сделать. Я действительно получаю разочарование в связи с этим, как я чувствую, что я так близко, но держать удары, непреодолимые препятствия, где я не имею ни малейшего понятия, что делать. Я был бы весьма признателен всем, кто может помочь исправить эти ошибки вопиющих и помочь мне управлять этой поистине адским процессом установки! Я был бы готов удалить все и начать с самого начала, хотя я на самом деле не знаю, как удалить ГМО, потому что я должен был построить их из источника, а не APT-получить! Я тоже новичок в Linux (я, наконец, просто понял, как получить установленную на моем ноутбуке окна PostGIS 2.0!), Так что пожалуйста, как описательный, как это возможно. Спасибо заранее, так как это была огромная головная боль для меня! 0 установлен на моем ноутбуке окна!), Так что будьте максимально информативным. Спасибо заранее, так как это была огромная головная боль для меня! 0 установлен на моем ноутбуке окна!), Так что будьте максимально информативным. Спасибо заранее, так как это была огромная головная боль для меня!
THX1138
20

голосов
2

ответ
12.1k

Просмотры

Координата ближайшей точки на линии

Существует полилинии со списком координат вершин = [(x1, y1), (х2, у2), (х3, у3), ...] и точка (х, у). В стройных, geometry1.distance (geometry2) возвращает кратчайшее расстояние между двумя геометрий. >>> от импорта shapely.geometry LineString, точка >>> линия = LineString ([(0,0), (5,7), (12,6)]) # geometry2 >>> список (line.coords) [ (0,0, 0,0), (5,0, 7,0), (12,0, 6,0)] >>> р = точка (4,8) # geometry1 >>> список (p.coords) [(4.0, 8.0)] >>> p.distance (линия) +1,4142135623730951 Но мне также нужно найти координаты точки на линии, которая находится ближе всего к точке (х, у). В приведенном выше примере, это координата точки на объекте LINESTRING, который 1,4142135623730951 блока на расстоянии от точки (4,8). Расстояние () метод должен иметь координаты при расчете расстояния. Есть ли способ, чтобы получить вернулись из этого метода?
a r
2

голосов
0

ответ
334

Просмотры

Ошибка при попытке установить на 3.4.2 ГМО OS X

Я получаю следующее сообщение об ошибке: сделать [4]: ​​*** [установить рекурсию] Ошибку 1 марку [3]: *** [установить рекурсию] Ошибку 1 Марка [2]: *** [установить рекурсию] Ошибка 1 марка [1]: *** [установить рекурсией] Ошибка 1 марка: *** [установить] Ошибка 2 Я бегу OS X 10.6.8 с Xcode 4.2. Вслед за этими предложениями, я попытался установить его с --use-GCC, но это не имеет никакого значения. Любые идеи, что может привести к ошибкам?
Silvester
5

голосов
3

ответ
754

Просмотры

часть растровой ячейки, покрытой одним или несколькими многоугольников: есть более быстрый способ сделать это (в R)?

Фотографии лучше, чем слова, поэтому, пожалуйста, посмотрите на то, что у меня есть это объект RasterLayer (заполняется случайными значениями здесь только для иллюстрации, фактические значения не имеет значения) а SpatialPolygons объект с большим и большим количеством полигонов в нем Вы может воссоздать пример данных я использовал для изображения с помощью следующего кода: библиотека (SP) библиотека (растровый) библиотека (rgeos) # создать пример растрового г
Where's my towel
4

голосов
1

ответ
2.1k

Просмотры

3D геометрической топологии (например, пересечение) в Python

Я использую GEOS (в Python / Django) для управления некоторыми 3d-элементами. Все топологические операции работают отлично в 2D. Таким образом, я создал простую MultiPolygon с 3D-полигонов (очень простые по сути, это просто набор вертикальных плоскостей), и LineString, который также 3D. Теперь я просто хотел пересечение тех (который я считаю, был бы список 3D-очков): >>> л = LineString ([0, 0, 0], [1, 1, 1]) >>> р = Многоугольник ([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]]) >>> р. пересекает (л) Ложные Так OK, GEOS не поддерживает топологические операции с 3D-данных ... Ну, там должно быть много библиотек там, что может сделать это для меня право ??? Так что я гугл, и я просто не могу найти ни одного !!! Так что если кто-то есть указатель, что было бы здорово ...
sebpiq
2

голосов
0

ответ
133

Просмотры

Привлечение внешних библиотек в Renderscript

Я немного новичок все это так, пожалуйста, медведь со мной, если вопрос звучит немного глупо. Я делаю проект по сравнив распространяется на использование GPU для визуализации карт и пространственного анализа на мобильных устройствах (Android, в основном). Я решил левередж на топологию наборе JTS, который предлагает разнообразный анализ (триангуляции, точки многоугольника и т.п.) и реализовал эти функции в Android без использования GPU (в основном работаю его на CPU). Тем не менее, я хотел бы принести эти функции на GPU через Renderscript, но не смогли ссылаться на различные переменные в Renderscript. Эти типы, такие как GeometryFactory, точка, многоугольник, координаты, которые я хочу использовать в файле Renderscript C. Следовательно, необходимо загрузить версию C библиотеки из JTS (GEOS, в основном) и использовать его в Renderscript? И если это так, как я должен идти о его реализовать? (Я не совсем компетентен в C) Или есть способ установить различные переменные в файле Renderscript С помощью Java? Если вам требуется какие-либо детали: Я использую Android Developer Tools с Eclipse, JTS 1,13 Спасибо! В качестве примера, я хотел бы сделать что-то вроде:. (В Java) импорт jtslibrary *; но реализовать его в Renderscript так, что он может распознать тип переменной.
user3006812
2

голосов
1

ответ
1.9k

Просмотры

Ошибки при попытке установить 3.3.8 на ГМО Mac OSX

Я пытаюсь установить базовую карту, так что я могу возиться с картами через питон, но я не могу получить GEOS правильно загрузить (PREREQ для базовой карты). Я бегу ./configure, но когда я делаю «SUDO макияж, сделать установку» я получаю следующий вывод об ошибке: LD: Символ (ы) не найдено для архитектуры x86_64 collect2: л.д. возвращается 1 выход статус сделать [2]: ** * [libgeos.la] Ошибка 1 марка [1]: *** [все-рекурсивная] Ошибка 1 марка: *** [все-рекурсивная] Ошибка 1 Создание установки в включают Создание установки в Making установить ГМО в алгоритме Создание установки в обнаружить местонахождение сделать [6]: Ничего не было сделано для `установки-Exec-ам». тест -z "/ USR / местные / включить / GEOS / алгоритм / местонахождение" || ../../../.././install-sh -c -d "/ USR / местные / включить / GEOS / алгоритм / местонахождение" / USR / бен / установка -c -m 644 IndexedPointInAreaLocator.h PointOnGeometryLocator , ч SimplePointInAreaLocator.h '/ USR / местные / включить / GEOS / алгоритм / найти' установить: /usr/local/include/geos/algorithm/locate/IndexedPointInAreaLocator.h: Отказано в Марка [6]: *** [install- geosHEADERS] Ошибка 71 Марка [5]: *** [установить-ам] Ошибка 2 Марка [4]: ​​*** [установить рекурсией] Ошибка 1 замыкающий [3]: *** [установить рекурсией] Ошибка 1 замыкающий [2]: *** [установить рекурсию] замыкающие [1] Ошибка 1: *** [установить рекурсию] Ошибку 1 замыкающие: *** [установить рекурсию] Ошибку 1 я пытался обновляющие мои команды терминальных Xcode , redownloading пакетов и обновление всего остального. Любые идеи о том, как получить это установлено? Извинения, если это легко исправить; новый для питона ... *** [установить-geosHEADERS] Ошибка 71 Марка [5]: *** [установить-ам] Ошибка 2 Марка [4]: ​​*** [установить рекурсией] Ошибка 1 замыкающий [3]: *** [установить -recursive] Ошибка 1 Марка [2]: *** [установить рекурсию] Ошибку 1 марка [1]: *** [установить рекурсию] Ошибку 1 марку: *** [установить рекурсию] Ошибка 1 Я пытался обновить свои команды XCode терминала, redownloading пакетов и обновлению всего остального. Любые идеи о том, как получить это установлено? Извинения, если это легко исправить; новый для питона ... *** [установить-geosHEADERS] Ошибка 71 Марка [5]: *** [установить-ам] Ошибка 2 Марка [4]: ​​*** [установить рекурсией] Ошибка 1 замыкающий [3]: *** [установить -recursive] Ошибка 1 Марка [2]: *** [установить рекурсию] Ошибку 1 марка [1]: *** [установить рекурсию] Ошибку 1 марку: *** [установить рекурсию] Ошибка 1 Я пытался обновить свои команды XCode терминала, redownloading пакетов и обновлению всего остального. Любые идеи о том, как получить это установлено? Извинения, если это легко исправить; новый для питона ... Любые идеи о том, как получить это установлено? Извинения, если это легко исправить; новый для питона ... Любые идеи о том, как получить это установлено? Извинения, если это легко исправить; новый для питона ...
stensy
3

голосов
2

ответ
485

Просмотры

Полоса Z измерения на GeoDjango (Сила 2D геометрия)

В моем проекте я должен импортировать некоторую геометрию из шейпфайлов. Некоторые из них относятся к типу MultiPolygon Z, но все координаты Z являются 0-значение. Когда я пытаюсь сохранить геометрию, я получаю ошибку: «Геометрия имеет Z размерность, но столбец не» Что является лучшим способом, чтобы лишить измерение Z? Мой код: DS = DataSource (путь_к_файл, кодирование = 'ISO-8859-1') слои = DS [0] #need что-то здесь, чтобы заставить геометрию в 2D OBJ = MyModel (геометрия = GEOSGeometry (слои [0] .geom.hex )) obj.save ()
Jônatas Castro
3

голосов
1

ответ
1.6k

Просмотры

How to create a Polygon with holes GEOS library

Я использую библиотеку GEOS, и я пытаюсь создать многоугольник с отверстием в нем. Согласно документации, я должен пройти в LinearRing, который представляет внешнюю «оболочку», и станд :: вектор, который представляет собой отверстие в оболочке. Первый параметр легко, но второй один дает мне неприятность. Многоугольник хочет, чтобы элементы в качестве второго параметра, чтобы быть объектом LineString (LineString является подклассом геометрии); в противном случае, он бросает исключение о том, что объект LineString необходимы для дырок. Если бы я просто бросил объект LineString к геометрии, то он бросает исключение. Если бы я не бросил его, я получаю ошибку компиляции, говоря, что указатели одного типа не могут быть отлиты в указатели другого типа. Я не могу понять, что делать здесь. Вот краткий пример кода, который демонстрирует ошибку: GEOS :: геого :: CoordinateSequence * температура = заводскую> getCoordinateSequenceFactory () -> создать ((станд :: size_t) 0, 0); TEMP-> добавить (GEOS :: геого :: координат (0, 0)); TEMP-> добавить (ГЕОС :: геого :: Координация (100, 0)); TEMP-> добавить (ГЕОС :: геого :: координат (100, 100)); TEMP-> добавить (GEOS :: геого :: координат (0, 100)); TEMP-> добавить (GEOS :: геого :: координат (0, 0)); GEOS :: геого :: LinearRing * оболочки = заводская> createLinearRing (температура); температура = заводскую> getCoordinateSequenceFactory () -> создать ((станд :: size_t) 0, 0); TEMP-> добавить (GEOS :: геого :: координат (1, 1)); TEMP-> добавить (GEOS :: геого :: Координации (10, 1)); TEMP-> добавить (ГЕОС :: геого :: Координация (10, 10)); TEMP-> добавить (ГЕОС :: геого :: координат (1, 10)); TEMP-> добавить (GEOS :: геого :: координат (1, 1)); GEOS :: геого :: LinearRing * дырка = заводскую> createLinearRing (температура); holes-> push_back ((GEOS :: геого :: Геометрия *) отверстие); фабрично> createPolygon (оболочки, отверстия); Какие-либо предложения?
saiarcot895
5

голосов
3

ответ
927

Просмотры

Heroku PostGIS SyncDB ошибка

У меня возникли проблемы с получением простого приложения GeoDjango работает на Heroku. Я создал расширение PostGIS для моей базы данных, но я не могу запустить SyncDB, не получая следующую ошибку: от django.contrib.gis.geometry.backend импорта геометрии Файл «/app/.heroku/python/lib/python2.7 /site-packages/django/contrib/gis/geometry/backend/__init__.py», строка 14, в"% s ". % Geom_backend) django.core.exceptions.ImproperlyConfigured: Не удалось импортировать определенные пользователем GEOMETRY_BACKEND «ГМО». Любые идеи, что я делаю неправильно? Также кто-нибудь знает учебник для получения простого GeoDjango проект работает на Heroku? Спасибо за вашу помощь
Jeff Ames
12

голосов
1

ответ
4.9k

Просмотры

GeoDjango: Как создать круг, основанный на точке и радиусом

У меня есть следующая (упрощенный) Модель: класс зона (gismodels.Model): имя = gismodels.CharField () поли = gismodels.PolygonField () Я хочу, чтобы создать и сохранить многоугольник, который представляет собой круг, основанный на данную точку и радиус. Единственный способ, которым я могу понять, как добиться этого, чтобы вызвать функцию PostGIS ST_Buffer с использованием сырого SQL. Я действительно надеюсь, что есть еще один способ. Можно ли получить доступ к методам буфера GEOS?
MattRowbum
3

голосов
1

ответ
1.3k

Просмотры

Как мне сделать прямоугольник в GEOS? [закрыто]

Как сделать прямоугольник с помощью C библиотеки GEOS в ++ API?
Richard
2

голосов
0

ответ
1.5k

Просмотры

import shapely.geometry throws AttributeError: function 'GEOSversion' not found

импорт shapely.geometry отлично работает в интерпретаторе, но код не выдает эту ошибку при запуске: AttributeError: функция «GEOSversion» не найдены также пытались импортировать GEOS ImportError: Нет модуль с именем geos` Но Изящный используется для запуска отлично. Не нашли какой-либо пост в отношении этой проблемы в SO. Буду признателен за любую оказанную помощь. Спасибо! Изящный-1.3.2.win-amd64-py2.7.exe установлен по этой ссылке которая должна включать в себя GEOS зависимости. Python 2.7 64bit Anaconda на Win7 64bit. Использование Eclipse с Pydev TraceBack (самый последний вызов последнего): Файл "C: \ ... \ file.py", линия 3, в импорте shapely.geometry Файл «C: \ Users \ AppData \ Local \ Continuum \ Anaconda \ LIB \ сайт-пакеты \ стройные \ геометрии \ __ init__.py "строка 4, в от .base импорта CAP_STYLE, JOIN_STYLE Файл" C:
a r
5

голосов
1

ответ
2.7k

Просмотры

CentOS libgeos хранилище отсутствует

На CentOS 7.3 минимален, пытаясь установить стройным или geopandas требует доступа к https://github.com/libgeos/libgeos libgeos. Попытка установить это через Sudo ням установить libgeos-DEV говорит мне, что этот пакет не доступен. Кажется, что я не хватает хранилища. До сих пор я не смог найти работающий один, как http://trac.osgeo.org/geos указывает на https://yum.postgresql.org/repopackages.php#pg96 для RPM, но все же после оборотов -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm кандидат установка не найден.
Georg Heiler
2

голосов
1

ответ
467

Просмотры

OSError при попытке установить пип стройные внутри контейнера Докер

Не удалось найти библиотеку geos_c или загрузить любой из его вариантов [ «libgeos_c.so.1», «libgeos_c.so»] с помощью Python: 3.5.1 изображения Я пытаюсь запустить контейнер, который включает в себя среди прочего, он устанавливает в требованиях .txt стройным. Когда контейнер докера пытается установить стройным я получаю вышеуказанную ошибку. RUN APT-получить установку libgeos-DEV было то, что я видел, пытаясь найти вопрос, но который возвращает не удалось найти пакет libgeos-DEV Резюме: ожидается условия: в том числе стройным в результатах requirements.txt файлов модулей стройные устанавливается, когда контейнер докер является встроенные фактические условия: сообщение об ошибке будет получено во время сборки не удалось найти библиотеку geos_c или загрузить любого из его вариантов [ «libgeos_c.so.1», «libgeos_c.so»] шаги по воспроизведению: использование Докер-композ построить на Docker- compose.yml: приложение: сборка:
lathomas64
1

голосов
1

ответ
1.9k

Просмотры

Проверка версия / если установлен Proj4 [закрытый]

Я действительно нового в работе с геопространственной библиотек, и я был в состоянии установить GDAL и PostGIS уже. Я просто хотел, чтобы проверить, был ли я действительно в состоянии включать в себя пакеты Геос и Proj4, что является необходимым условием для PostGIS. Какие команды линии я должен ввести, чтобы проверить их версии или, если они установлены? Спасибо! Edit (я просто нужно проверять Proj4): PostGreSQL версия: $ PSQL --version PostGIS версии: Подключение к базе данных = # SELECT, PostGIS_full_version (); GDAL версия: $ GDAL-инфо --version GEOS версии: $ GEOS-конфигурации --version
Reiion
2

голосов
1

ответ
626

Просмотры

Как установить GEOS с родными креплениями Руби?

GEOS является порт C ++ в Java топологии Suite. Это позволяет геометрии и геопространственной обработки, и библиотека под PostGIS PostgreSQL. Я хочу работать с ним непосредственно в Ruby, а не в PostGIS, и я знаю, что есть родные привязки Рубина, но в документации на сайте разрежен, и установка глючит. Как установить GEOS с креплениями на Ruby включен?
user22a6db72d7249
2

голосов
2

ответ
826

Просмотры

Heroku buildpack для Python / GEOS

Я бег моего Джанго приложения на Heroku. Я хочу использовать их websolr плагин для добавления пространственного поиска в приложение через Джанго стоге сена. Пространственная SERACH в Джанго стоге зависит от библиотеки GEOS C, не развернут на Heroku по умолчанию. Поэтому для того, чтобы использовать пространственный поиск Я последовал https://devcenter.heroku.com/articles/buildpack-binaries создать двоичный пакет GEOS. Для развертывания бинарных файлов я раздвоенные на Heroku buildback для питона и модифицированные бен / компилировать включать: AWESOME_VM_BINARY = «http://vulcan-dtornow.herokuapp.com/output/05391114-f314-4aa7-9aab-bc09025d4898» MkDir -p / приложение / .heroku / поставщика / GEOS локон $ AWESOME_VM_BINARY -o - | деготь -xz -C /app/.heroku/vendor/geos -f - Я добавил пользовательские сборки пакета в моем приложении, перераспределен, но до сих пор я не могу получить доступ к библиотеке. Когда я бегу Ls папка GEOS не отображается Heroku запустить LS / приложение /. Heroku / поставщику Любая идея, что я не хватает? Спасибо за вашу помощь!
Dominik Tornow
3

голосов
3

ответ
2.3k

Просмотры

«Модуль» объект не имеет атрибута «OSMGeoAdmin»

, 'C: \\ python27 \\ Lib \\ сайт-пакеты \\ win32 \\ Lib', 'C: \\ \\ python27 Lib \\ пакетов участка \\ Pythonwin', «C: \\ \\ python27 Lib \\ пакетов участка \\ Setuptools-0.6c11-py2.7.egg-инфо»несколько aswers я был в состоянии найден послал меня пересмотреть установку GDAL и путь, но это правильно следующим образом: установить OSGEO4W_ROOT = C: \ OSGeo4W набор GEOS_LIBRARY_PATH =% OSGEO4W_ROOT% \ Bin набор GDAL_DATA =% OSGEO4W_ROOT% \ доля \ GDAL OH! что-то еще, когда я нахожусь в питона и попытаться вызвать admin.py >>> импорт django.contrib.gis >>> импорт админ Traceback (самый последний вызов последнего): Файл «», линия 1, в ImportError: модуль не назван админ Я работаю для некоммерческого проекта, и некоторые из них помощников, но много работы предстоит сделать, поэтому, пожалуйста, любая идея, вокруг этого будет очень appreaciated. На основе Роб Уотерс \ OSGeo4W \ доля \ GDAL GEOS_LIBRARY_PATH = C: \ OSGeo4W \ бен GEOTIFF_CSV = C: \ OSGeo4W \ доля \ epsg_csv. , , HOME = / cygdrive / с / Пользователи / Holanda HOMEDRIVE = C: HOMEPATH = \ Users \ Holanda JAVA_HOME = C: \ OSGeo4W \. , , OSGEO4W_ROOT = C: \ OSGeo4W PATH = / дом / Holanda / __ prjs / ourfield / ве / Scripts: / cygdrive / с / python27: / cygdrive / с / python27 / Scripts: / USR / бен: / cygdrive / с / Program Files / Common Files / Microsoft Shared / Windows Live: / cygdrive / с / Program Files (x86) / Common Files / Microsoft Shared / Windows Live: / cygdrive / с / Program Files (x86) / NVIDIA Corporation / PhysX / Общие: / cygdrive / с / Windows / system32: / cygdrive / с / Windows: / cygdrive / с / Windows / System32 / Wbem: /cygdrive/c/Windows/System32/WindowsPowerShell/v1.0: / cygdrive / с / Program Files (x86) / Common Files / Acronis / SnapAPI: / cygdrive / с / _tech / _mysql / бен: / cygdrive / с / мастеров / Console2 / бен / выпуск: / cygdrive / с / Program Files / Java / jdk1.7.0 / бен / бен: / Cygdrive / с / Program Files (x86) / Microsoft SQL Server / 100 / Инструменты / Binn: / cygdrive / с / Program Files (x86) / Microsoft SQL Server / 100 / DTS / Binn: / cygdrive / с / _tech / Utils : / cygdrive / с / MinGW / бен: / cygdrive / с / Program Files (x86) / QuickTime / QTSystem: / cygdrive / с / Program Files (x86) / Windows Live / Shared: / cygdrive / с / Program Files (x86 ) / QuickTime / QTSystem: / cygdrive / с / Program Files / Git / CMD: / cygdrive / с / python27 / Lib / сайт-пакеты / MySQLdb: / cygdrive / с / Program Files / MySQL / MySQL Server 5.5 / бен: / cygdrive / с / OSGeo4W / бен: / cygdrive / с / Пользователи / Holanda / AppData / Roaming / Python / Сценарии: / cygdrive / с / OSGeo4W / бен: / cygdrive / с / OSGeo4W / приложения / MSYS / бен PATHEXT = .COM ; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .wsf; .wsh; .msc; .py; .pyw. , , PROJECTS_ROOT = C: \ Cygwin \ главная \ Holanda \ __ prjs PROJECT_NAME = ourfield PROJECT_ROOT = C: \ Cygwin \ дом \ Holanda \ __ prjs \ ourfield PROJ_LIB = C: \ OSGeo4W \ доля \ проектируемый ПОДСКАЖИТЕ = (ве) $ P $ G PSModulePath = C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules \ PUBLIC = C: \ Users \ Public PYTHONPATH = C: \ Cygwin \ главная \ HOLANDA \ __ prjs; C: \ Cygwin \ главная \ Holanda \ __ prjs \ ourfield; C: \ Cygwin \ главная \ Holanda \ __ prjs \ ourfield \ части; C: \ Cygwin \ главная \ HOLANDA \ __ prjs \ ourfield \ приложения; C: \ Cygwin \ главная \ Holanda \ __ prjs \ ourfield \ ве \ Lib; C: \ Cygwin \ главная \ Holanda \ __ prjs \ ourfield \ ве \ Lib \ сайт-пакеты; C: \ python27; C: \ python27 \ Lib; C: \ python27 \ Lib \ сайт-пакеты; C: \ OSGeo4W \ бен PYTHONSTARTUP = ~ / .pythonrc PYTHON_ROOT = C: \ python27 QTJAVA = C: \ Program Files (x86) \ Java \ jre6 \ Lib \ вн \ QTJava.zip QT_PLUGIN_PATH = C : \ OSGeo4W \ приложения \ Qt4 \ плагинов QT_RASTER_CLIP_LIMIT = 4096. , , VBOX_INSTALL_PATH = C: \ Program Files \ Oracle \ VirtualBox \ VIRTUAL_ENV = C: \ Cygwin \ главная \ Holanda \ __ prjs \ ourfield \ ве VS90COMNTOOLS = C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ Tools \ WINDIR = C: \ Windows. , , TERM = Cygwin
Holanda Corella
1

голосов
1

ответ
142

Просмотры

Геос рубин - Создать точку

Я изо всех сил, используя библиотеку GEOS для Ruby, я просто хочу, чтобы создать простую точку с IRB. требует GEOS возвращает истину, так что установка работает. Но я действительно не понимаю, документации и ничего не помогает на странице GitHub. Я попытался GEOS :: Point.new ( 'POINT (0 0)'), но она возвращает TypeError: аллокатор неопределенного для Геос :: Точка
3

голосов
0

ответ
500

Просмотры

Ошибки функции GeoDjango GEOS API Abort Trap GEOS

Я бегу в некоторых повторяющихся проблем в моих GeoDjango приложений, которые, кажется, происходящий с GEOS. Я получаю ошибки, которые не включают в себя информацию трассировки стека, поэтому я не уверен, как идти об отладке их. Я был в состоянии изолировать проблему на определенные команды, которые используют GEOS. UPDATE: ниже еще более простой тест, который дает мне ошибку. Я сомневаюсь, что это даст вам ошибку, и я сильно подозреваю, что это связано с моей машиной, мое окружение, или мой билд GEOS. Любые советы о том, как работать через это очень ценятся. >>> от импорта django.contrib.gis.geos многоугольник, MultiPolygon >>> p1 = Polygon (((0, 0), (0, 1), (1, 1), (0, 0))) GEOS_ERROR: Shell не LinearRing Traceback (самый последний вызов последнего): Файл "", строка 1, в файле «/ Users / Benjamin / проекты / artgeese / Библиотека / python2. __name__) GEOSException: Ошибка проверки геометрии возвращается из функции ГЕОС C «GEOSGeom_createPolygon_r». Вот разбивка видов ошибок я встречая >>> бассейны = GroundWater.objects.all () >>> Geoms = [b.geom () для б в бассейнах] >>> геом = геометрия [3] >> > типа печати (геом) >>> многоугольник = geom.cascading_union # это нормально >>> типа печати (многоугольник) >>> печати многоугольник # это получает следующее сообщение об ошибке и завершает работу Assertion DEV сервера: (0), функция appendGeometryTaggedText, файл WKTWriter.cpp, строка 228. прекратить ловушку >>> печати polygon.num_interior_rings # вызывает ошибку, не останавливает GEOS_ERROR сервера: Аргумент не Polygon и возникла ошибка в функции GEOS C «GEOSGetNumInteriorRings_r». >> > Печать polygon.coords # вызывает ошибку, не останавливает GEOS_ERROR сервера: Аргумент не Polygon и возникла ошибка в GEOS C функции «GEOSGetNumInteriorRings_r». >>> печать polygon.valid GEOS_ERROR: UnsupportedOperationException: Ошибка в функции предиката GEOS C "GEOSisValid_r". Любые идеи о том, как я могу разрешить или отладить эту ситуацию? Спасибо! Обратите внимание, что эта проблема не является особенностью этого многоугольника. Если я выбираю любую другую функцию, я получаю ту же ошибку. Вот статистика по окружающей среде: Mac OS X 10.6.8 == Python == 2.7.1 Django == 1.4.2 psycopg2 == 2.4.5 postgis_full_version ---------------- -------------------------------------------------- --------------- PostGIS = "1.5.1" GEOS = "3.2. 2-АЛОК-1.6.2" PROJ = "Rel. 4.7.1, 23 сентября 2009" Libxml = "2.7.3" Я установить GEOS и GDAL с использованием KyngChaos бинарных файлов и иметь их на моем систему экспорта пути PATH = / Library / Frameworks / GDAL.framework / Версия / 1,9 / Python / сайт-пакеты: $ PATH экспорт PATH = / Library / Frameworks / UnixImageIO.framework / Программа: $ PATH экспорт PATH = / Library / Frameworks / PROJ.framework / Программа: $ PATH экспорт PATH = / Library / Frameworks / GEOS.framework / Программа: $ PATH экспорт PATH = / Library / Frameworks / SQLite3.framework / Программа: $ PATH экспорт PATH = / Library / Frameworks / GDAL.framework / Программа: $ PATH экспорт PATH = / USR / местные / PgSQL / бен: $ ПУТЬ [EDIT: по запросу, геометрия непосредственно из базы данных в качестве WKT]
BenjaminGolder
3

голосов
1

ответ
4.3k

Просмотры

Как преобразовать GEOS MultiLineString в многоугольник с помощью Python?

Я разрабатываю приложение GeoDjango, где пользователи могут загружать файлы карты и сделать некоторые основные операции отображения, например, запрос функции внутри полигонов. Я узнал, что пользователи случиться, чтобы загрузить «MultiLineString» ы вместо «Полигон» с иногда. Это приводит к тому, запросам, ожидающим закрытые геометрии на провал. Что является лучшим способом для преобразования объекта MultiLineString в многоугольник в Python? Благодарю. - Omat
omat
3

голосов
2

ответ
583

Просмотры

Операции Геометрия SpeedUp GEOS в: GeoDjango

Я занимаюсь разработкой пространственного ранжирования приложения с использованием GeoDjango + PostGIS. В основном то, что он делает то, что он извлекает все геометрические формы в пределах ограничивающего поля запроса, вычисляет оценку подобия с помощью пользовательской функции я создал, а затем вернуть форму с топ-самыми баллами. В настоящее время туда и обратно раз в каждом запросе происходит очень медленно. Запуск профилировщика показывает, что узкое место из threadsafe.py, которые называются операциями GEOSGeometry (т.е. пересекается, союзы, содержит и т.д.) внутри моей функции подобия. Вот пример профилировщик результат от одного запроса. Похоже, что поточно-природа GEOSGeometry является то, что вызывает проблемы производительности здесь. Индивидуально, операция с 40ms не кажется большим делом, а потому, что число форм для сравнения с запросом, как правило, большие, т.е. ~ 1000 фигур, 40мс-операция добавляет до 40 сек. Поэтому мой вопрос, как я могу оптимизировать функцию, чтобы минимизировать время обработки. Некоторые из моих первоначальных идей: Выключайте / избежать проверок theadsafety из GEOSGeometry, так как эти объекты являются временными и не являются общими для любого другого потока. Это будет идеальный случай, если это возможно, так как большинство времени, потраченное в настоящее время находится в threadsafe.py Использовать другую геометрию API, который не является treadsafe. Выполнение пространственных операций на уровне PostGIS вместо уровне объекта. Это сделает код выглядит некрасиво, хотя. (Обновления: Этот параметр не работает Накладные одних только запросов SQL сделать операцию еще медленнее.). Что вы думаете? Выключите / избежать проверок theadsafety из GEOSGeometry, так как эти объекты являются временными и не являются общими для любого другого потока. Это будет идеальный случай, если это возможно, так как большинство времени, потраченное в настоящее время находится в threadsafe.py Использовать другую геометрию API, который не является treadsafe. Выполнение пространственных операций на уровне PostGIS вместо уровне объекта. Это сделает код выглядит некрасиво, хотя. (Обновления: Этот параметр не работает Накладные одних только запросов SQL сделать операцию еще медленнее.). Что вы думаете? Выключите / избежать проверок theadsafety из GEOSGeometry, так как эти объекты являются временными и не являются общими для любого другого потока. Это будет идеальный случай, если это возможно, так как большинство времени, потраченное в настоящее время находится в threadsafe.py Использовать другую геометрию API, который не является treadsafe. Выполнение пространственных операций на уровне PostGIS вместо уровне объекта. Это сделает код выглядит некрасиво, хотя. (Обновления: Этот параметр не работает Накладные одних только запросов SQL сделать операцию еще медленнее.). Что вы думаете? Это сделает код выглядит некрасиво, хотя. (Обновления: Этот параметр не работает Накладные одних только запросов SQL сделать операцию еще медленнее.). Что вы думаете? Это сделает код выглядит некрасиво, хотя. (Обновления: Этот параметр не работает Накладные одних только запросов SQL сделать операцию еще медленнее.). Что вы думаете?
ejel
2

голосов
2

ответ
1.4k

Просмотры

Как установить на ГМО DEBiAN Raspberry Pi

Привет Я пытаюсь установить на ГМО Raspberry Pi работает rasbian хриплым, так что я могу включать вставные модули в моем питоне сценариях. Я попытался с помощью: Git клон мерзавца: //git.debian.org/git/pkg-grass/geos это загружает правильно, но когда я пытаюсь запустить мой питон скрипт, дает мне ошибку говоря обратное прослеживание OSError: Не удалось найти библиотеку geos_c или загрузить любого из его вариантов [ «libgeos_c.so.1», «libgeos_c.so»] я поставил в ГМО неположенном месте? есть специальный способ для создания файлов? Спасибо за вашу помощь!
user2605054
2

голосов
1

ответ
151

Просмотры

order_by ( «- расстояние») не работает, как ожидалось

Я пытаюсь сделать запрос к базе данных, что дает мне 20 ближайших пользователей заказанных на расстоянии (так ближе всего первым) я делаю происходит некорректно distance_mi = 100 происхождения = GEOSGeometry ( «SRID = 4326;» + «POINT (» ул (user_profile + .current_location.x) + ' '+ Str (user_profile.current_location.y) +')') close_users = UserProfile.objects.exclude (пользователь = пользователь) .filter (current_location__distance_lte = (происхождение, D (MI = distance_mi))) .distance (происхождение) .order_by ( «- расстояние») [20], но это возвращается 3 пользователей (что правильно), но первый пользователь 0 миль прочь, второй 8 миль прочь и третий 0 миль прочь где, как я исключая ми 8 пользователя, чтобы быть в самом конце. Я не уверен, что я делаю неправильно в этом. Кроме того, UserProfile имеет следующую модель класса UserProfile (models.Model): требуется # Это поле. пользователь = модель.
Jonathan
2

голосов
1

ответ
665

Просмотры

Изящные перекрестки против стройных отношений - неточны?

Привет Интересно, если я имею в виду неправильный путь или если это ошибка: У меня есть LineString и полигон, создать точки пересечения линии и границы многоугольника Эти точки пересечения должны пересекаться (по крайней мере, сенсорными) граница полигона , право? от стройной геометрии импорта, WKT линии = geometry.LineString ([(13,51039642756912, 52,598912814414675), (+13,525173800277184, 52,60620240344557)]) поли = geometry.Polygon ([(+13,52072838433517, 52,61735554606274), (+13,52233276805985, 52,59511541819082), (13,51312087418833, +52,59394589806786) (13,51526963068252, +52,60338701649216), (+13,51836560008325, 52,6009395669487), (+13,52072838433517, +52,61735554606274)]) изобр = line.intersection (poly.boundary) для г в изобр: печать i.touches (poly.boundary) # должны касаться, но оно не !!!! >>> Ложные
sal
2

голосов
1

ответ
472

Просмотры

Ubuntu 14.04, Ruby on Rails, and GEOS

I am having a little trouble getting my Ruby on Rails app to recognise the GEOS installation on Ubuntu 14.04. The error message that I am getting is; GEOS is not available, but is required for correct interpretation of polygons in shapefiles. I'm using the 'rgeo' gem and I understand this to mean (from my own Googling) that rgeo can't find the GEOS installation. Indeed, via the Rails console, this is confirmed; Loading production environment (Rails 4.2.1) 2.1.2 :001 > RGeo::Geos.supported? => false 2.1.2 :002 > RGeo::CoordSys::Proj4.supported? => true I initially followed these instructions to get GEOS / Proj4 installed; https://gist.github.com/robinkraft/2a8ee4dd7e9ee9126030 When that didn't work I found this post; https://github.com/rgeo/rgeo/issues/26 And added the recommended symlinks; -rw-r--r-- 1 root root 1588288 Apr 7 2014 /usr/lib/libgeos-3.4.2.so -rw-r--r-- 1 root root 259680 Apr 7 2014 /usr/lib/libgeos_c.a lrwxrwxrwx 1 root root 18 Apr 7 2014 /usr/lib/libgeos_c.so -> libgeos_c.so.1.8.2 lrwxrwxrwx 1 root root 18 Apr 7 2014 /usr/lib/libgeos_c.so.1 -> libgeos_c.so.1.8.2 -rw-r--r-- 1 root root 146632 Apr 7 2014 /usr/lib/libgeos_c.so.1.8.2 lrwxrwxrwx 1 root root 31 Jul 4 11:30 /usr/lib/libgeos.so -> /usr/local/lib/libgeos-3.3.8.so lrwxrwxrwx 1 root root 31 Jul 4 11:35 /usr/lib/libgeos.so.1 -> /usr/local/lib/libgeos-3.3.8.so And despite all of this I still get RGeo::Geos.supported? returning 'false'. I get the feeling that this shouldn't be this hard (and that I am missing something elementary) - but am at a bit of a loss. Any help would be greatly appreciated. :) Thanks in advance, Ben
benjimix
3

голосов
3

ответ
2.3k

Просмотры

SpatiaLite для Android NDK Строить

Я имею немного неприятности с билда существующего проекта по адресу: http://code.google.com/p/spatialite-android/ Я использую Win7 и Cygwin я получить исходный код путем клонирования с использованием «GIT для Windows». Размещение его в C: \ Temp \ ECLIPSE \ рабочее место \ SA1 загрузить следующее: http://download.osgeo.org/geos/geos-3.2.2.tar.bz2 ftp://ftp.remotesensing.org/ проектируемый / проектируемый-4.7.0.tar.gz я помещаю их в C: \ Temp \ ECLIPSE \ рабочее место \ SA1 \ SpatiaLite-андроида библиотека \ JNI Я затем запустить Cygwin и выполните следующие действия: $ кд C: / Temp / затмение / рабочее пространство / SA1 / SpatiaLite-андроида-библиотека / JNI $ деготь xvjf GEOS-3.2.2.tar.bz2 $ кд GEOS-3.2.2 $ ./configure --build = x86_64-рс-Linux-гну --host = арм-линукс-EABI Вне Cygwin, я открываю в редакторе: C: \ Temp \ ECLIPSE \ рабочее пространство \ SA1 \ SpatiaLite-андроида библиотека \ JNI \ GEOS-3.2.2 \ источник \ заголовков \ Геос \ платформы.
Hank
2

голосов
1

ответ
330

Просмотры

Пункт установить --global-вариант = «- L / »: опция не -L recongnised

Я пытаюсь установить cartopy на машине Windows, и ранее установленные QGIS и GEOS через OSGeo4W64. Теперь, когда я пытаюсь устанавливать cartopy, я получаю следующую ошибку: Фатальная ошибка: файл «geos_c.h» не найден Как уже упоминалось, GEOS существует и файл также можно найти в каталоге. Я испытанный даю ПГАМ абсолютному путь к библиотеке как глобальный вариант, следующим образом: пипу установить --global-вариант = «- Lc: \ OSGeo4W64 \ включает» Это, к сожалению, не работает, потому что Пип не признает опция -L библиотека: ошибка: параметр не -L распознан. Я попытался -I, -l и -i, а также, просто чтобы посмотреть, что произойдет, но я получаю ту же ошибку каждый раз. Я также нашел примеры того, как дать пути к глобальному-опциону и они используют -L и -I без проблем. Что я могу делать неправильно? Любая помощь будет принята с благодарностью.
Kirjain

Просмотр дополнительных вопросов