Questions tagged «postgis»

PostGIS是PostgreSQL对象关系数据库的扩展,增加了对地理对象的支持。


4
在PostGIS中创建单面缓冲区或平行线?
我正在寻找一种在PostGIS中创建所谓的单面缓冲区或平行线的方法。示例:1.缓冲区,2.一侧,3.两侧 我在2009年的邮件列表中发现了一些讨论,以及在GEOS中已实现的信息,但与PostGIS的当前状态无关。 如果尚未实现该功能,您知道任何解决方法吗?是否可以切断普通缓冲器的一侧?

3
在PostGIS中外推直线
我正在尝试从线段中推断出线上的一个点,但是是“返回”方式的第三点new,即试图找到point ,给定的点A和B下面的点: 给定一条线,我可以对其进行插值以获得沿其任何特定百分比的头寸: =# select st_line_interpolate_point( st_makeline('0101000020E6100000300DC347C49418C03EE8D9ACFAA44A40', '0101000020E6100000FB743C66A03218C0CDCCCCCCCC7C4A40'), 0.333); 0101000020E6100000ED45B41D537718C069C6A2E9EC984A40 我尝试输入一个负数沿线的相反方向找到一个点,但这失败了,因为插值参数必须在[0,1]范围内 我考虑过先缩放线条,但那并不使用线条的中心作为原点,因此对我而言毫无用处。


2
如何将带有自定义数据的KML文件导入Postgres / PostGIS数据库?
按照惯例,我并不是说KML文件的结构不同,但是在本<description></description>节中,我具有带有此类HTML标签的数据: <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <Placemark> <name>New York City</name> <description><![CDATA[ <table> <tr><td colspan='2'>Attributes</td></tr> <tr><td>CITY_ID</td><td>150335</td></tr> <tr><td>POPULATION</td><td>8244910</td></tr> <tr><td>AREA</td><td>468.48</td></tr> </table>]]> </description> <Point> <coordinates>40.712964,-74.003886,0</coordinates> </Point> </Placemark> </Document> </kml> 我想轻松地将每个地标的所有这些数据导入数据库中具有相应列的表中,该怎么做?
18 postgis  kml  ogr2ogr 

1
PostGIS按纬度/经度边界框选择
我在地图上绘制的框中有一个minLat,minLong,maxLat和maxLong。现在,我要获取框中所有点的查询如下所示: SELECT * FROM geomTable WHERE (longitude BETWEEN minLon AND maxLon) AND (latitude BETWEEN minLat AND maxLat) 我想使用几何列而不是纬度/经度列来获取结果。我试过这个查询: SELECT * FROM mytable WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326); 从这篇文章中:使用postgis选择边界框,但未返回任何结果。 有没有人举过一个例子,说明如何使用Postgis中的几何图形在由最小和最大纬度/经度创建的框中选择所有点?
18 postgis 


1
如何为PostGIS距离查询正确设置索引?
我正在构建一个应用程序,该应用程序应查询并返回距离数公里Record的表中的每个表。和的位置取决于Google Geocode API提供的信息。XPointXRecordsPointX(long/lat) 我是PostGIS的新手。经过快速研究,我发现了这个问题。答案似乎是: SELECT * FROM your_table WHERE ST_Distance_Sphere(the_geom, ST_MakePoint(your_lon,your_lat)) <= radius_mi * 1609.34 问题是:即使我只是开始使用GIS,但是当我看上述查询时,我无法想象它如何使用索引。有2个函数调用。我想象每张桌子都要扫描Record。我想错了:) 问题:PostGIS是否具有任何能够使上述查询具有性能的索引类型?如果没有,那么推荐的方法将满足我的需求?

1
Postgis-将“ geometry_dump”数据类型转换为“ geometry”类型
我正在使用已在其上运行ST_Union()的属性边界的数据集,因此所有多边形在表的一行中都显示为多多边形。我想将它们分开,以便为每种形状得到单独的行/多边形。我试过在其上运行ST_Dump(),它似乎可以分离出数据集中的多边形,但是我无法再在GIS中查看它(我目前正在使用QGIS)。此列的数据类型称其为'geometry_dump',我认为这就是为什么我无法对其进行可视化的原因。当我从QGIS访问我的Postgres数据库时,此新表将列在没有几何图形的数据集的标题下。 有谁知道我可以做些什么将“ geometry_dump”转换为“ geometry”?

