Questions tagged «sql»

结构化查询语言的缩写。从关系数据库检索和处理数据的语法。

2
使用PostGIS在表格中通过纬度/经度创建几何?
我的表有80万条记录,包括经度和纬度。数据源未创建几何,因此我一直在寻找如何执行此操作的方法。我知道有ST_MakePoint(x,y,SRID),但是所有文档和其他线程都显示了如何创建单点。如何使用这些列创建几何类型?
15 postgis  sql 

1
QGIS中的最近邻居分组选择
我有一个包含以纬度/经度格式超过100,000点的列表,我已经将其导入到qgis中。 现在,我要在此处进行的操作是将所有这些点分组为框组,这实际上是指我想将地图拆分为边界框。 我的要求如下: 盒装组的得分不得低于100,且得分不得超过200 不得将一个点放置在多个组中 所有点应基于其最近的邻居 我如何通过q​​gis实现这一目标? 我假设可以传递一些自定义查询代码并保存结果,或者将创建的框保存为shapefile正确吗?有人可以解释一下如何做到这一点以及代码是什么样的吗? 如前所述,我的目标是将一堆方形框显示为shapefile图层,其中每个框内的属性不少于100个且不超过200个。

3
通过属性选择特征(如果在Python列表中)?
我正在尝试在Python中根据属性是否存在于列表中的查询来完成按属性选择。 最简单的查询应该是这样的: qry = " \"OBJECTID\" in oid_list" arcpy.SelectLayersByAttribute_management(inft, "NEW_SELECTION", qry) 但是该方法返回无效的表达式错误。 过去,对于这种类型的查询,我不得不使用更复杂的语法,例如: sqlQuery2 = "nid in (" + ','.join(["'"+x+"'" for x in delta_list]) +")" 但是改编此代码段似乎对我也不起作用,即: "OBJECTID_1 in (" + ','.join(["'"+str(x)+"'" for x in oid_list]) +")" 我在这里想念什么?

1
从PostGIS中的线创建面
我正在尝试将一条线中的一个多边形划分为多个较小的多边形,但是我想我不能使用st_split函数。我需要的是使用线串网格在大的多边形内创建小多边形。 我尝试了一些方法,但无法获得结果。我尝试过的 使用st_split()从LineString中分割一个多边形 从边界多边形开始。 和线串表: 我需要以下多边形: 问题:我无法从多条线分割多边形,也无法从多线串分割多边形。 我正在尝试的另一种方法是使用st_polygonize()从线创建多边形,而我正在尝试的SQL是: SELECT g.path[1] as gid, g.geom::geometry(polygon, 22033) as geom FROM (SELECT (ST_Dump(ST_Polygonize(geom))).* FROM linestable ) as g; 从使用PostgreSQL和PostGIS从线段创建多边形中提取 问题:我只能得到一个多边形(边界)。 有人可以告诉我从线串中获取多边形的最佳方法是什么,或者我是否缺少某些东西? 注意:表位于相同的SRID中,并且几何形状已捕捉到网格中。在QGIS中,我可以完美地执行从线条到多边形的多边形化过程。 根据John的要求,这是线串表。 https://drive.google.com/file/d/0B603y_m735jfS014S0EyVnpMUEU/view?usp=sharing
13 postgis  sql  topology 

1
Hstore键/值和空间查询的组合太慢,无法处理更大的OSM提取
我正在尝试使用PostgreSQL 9.3.5和PostGIS 2.1.4计算OSM数据的一些统计信息。我从从Geofabrik下载的巴伐利亚提取物开始。db模式是正常的API 0.6模式,数据是通过转储方法导入到Postgres中的(使用渗透性附带的pgsnapshot_schema_0.6 * .sql脚本)。还进行了真空分析。 我使用的唯一定制产品是一个多边形表,该表包含用于所有管理边界关系的多面体。多边形的几何形状没有任何简化。 我现在想要实现的是计算巴伐利亚的admin = 6边界内的所有节点。这是我的SQL查询: SELECT relpoly.id, count(node) FROM bavaria.relpolygons relpoly, bavaria.nodes node WHERE relpoly.tags @> '"boundary"=>"administrative","admin_level"=>"6"'::hstore AND ST_Intersects(relpoly.geom, node.geom) GROUP BY relpoly.id; 该查询的运行时非常糟糕,因为Postgres正在执行嵌套循环联接,并在所有节点上扫描每个admin = 6边界。仅供参考,巴伐利亚被分成98个admin = 6个多边形,巴伐利亚提取物中大约有3000万个节点。 是否有可能避免这种次优查询的执行,并告诉Postgres它只扫描一次所有节点(例如,通过增加结果集中对应多边形的计数器或使用提示)? 编辑: 1)巴伐利亚节点上存在空间索引: CREATE INDEX idx_nodes_geom ON bavaria.nodes USING gist (geom); 2)查询计划如下: HashAggregate (cost=284908.49..284908.75 rows=26 width=103) -> …

