标签: postgis

安装PostGIS的问题

我正在尝试按照以下说明安装PostGIS:

wget http://postgis.refractions.net/download/postgis-1.5.2.tar.gz
tar zxvf postgis-1.5.2.tar.gz && cd postgis-1.5.2/
sudo ./configure && make && sudo checkinstall --pkgname postgis-1.5.2 --pkgversion 1.5.2-src --default
Run Code Online (Sandbox Code Playgroud)

但它没有通过"sudo ./configure"命令.它说的最后一行:

 configure: error: could not find pg_config within the current path. You may need to try re-running configure with a --with-pgconfig parameter.
Run Code Online (Sandbox Code Playgroud)

所以我在网上找到了一个地方,上面写着这样的话:

--with-pgconfig = FILE PostgreSQL提供了一个名为pg_config的实用程序,可以使PostGIS等扩展程序找到PostgreSQL安装目录.使用此参数(--with-pgconfig =/path/to/pg_config)手动指定PostGIS将构建的特定PostgreSQL安装.

我使用"whereis pg_config"搜索pg_config但我找不到它.它是指"/etc/postgresql/9.0/main/pg_hba.conf"文件还是文件夹....?我错过了什么吗?我在这一点上真的很困惑.我想真正的混乱比虚假清晰:).

我正在使用PostgreSQL 9/Ubuntu 10.10.任何帮助将不胜感激.

postgresql ubuntu postgis ubuntu-10.10

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

为什么PostgreSQL在Windows上这么慢?

我们有一个使用MySql运行的applicationg.我们发现的MySql是不适合我们的应用程序后,我们发现,它没有支持一些GIS功能,PostGIS的有(注:MySQL只支持最小边界矩形GIS搜索).

所以我们将数据库更改为PostgreSQL.然后我们发现在Windows上运行的Postgresql 8.2与Mysql 5.1相比要慢得多.慢一点,我的意思是慢了大约4-5倍.

为什么是这样?我们需要更改配置中的某些内容吗?

我发现从其他网站如一些评论:

更新:我们发现缓慢的原因是由于我们插入数据库的BLOB.我们需要能够以10-15 MB/s的持续速率插入BLOB.我们正在为我们插入/读取的每个BLOB使用libpq的lo_read和lo_write.这是最好的方式吗?以前有没有人用Pgsql以高速率插入大型BLOB?

编辑:我听说PgSql刚刚被移植到Windows.这可能是其中一个原因吗?

mysql postgresql performance postgis

13
推荐指数
2
解决办法
9146
查看次数

如何在给定坐标(字符串类型的纬度和经度)中查询最近的记录?

我正在使用GeoDjango和PostGIS.然后我就如何从我的postgres db表中的给定坐标获取最近的记录而遇到麻烦.

python postgresql postgis geodjango

13
推荐指数
3
解决办法
4615
查看次数

数据分级:不规则多边形到常规网格

我有数千个以表格形式存储的多边形(给定它们的4个角坐标),它们代表地球的小区域.另外,每个多边形都有一个数据值.该文件看起来像这样的例子:

lat1,  lat2,  lat3,  lat4,  lon1,   lon2,   lon3,   lon4,   data
57.27, 57.72, 57.68, 58.1,  151.58, 152.06, 150.27, 150.72, 13.45
56.96, 57.41, 57.36, 57.79, 151.24, 151.72, 149.95, 150.39, 56.24
57.33, 57.75, 57.69, 58.1,  150.06, 150.51, 148.82, 149.23, 24.52
56.65, 57.09, 57.05, 57.47, 150.91, 151.38, 149.63, 150.06, 38.24
57.01, 57.44, 57.38, 57.78, 149.74, 150.18, 148.5,  148.91, 84.25
...
Run Code Online (Sandbox Code Playgroud)

许多多边形相交或重叠.现在我想创建一个*m矩阵,范围从-90°到90°纬度和-180°到180°经度,例如0.25°x0.25°,以存储(面积加权)平均数据落在每个像素内的所有多边形的值.

因此,常规网格中的一个像素将获得一个或多个多边形的平均值(如果没有多边形与像素重叠,则为无).每个多边形应该根据其在该像素内的面积分数贡献该平均值.

基本上常规网格和多边形看起来像这样:

在此输入图像描述

如果查看像素2,您会看到这个像素中有两个多边形.因此,我必须考虑它们的面积分数来取两个多边形的平均数据值.然后应将结果存储在常规网格像素中.

我环顾网络,到目前为止找不到令人满意的方法.由于我使用Python/Numpy进行日常工作,我想坚持下去.这可能吗?该软件包匀称看起来很有希望,但我不知道从哪里开始......一切移植到PostGIS的数据库的努力一个可怕的量,我想还会有我的方式相当多的障碍.

python gis postgis numpy scipy

13
推荐指数
1
解决办法
1932
查看次数

PostGIS中多面体与多边形的区别

point和之间有什么区别multipointlinestringmultilinestringpolygonmultipolygon?在PostGIS中

定义"多"形状背后的秘诀是什么?

gis postgis polygon esri

13
推荐指数
1
解决办法
7417
查看次数

