我是PostgreSQL和PostGIS的新手.我想在PostgreSQL 9.1.1数据库表中存储纬度和经度值.我将计算两点之间的距离,通过使用此位置值找到更近的点.
我应该将哪种数据类型用于纬度和经度?
我正在尝试用Postgis创建表.我是通过这个页面来做的.但是当我导入postgis.sql文件时,我收到了很多错误:
ERROR: type "geometry" does not exist
Run Code Online (Sandbox Code Playgroud)
有谁知道我该怎么办?
经过几年的oracle回到postgresql ...
什么是最先进的postgresql管理/ ddl生成/数据在Windows上插入前端?如果它也与postgis集成,那将是很好的.它应该是独立的,或者是intellij idea的插件
回想一下,我用过的所有专门用于postgresql的windows程序都是垃圾,特别是PGAdmin.它变得更好了吗?
编辑:我已经使用Postgres和PostGIS几个月了,我很满意.
我需要分析几百万个地理编码记录,每个记录都有纬度和经度.这些记录包括至少三种不同类型的数据,我将试图看看每一组是否影响另一组.
什么数据库最适合所有这些数据的底层数据存储?这是我的愿望:
我已经使用MySql进行了一些开发,但如果有必要我可以更改.
我有详细的美国县地图,来自TIGER LINE数据集.我如何对数据进行采样,平滑或降级,以便我得到更直,更宽松,更少"嘈杂"的形状来表示地理特征 - 在这种情况下只是县界和州界线,但也可能在一般情况下?
如果可以有效地完成采样,则可以在渲染时发生采样,或者可以生成并存储并行数据集.我正在使用PostGIS,并且这些线是由shp2pgsql
- 生成的多折线- 但是任何解决方案都是非常有用的,你可以采用波浪线并将其缩小到与人类解释器大致相同的平滑线.
我正在使用Hibernate/JPA来执行本机PostGIS查询.这些查询的问题是它们需要的参数不是经典的X ='value'形式.
例如,以下行崩溃
String queryString = "select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(:lon :lat)'),4326), 0.1)";
Query query = Cell.em().createNativeQuery(queryString, Cell.class);
query.setParameter("lon", longitude);
query.setParameter("lat", latitude);
play.exceptions.JavaExecutionException: org.hibernate.QueryParameterException: could not locate named parameter [lon]
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:259)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [lon]
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:358)
Run Code Online (Sandbox Code Playgroud)
但是,以下查询有效:
String queryString = String.format("select * from Cell c where ST_DWithin(c.shape, SetSRID(ST_GeomFromEWKT('POINT(%f %f)'),4326), 0.1)", longitude, latitude);
Query query = Cell.em().createNativeQuery(queryString, Cell.class);
Run Code Online (Sandbox Code Playgroud)
(但它易于SQL注入......)
有谁知道setParameter()
在这种情况下如何使用?
我正在尝试在Django中运行单元测试,它会创建一个新的数据库.数据库有postgis扩展,当我经常创建数据库时,我使用"CREATE ExTENSION postgis".
但是,当我运行测试时,它会给我以下错误:
$ ./manage.py test
Creating test database for alias 'default'...
Got an error creating the test database: database "test_project" already exists
Type 'yes' if you would like to try deleting the test database 'test_project', or 'no' to cancel: yes
Destroying old test database 'default'...
DatabaseError: permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
Run Code Online (Sandbox Code Playgroud)
用户已经具有Create DB权限,我在Ubuntu 12.04上使用Postgis 2.0使用PostgreSQL 9.1.
几乎所有PostGIS中的功能都以ST开头.例如ST_Distance_Sphere,ST_GeomFromText,ST_Intersection等.
ST是什么意思?
http://www.postgis.org/documentation/manual-svn/PostGIS_Special_Functions_Index.html
我正在尝试将一个SHP文件放入我的PostGIS数据库中,数据有点偏差.我想这是因为我使用了错误的SRID.PRJ文件的内容如下:
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]]
Run Code Online (Sandbox Code Playgroud)
SRID与此相关的是什么?更一般地说,如何根据PRJ文件中的信息查找SRID?在某个地方是否有一个列出所有SRID及其"geogcs"等价物的查找表?
作为参考,这里是使用导入的一些数据的图像srid=4269
(我也尝试了4326并获得了完全相同的结果):
图片http://img245.imageshack.us/img245/2545/4326sand.png
黄色是我从SHP导入的数据,背景来自openlayers(来自geodjango admin).这是否意味着我使用了错误的SRID,或者这只是预期的误差范围?
shp文件来自这里