2
相对于简单的ArcSDE,将ArcGIS与PostgreSQL结合使用有什么好处?
我了解到,为了从ArcGIS空间数据类型(ST_GEOMETRY,版本化的地理数据库等)中受益,需要安装ArcSDE-并随10.1客户端一起自动安装(两层客户端>> DBMS,请参见此处)。 但是,我仍在尝试找出将Esri前端连接到PostgreSQL(或Oracle)的好处。它纯粹是后端的好处,例如可伸缩性/性能/冗余/ DBAability,还是PostgreSQL / PostGIS设置提供了额外的前端功能?Esri 帮助似乎没有详尽说明 仅供参考,我是一个数据库新手,他正在设计GIS论文,目的是说明为什么Postgresql / PostGIS / QGIS比ArcGIS /任何数据库更具可伸缩性/灵活(和便宜),所以还必须考虑上述情况,我可以付诸实施。最后一点上的任何链接,尤其是有关工作流的链接(例如,没有大量的shapefile会使所有内容杂乱无章),都是最受欢迎的。d。

3
如何在PostGIS中内​​插GPS位置
我每五秒钟就有一张PostGIS GPS位置表: 2011-01-01 00:00:05, POINT(x1,y1) 2011-01-01 00:00:10, POINT(x2,y2) 2011-01-01 00:00:15, POINT(x3,y3) ... 我正在寻找一个查询,该查询将每秒返回值(时间戳和点)。可以假定点是通过直线连接的。 我专门在寻找一种在数据库内部执行此操作的方法,而不是通过编写一些外部脚本来实现。