Rails Postgis升级问题

我在Mac上通过Homebrew安装了Postgis和Postgresql,我想将我的Postgis版本升级到2.1.0-rc2.我取消了我的postgis版本,然后编辑了postgis自制软件.在新公式未编译之后,我重新链接了旧公式,每当我尝试使用空间列调用数据库表时,我现在收到以下错误:

PG::UndefinedFile: ERROR:  could not load library 
"/usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so":   
dlopen(/usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so, 10): Symbol not found: 
_json_tokener_errors
Referenced from: /usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so
Expected in: /usr/local/lib/libjson.0.dylib
in /usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so
Run Code Online (Sandbox Code Playgroud)

(在执行上述操作之前我没有遇到此问题)我已经重新启动了postgresql服务器,但是没有用.我不确定如何解决这个问题.

postgresql homebrew postgis ruby-on-rails postgresql-9.2

13
推荐指数
1
解决办法
790
查看次数

确定给定折线与一组现有折线的近似重叠

我有一组折线(数字为100,每条折线有大约200-300个顶点).这些代表地图上的路线(如果有帮助,则全部来自Google Maps API).顶点是纬度/经度坐标.

我现在得到一个查询折线,我必须找到查询折线与任何现有折线的"重叠".因此,结果本身将是折线,按最大到最小重叠的顺序排序.我只需要前100个结果左右.另一个问题是重叠不一定是精确的,但可以是近似的(即,被认为是重叠的线段的部分不需要位于另一个上,而是仅需要彼此"接近").

为了给出具体的表示,在下图的左侧部分,蓝色折线(折线A)是数据库中的折线,红色折线(折线B)是查询折线.该算法应确定以粗黑标记的折线,如右图所示.

折线重叠问题描述

我目前倾向于使用空间数据库(正在考虑的选项是PostgreSQL + PostGIS),但我不确定延迟是否可以接受 - 查询需要立即返回结果.我的计算几何 - fu确实很弱,但我想知道:是否有任何现有的算法或方法可能对解决这个特定问题有用?

提前谢谢了!

algorithm google-maps postgis polyline computational-geometry

13
推荐指数
1
解决办法
1575
查看次数

将RGeo列反序列化为SphericalPointImpl

在Rails 4.2.4和activerecord-postgis-adapter 3.1.2中有一个带RGeo列的表

class CreateAddresses < ActiveRecord::Migration
  def change
    create_table :addresses do |t|
      t.st_point :coordinates,   geographic: true, srid: 4326
    end

    add_index :addresses, :coordinates, using: :gist
  end
end
Run Code Online (Sandbox Code Playgroud)

以及按对象位置对对象进行分组的方法

def self.group_by_coords
    includes(:address).
    joins(:address).
    group('addresses.coordinates::geometry').
    pluck(
      'array_agg(realties.id) as ids, addresses.coordinates::geometry'
    )
  end
Run Code Online (Sandbox Code Playgroud)

与相应的测试:

describe 'group_by_coords' do
  it 'correctly group realties' do
    # create samples
    expect(Realty.group_by_coords).to eq(
      [[[r1.id, r2.id], r1.address.coordinates], [[r3.id], r3.address.coordinates]]
    )
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是pluck返回 RGeo::Geos::CAPIPointImpl而不是 RGeo::Geographic::SphericalPointImpl

expected: [[[1670, 1671], #<RGeo::Geographic::SphericalPointImpl:0x3fd37e9b8a20 "POINT (106.0 10.0)">], [[1672], #<RGeo::Geographic::SphericalPointImpl:0x3fd37ab2dddc "POINT (106.5 10.5)">]] …
Run Code Online (Sandbox Code Playgroud)

postgresql activerecord postgis ruby-on-rails-4 rgeo

13
推荐指数
1
解决办法
232
查看次数

在"PARALLEL"或附近创建postgis扩展语法错误

当我尝试在Windows上的postgresql中启用postgis扩展时,我收到以下错误:

"PARALLEL"或其附近的语法错误

我一直在寻找,但找不到任何有此错误的人.有帮助吗?

postgresql postgis

13
推荐指数
2
解决办法
5714
查看次数

如何在GIS中选择MongoDB和PostgreSQL?

我正在尝试找到有关此主题的一些信息,但我发现的大多数文章都是3年以上.我对这方面也很新,不知道该问谁.

对于我的特定用例,我根本不是数据库专家,但我以前曾使用过几次MongoDB.我只使用PostgreSQL一次用于一个小项目(不涉及GIS内容).为了它的价值,我现在有少量数据存储到dynamoDB中.有一个地理库,但它只有Java,我不太了解Java.

我的用例相当简单 - 除了用户个人资料数据外,我希望能够查询用户添加的标记.标记用户当前latLng等X英里内的标记.标记除了latLng与其关联之外还有其他数据,例如添加它的用户,标题,描述等.

我的目标是能够使用Web API将结果返回到客户端,其中标记位于当前位置X英里内,距离最近到最远.为此,在Mongo和PostgreSQL之间,最好先做什么?

database gis postgresql postgis mongodb

13
推荐指数
1
解决办法
6517
查看次数