1
在PostGIS中按几何分组可以吗?
按几何分组可以吗? 我们根据多边形的几何形状进行很多计数,这涉及首先将数据相交以对学生实例进行计数。根据学校边界,街区组等: SELECT n.nbhd_id , count(*) AS count_burglaries FROM denver.crime AS c JOIN denver.neighborhoods AS n ON ST_Intersects(c.geom, n.geom) WHERE c.offense_ty LIKE 'BURG%' GROUP BY n.nbhd_id 第二步是包装一个子查询,以便将多边形表中的几何图形重新连接到计数查询中: SELECT count.* , n.nbhd_name , n.geom FROM ( SELECT n.nbhd_id , count(*) AS count_burglaries FROM denver.crime AS c JOIN denver.neighborhoods AS n ON …

1
PostGIS函数如何处理缓冲区和外部存储?
我看到PostGIS中不断增加的新功能列表,其中一些涉及GEOS(例如ST_ClusterKMeans)。一些功能(例如中的功能pgrouting)依赖于其他库(例如BGL)。 我的印象是,许多这些基础库(通常在C / C ++中)不处理内存与辅助内存/存储/磁盘之间的缓冲区管理。 那么,PostGIS功能之上的PostGIS功能是否可以处理无法存储在物理(或虚拟)内存中的大型数据集? 如果是这样,这些缓冲区管理功能从何而来(从实现的角度来看)?

1
查询OSM以了解面向西的所有海滩?-首选QGIS
我想确定这个星球(或其给定子集)上所有向西(+/- 20-30度)的海滩。 我的想法是使用OSM作为数据源。提取所有带有标签“ natural = beach”的多边形,可以为我提供标记为海滩的所有区域的数据集/ shapefile。到目前为止,一切都很好。 我也知道我可以使用海岸线数据(例如,来自OSM或Natural Earth的数据)来识别海滩的朝向。 缓冲海滩形状以校正较小的不匹配,并将其与海岸线相交,应为我提供有关形状朝向水的一侧的数据。使用所有相交点的最大/最小值应该使我对方位有一个了解。(90度+/- 20-30度就可以了...) 那就是我迷路的地方... 我首选的工具是QGIS,但PostGIS也可以。 周围有人有聪明的主意如何解决这个难题吗?

3
我期望PostGIS对格式正确的地址进行地理编码的速度有多快?
我期望PostGIS对格式正确的地址进行地理编码的速度有多快? 我已经安装了PostgreSQL 9.3.7和PostGIS 2.1.7,加载了国家数据和所有州数据,但是发现地理编码比我预期的要慢得多。我设定的期望过高吗?我平均每秒获得3个单独的地理编码。我需要做大约500万,我不想等待三周。 这是一个用于处理巨型R矩阵的虚拟机,我在侧面安装了此数据库,因此配置可能看起来有些愚蠢。如果对VM的配置进行重大更改会有所帮助,则可以更改配置。 硬件规格 内存:65GB处理器:6 lscpu给了我这个: # lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0-5 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 6 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Stepping: 0 CPU …


2
PostGIS Geometry Query仅对某些值返回“错误:对混合SRID几何进行操作”
我有两个带有SRID 4326定义的几何列的PostGIS表。我可以使用以下INSERT语句(其中lng和lat以编程方式传递的值)毫无问题地插入表中: INSERT INTO pad_meta ( uuid, created, updated, name, origin, radius, area, expiry, creator ) VALUES ( $1, now(), now(), $2, ST_GeomFromText('POINT(lng, lat)', 4326), $3, ST_Buffer(ST_GeomFromText('POINT(lng, lat)', 4326), $4), $5, $6 ) 但是当我使用ST_Intersects查询交点时,取决于得到的点的值ERROR: Operation on mixed SRID geometries。 例如,此查询有效: SELECT * FROM pad_meta where ST_Intersects( 'POINT(-122.334172173172 46.602634395263560)'::geometry, area::geometry ) …
17 postgis  srid 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.