标签: postgis

如何将纬度/经度对转换为PostGIS地理类型?

我正在尝试将一堆纬度/经度对加载到PostGIS地理类型中,以便能够按位置进行查询.

特别是我有一个浮动纬度和经度列和一geography(Point, 4326)列的表.我想要做

update mytable set geography = ???
Run Code Online (Sandbox Code Playgroud)

文档似乎表明以下内容应该有效:

update mytable set geography = ST_GeogFromText('POINT(' || latitude || ' ' ||
                                                           longitude || ')');
Run Code Online (Sandbox Code Playgroud)

它没有.我不知道它是什么意思解释这一点,但它只允许经度介于-90和90之间,所以它显然不是经度.

那么,我该怎么办?

database gis postgresql postgis

31
推荐指数
3
解决办法
2万
查看次数

Postgis几何边界上的两个最近点

我有一个geofences存储geometry多边形的表.

我还有一个A在几何体内部的点.我要做的是找到A位于多边形几何体表面上的点的两个最近点.

PostGIS中的功能:

CREATE OR REPLACE FUNCTION accuracyCheck(Polygon geometry
                                        ,decimal lat
                                        ,decimal lon)
  RETURNS VARCHAR AS
$BODY$

DECLARE height DECIMAL;
DECLARE accuracy VARCHAR(250);

BEGIN 

CREATE TEMPORARY TABLE closePointStorage AS
SELECT ST_AsText(ST_ClosestPoint(geometry
                                ,ST_GeomFromText('POINT(lat lon)',0)
                                )
                ) AS closestPoint
FROM  (
   SELECT ST_GeomFromText(geometry) as geometry
   FROM gfe_geofences
   WHERE is_active=true
   ) As tempName;

CREATE TEMPORARY TABLE areaStorage ON COMMIT DROP AS
SELECT ST_Area(ST_GeomFromText('Polygon((23.0808622876029 96.1304006624291
                                        ,28.0808622876029 99.1304006624291
                                        ,100              200
                                        ,23.0808622876029 96.1304006624291
                                        ))'
                              ,0)
              ) AS area; …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis plpgsql

29
推荐指数
1
解决办法
2002
查看次数

Postgis/Geodjango:无法确定数据库的PostGIS版本

我正在尝试推出GeoDjango应用.我在Lion上使用brew安装了Postgres和PostGIS.我创建使用template_postgis数据库:createdb -T template_postgis test.

当我运行时python manage.py syncdb,我收到以下错误:

django.core.exceptions.ImproperlyConfigured:无法确定数据库"test"的PostGIS版本.GeoDjango至少需要PostGIS 1.3版.是否从空间数据库模板创建了数据库?

如何追踪错误来源?我已经检查过用户和传递配置是否可以访问数据库等.

django postgresql postgis geodjango

27
推荐指数
3
解决办法
1万
查看次数

获取几何字段的SRID

我有一个包含一些几何类型的表,并且需要能够返回给定字段的SRID.我怎样才能做到这一点.我有一个搜索,但我能找到的是改变SRID的功能.在Oracle中我这样做:

A.CLUSTER_EXTENT.SDO_SRID 
Run Code Online (Sandbox Code Playgroud)

PostGIS中是否有等效功能?

postgis

27
推荐指数
1
解决办法
3万
查看次数

在Amazon RDS上设置PostGis

好吧,所以我对RDS和AWS来说相当新,但我不能为我的生活,把我在笔记本电脑上创建的数据库,到亚马逊RDS,我确实把它移到我的测试VPS和我的台式机,没有任何问题,这是我到目前为止所尝试的..

create extension postgis;
create extension fuzzystrmatch;
create extension postgis_tiger_geocoder;
create extension postgis_topology;
alter schema tiger owner to rds_superuser;
alter schema topology owner to rds_superuser;

CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN     $1; END; $f$;
SELECT exec('ALTER TABLE ' || quote_ident(s.nspname) || '.' || quote_ident(s.relname) || ' OWNER TO rds_superuser')
  FROM (
    SELECT nspname, relname
    FROM pg_class c JOIN pg_namespace n ON (c.relnamespace = n.oid) 
    WHERE nspname in ('tiger','topology') AND
    relkind IN ('r','S','v') …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis amazon-web-services amazon-rds

26
推荐指数
2
解决办法
2万
查看次数

Hibernate Spatial 5 - GeometryType

将Hibernate-spatial升级到V5.0.0.CR2后,以下声明不再起作用:

@Column(columnDefinition = "geometry(Point,4326)")
@Type(type = "org.hibernate.spatial.GeometryType")
private Point position;
Run Code Online (Sandbox Code Playgroud)

与:

org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.spatial.GeometryType]
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,Jar-File中不再存在该类.GeometryType发生了什么,它是如何被替换的?或者是否包含另一个jar文件?

编辑:澄清.我正在将Hibernate-Spatial与PostgreSQL-Postgis数据库结合使用.

java hibernate postgis hibernate-spatial

26
推荐指数
3
解决办法
2万
查看次数

PostgreSQL纬度经度查询

我有PostgreSQL数据库中的表latitudelongitudelocation,我试图用PostgreSQL函数执行距离查询.

我阅读了本手册的这一章:

https://www.postgresql.org/docs/current/static/earthdistance.html

但我想我错过了那里的东西.

我该怎么办?有更多的例子吗?

postgresql postgis

25
推荐指数
4
解决办法
2万
查看次数

如何从clojureql查询postgres Point类型?

如何从clojureql查询postgres Point类型?我希望使用PostGIS功能,但clojureql似乎不包含此功能.

postgresql postgis clojure spatial

23
推荐指数
1
解决办法
843
查看次数

保存geodjango PointField时出错

我有一个带有PointField属性的地理模型.一切都在本地完美,但当我尝试在服务器上保存实例时,我收到以下错误:

django.db.utils.DatabaseError: invalid byte sequence for encoding "UTF8": 0x00
Run Code Online (Sandbox Code Playgroud)

我挖掘了源代码,发现值的序列化方式不同; 具体而言,在服务器上执行查询之前,该值未被转义.它似乎正在进行转义psycopg2.Binary.getquoted(),当然,它不会在服务器上返回正确的值.

在我的机器上:

from psycopg2 import Binary
Binary('\0').getquoted() # > "'\\\\000'::bytea"
Run Code Online (Sandbox Code Playgroud)

在服务器上:

from psycopg2 import Binary
Binary('\0').getquoted() # > "'\\000'::bytea"
Run Code Online (Sandbox Code Playgroud)

好的,这解释了为什么它认为我试图插入一个空字节.(因为我.)所以现在我已经足够了解Jonathan S.在django-users组中找到类似的报告会出现什么问题但是,就像Jonathan一样,我不知道这是错误还是配置错误.

有人能指出我正确的方向吗?

以下是有关设置的一些信息:

          My computer      Server
OS        OSX 10.7         CentOS 5.5
Python    2.7              2.6
Django    1.3              1.3
Postgres  9.0.4            9.9.1
postgis   1.5.2            1.5.3-2.rhel5
geos      3.3.0            3.3.0-1.rhel5
Run Code Online (Sandbox Code Playgroud)

django postgresql postgis psycopg2 geodjango

22
推荐指数
1
解决办法
4143
查看次数

删除Postgres数据库中的所有功能

我有一个数据库,其中安装了旧版的PostGIS.我想轻松删除数据库中的所有功能(它们全部来自PostGIS).有一个简单的方法吗?即使简单地提取函数名列表也是可以接受的,因为我可以做一个大的DROP FUNCTION声明.

postgresql postgis

22
推荐指数
1
解决办法
1万
查看次数