Я пытался оценить использование OrientDB для наших пространственных данных. Я использую следующую версию:Как использовать хранимую геометрию в пространственных функциях?
OrientDB: orientdb-community-2.2.0-20160217.214325-39
OrientDB-Spatial: JAR built from develop branch of the github Repo OS:
Win7 64Bit
Прямо сейчас, что я должен был сделать, если у меня есть полигоны, хранящиеся в БД, а вход местоположение (широта & долгота), то мне нужно, чтобы получить многоугольник, который содержит это местоположение.
Я создал класс для хранения государственных полигонов, как это:
CREATE class state
CREATE PROPERTY state.name STRING
CREATE PROPERTY state.shape EMBEDDED OPolygon
Я Поставлен государство с помощью следующей команды:
INSERT INTO state SET name = 'Center', shape = ST_GeomFromText('POLYGON((77.16796875 26.068502530912397,75.7177734375 21.076171072527064,81.650390625 19.012137871930328,82.9248046875 25.196864372861896,77.16796875 26.068502530912397))')
Я попытался несколько способов получения состояния, которое содержит заданный latlong, но все они дают ошибку.
Даже как-то просто, как:
SELECT from state WHERE ST_Contains(shape, ST_GeomFromText('POINT(77.420654296875 23.23929558106523)'))
дает следующее сообщение об ошибке:
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error parsing query: SELECT from state WHERE ST_Contains(shape, ST_GeomFromText('POINT(77.420654296875 23.23929558106523)')) Encountered "" at line 1, column 25. Was expecting one of: Storage URL="plocal:E:/DevTools/OrientDB2.2_new/databases/spatial" Storage URL="plocal:E:/DevTools/OrientDB2.2_new/databases/spatial" --> com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Encountered "" at line 1, column 25. Was expecting one of: Storage URL="plocal:E:/DevTools/OrientDB2.2_new/databases/spatial"
я могу запустить все пространственные функции, когда я вхожу геометрию непосредственно в пространственной функции, такие как:
Select ST_Contains(ST_geomFromText('POLYGON((77.16796875 26.068502530912397,75.7177734375 21.076171072527064,81.650390625 19.012137871930328,82.9248046875 25.196864372861896,77.16796875 26.068502530912397))'), ST_GeomFromText('POINT(77.420654296875 23.23929558106523)'))
Я просто не могу понять, как заставить эти функции работать на фигурах, которые ar e хранится как свойства в записях.
Как хранятся геометрии, которые будут использоваться в этих пространственных функциях? Есть ли другой синтаксис для этого?
Спасибо! Оно работало завораживающе –