2
使用PostGIS从多个表中获取几何图形?
一般来说,我对PostGIS,PostgreSQL和SQL还是很陌生。 我的PostGIS数据库中有44个表格,每个表格代表不同的向量数据层。每一个都是从单独的shapefile加载的,每个都有一个描述该层的几何形状的列,称为wkb_geometry 我想在一层上选择一个特定的多边形,然后从与该多边形的边界框重叠的一层子集中检索所有几何。我对发出的顺序并不感到挑剔,但是如果按每组几何体来自的表进行组织,将很有帮助。 这是我的SQL语句的示例: SELECT ST_AsEWKT(wkb_geometry) /* Some of this data has z values, hence the EWKT */ FROM table2, table3, table4, table5 WHERE wkb_geometry && ( SELECT wkb_geometry FROM table1 WHERE ogc_fid = 25 ); 返回错误: column reference "wkb_geometry" is ambiguous /* note that every table that I am …
13 postgis  sql 

1
如何使用ST_DelaunayTriangles构造Voronoi图?
(编辑2019)ST_VoronoiPolygons 自PostGIS v2.3 起可用! 在PostGIS 2.1+中,我们可以使用ST_DelaunayTriangles()生成Delaunay三角剖分,这是其Voronoi图的对偶图,并且从理论上讲,它们具有精确且可逆的转换。 是否有安全的 SQL标准的脚本与优化的算法存在这个PostGIS2德劳内到维诺转换? 其他裁判:1,2

1
ST_前缀是否适合SQL / MM第3部分中未包含的功能?
我在这个Github问题中正在阅读有关Presto地理空间扩展的主题,其中line_locate_point引入了函数。它基于PostGIS的ST_LineLocatePoint功能,该功能返回一个浮点数,该浮点数表示沿该点上到给定位置的最近点的线的分数。 提出了一个问题,为什么命名它line_locate_point而不是ST_LineLocatePointPostGIS版本。响应是此功能在SQL / MM Part 3标准中不存在,因此不应以开头ST_。 快速阅读标准,对于如何处理将空间功能引入标准以外的数据库的情况,我没有任何意见。是的精神ST_前缀区分空间的功能从非空间功能(如似乎是在PostGIS的情况下),或者是它表明,在SQL / MM第3部分同等功能的函数符合规定? 纵观Presto API的当前状态,我不得不说,后一种方法看起来不太干净,并且在名称为何不一致方面引入了一些困惑,但是也许可以通过顶部的简单注释解决。 那么,我的问题是,我是否忽略了该标准的某些方面,以允许将其扩展到已定义的空间对象之外,或者是否遵循以下标准的某些书面或非书面规则明确禁止这样做。

3
在PostGIS中构建Voronoi图
我正在尝试使用此处的修改代码从点网格构造voronoi图。这是我修改后的SQL查询: DROP TABLE IF EXISTS example.voronoi; WITH -- Sample set of points to work with Sample AS (SELECT ST_SetSRID(ST_Union(geom), 0) geom FROM example."MeshPoints2d"), -- Build edges and circumscribe points to generate a centroid Edges AS ( SELECT id, UNNEST(ARRAY['e1','e2','e3']) EdgeName, UNNEST(ARRAY[ ST_MakeLine(p1,p2) , ST_MakeLine(p2,p3) , ST_MakeLine(p3,p1)]) Edge, ST_Centroid(ST_ConvexHull(ST_Union(-- Done this …

2
将大型CSV文件导入PostGIS
我正在尝试将CS​​V文件导入PostGIS。在这篇文章之后,我之前已经创建了表。我发现其他建议说我可以运行copy命令。 如果我运行此命令: COPY table FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; 它根本没有复制表格。它说“表”未被识别。 我尝试了这个: COPY moulding (Borough,Block,Lot,CD,CT2010,CB2010,SchoolDist,Council,ZipCode,FireComp,PolicePrct,Address,ZoneDist1,ZoneDist2,ZoneDist3,ZoneDist4,Overlay1,Overlay2,SPDist1,SPDist2,LtdHeight,AllZoning1,AllZoning2,SplitZone,BldgClass,LandUse,Easements,OwnerType,OwnerName,LotArea,BldgArea,ComArea,ResArea,OfficeArea,RetailArea,GarageArea,StrgeArea,FactryArea,OtherArea,AreaSource,NumBldgs,NumFloors,UnitsRes,UnitsTotal,LotFront,LotDepth,BldgFront,BldgDepth,Ext,ProxCode,IrrLotCode,LotType,BsmtCode,AssessLand,AssessTot,ExemptLand,ExemptTot,YearBuilt,BuiltCode,YearAlter1,YearAlter2,HistDist,Landmark,BuiltFAR,ResidFAR,CommFAR,FacilFAR,BoroCode,BBL,CondoNo,Tract2010,XCoord,YCoord,ZoneMap,ZMCode,Sanborn,TaxMap,EDesigNum,APPBBL,APPDate,PLUTOMapID,Version) FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; 但也没有用。 可以从以下链接下载此类数据集的示例: 我应该创建一个模型然后执行吗?



1
更新字段以使用STIntersects给出多边形中的点数?
我有一个点图层(dbo.ptLayer) 约1M点 空间几何类型(dbo.ptLayer.geom) 尚无空间索引,但一旦数据收集完成便会创建一个空间索引。 我有一个多边形图层(dbo.polygonLayer) 大约500个多边形。 空间几何类型(dbo.polygonLayer.geom) 两者都有称为ID的字段。 如何在多边形层中填充一个空的整数字段,并计算每个多边形内的点总数? 尽管我可以使用其他软件产品,但我仍然有兴趣学习纯在SQL和SQL Server中可以完成的工作。 我相信我应该利用STIntersects,但想知道进行更新以填充该字段的最佳方法是什么。

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.