地理信息系统

制图师,地理学家和GIS专业人员的问答


5
|超过180 |时计算正确的经度?
我正在尝试开发一种“公式”以更正lat-lng值。 我正在使用vue传单,但是当您在“第一个”世界之外平移时,您会得到很多。大于+180或小于-180。 例如:当我向右平移(向东)到美国时,我的报酬是ng 215。 215-360=-145 当我向左平移东俄罗斯(西方向)时,例如得到-222,情况也是如此。现在我需要计算-222+360=138 但是,由于世界是不确定的,因此用户可以平移到第八世界,因此我不得不调整值。 是否可以计算正确的经度?(另一个要求是,当用户在第一世界时,24 lng应该仍然是24 lng。

1
是否添加超过255个字符的文本字段?
我正在一个QGIS项目中,其中几乎没有带有文本字段的shapefile图层。我想将整个段落添加为文本字段的描述,但是这些字段受其最大允许长度(255个字符)限制。 如何添加更长的文本?我确定肯定有一种我不考虑的方法。 我读过某个地方,应该尝试PostGIS。该项目的最终目标是将其上传到Web服务器以进行在线查看。因此,我不确定与更大文本文件的PostGIS关系如何在网络上上传或保存?

3
地球表面上方和下方的纬度
我知道大地纬度是相对于参考椭球表面上某个点的法线进行测量的。但是,表面上方和下方的点呢?他们遵循双曲路径吗?(请参阅我创建的图形。)还是它们遵循一条直线? Wikipedia 说:“ [椭球]坐标是重力场模型的自然选择,以使受参考椭球限制的质量均匀分布。” 纬度应该尽可能遵循重力,不是吗?


2
无法将“ pyrcc5”识别为内部或外部命令
我在Windows 10上安装了Qgis 3.0。每次我运行pyrcc4或pyrcc5命令时,都会出现此错误: 'pyrcc4' is not recognized as an internal or external command, 即使我找到了一个带有pyrcc4.exe文件的地方或一个带有apyrcc5.bat文件的地方并将路径添加到环境变量中,我也遇到了同样的错误。在osgeo4w的先前安装中,我有一个pyqtdev文件夹或类似的东西出现,我认为它在C /上。是否应该有这样一个文件夹,我需要单独下载pyqt吗?
11 qgis  pyqgis 

2
Python无法读取shapefile
我正在尝试使用Jupyter笔记本打开shapefile,但是无法打开它。shapefile与工作簿位于同一文件夹中,即使使用完整路径,Python也无法识别它。 import shapefile as shp import matplotlib.pyplot as plt sf = shp.Reader(r'C:\Users\Public\Documents\1-11-99n.shp') ShapefileException: Unable to open C:\Users\Public\Documents\1-11-99n.dbf or C:\Users\Public\Documents\1-11-99n.shp. 用fiona和geopandas打开它也不起作用。 import fiona shape = fiona.open("1-11-99n.shp") 和 import geopandas as gp shp = gp.GeoDataFrame.from_file('1-11-99n.shp') print (shp) 都以 CPLE_OpenFailedError: b'Unable to open 1-11-99n.shx or 1-11-99n.SHX.Try --config SHAPE_RESTORE_SHX true to restore or create …
11 python  shapefile 

7
使用QGIS根据属性值在多边形内创建规则间隔的点?
我有一个附加了属性值的多边形层,该属性值表示多边形内的个体数。我正在使用QGIS 3.0。 我需要将计数可视化为多边形内部的点网格(即1个点= 100只青蛙,以实物着色)。这些点不必一定要占据整个多边形,而最好以预先定义的间距(即300 m)围绕质心绘制,以便它们可以以特定的分辨率表示整齐的网格。 我发现的当前解决方法是使用带有counts参数的“规则点”在地图上绘制的范围内创建网格,然后删除算法创建的多余点(算法四舍五入为网格,您可能会得到20点而不是17点输入)。这将产生所需的结果,但需要为每个多边形绘制规则点的面积范围,以及手动输入属性和清理所创建的点。此外,由于我运行的是指定计数的“常规点”,而不是间隔,因此每个多边形会获得不同间隔的点。 简而言之:每个多边形(批处理)的常规点(定义的点数,绘制范围)>删除多余的点>将属性值分配给#个点 替代方法(避免不规则间距,但需要更多操作): 整个图层范围内的规则点(定义的间距,即300m)>裁剪到多边形范围>删除每个多边形中的多余点,直到获得所需的点数>将属性值分配给点。 解决方法的主要问题是逐个多边形处理,这使得更新数据和处理大量多边形变得困难。 有人问类似的问题,即在QGIS中在多边形内创建规则间隔的,已定义的点数,但具体情况有所不同。

2
点如何不在多边形内或没有触摸但仍与多边形相交?
我正在使用人口普查shapefile(多面体),并且还有另一个带有点的表。我们记录每个点所在的人口普查块。我有一个点对所有ST_Within和ST_Touches查询都返回false。但是,它对一个块的ST_Intersects返回true。 如果是另一个多边形,我可以理解这种情况将如何发生,但是对于“相交”而言,单点(我已经证实是这种情况)如何成立,而对于“内部”和“接触”而言,则分别为否?在QGis中检查它似乎应该为Touches返回true。 我们的表中有数百万个点,只有这一个点似乎有任何问题。我已经在多边形和点上都运行了ST_IsValid。 我对几何数据还很陌生。我是否缺少有关其工作原理的信息? 和多边形块(geoid:“ 170898507021157”) SELECT ST_Within(pt, geom), ST_Touches(pt, geom), ST_Intersects(pt, geom) FROM ( VALUES ( ST_SetSRID( ST_GeometryFromText($$MULTIPOLYGON(((-88.466933 42.139013,-88.464586 42.139034,-88.463821 42.13901,-88.463811 42.138813,-88.463815 42.138705,-88.46382 42.138572,-88.463849 42.138468,-88.463886 42.138398,-88.464044 42.138452,-88.464239 42.138464,-88.464616 42.138472,-88.464961 42.138468,-88.465318 42.13846,-88.465558 42.138464,-88.465695 42.138443,-88.465824 42.138402,-88.465969 42.138319,-88.466048 42.138248,-88.466106 42.138161,-88.466135 42.138057,-88.466148 42.1379,-88.466149 42.137731,-88.466143 42.137406,-88.466143 42.137086,-88.466131 42.136945,-88.466098 42.13685,-88.466027 42.136746,-88.46596 42.136677,-88.465799 42.136609,-88.465571 42.136559,-88.465359 42.136534,-88.465167 …
11 postgis 

3
QGIS坐标精度
QGIS定义的坐标点的哪一个(第x个)小数位重复? 我一直在想QGIS可以处理小数点后15位。但这只是因为我主要从事Shapefile文件的限制。 但是,当我选择其他数据源(例如临时暂存层)时,该限制不适用。 使用如下所示的伪数据,我通过两个工具进行了快速测试,以找出可以识别坐标差异的最小值: QGIS地理处理: Delete duplicate geometries MMQGIS插件: Delete Duplicate Geometries 输出依据QGIS Delete duplicate geometries与上述输入数据相同(所有20条记录均被保留),因此这可能意味着QGIS认为它们都是不同的。此限制是否超出此小测试中看到的1e-29(或1e-30)? 作为比较,MMQGIS Delete Duplicate Geometries在下面产生。MMQGIS似乎将第16位或第17位小数作为限制。 [编辑] 恐怕我不清楚问题的核心是什么。我的目的是理解座标值与重复项/重叠项之间的关系,正如我在问题的第一段中所述。希望这种知识可以帮助我们通过调整字段计算器表达式来轻松控制重叠特征。 但是,我一直试图解决的根本问题是,QGIS识别出的点(节点)的小数点重叠位置似乎有所不同,具体取决于数据源。 如果我们在图层上使用Shapefile,则QGIS只能处理小数点后第15位,并且无法识别较小的差异(第16或第17位)。如果我们创建临时刮擦层或DB层,此限制会远远超过30位数吗?这种行为上的变化使我感到奇怪。
11 qgis 


1
在已经处于目标srid的几何中调用ST_Transform?
我正在编写一个函数,该函数的几何参数可以在不同的投影中: CREATE OR REPLACE FUNCTION foo(in geometry) RETURNS boolean AS $$ DECLARE transformed_geom geometry := in; BEGIN IF ST_SRID(transformed_geom) != 32737 THEN transformed_geom := ST_Transform(transformed_geom, 32737); END IF; [ ... ] END; $$ language plpgsql; 该函数需要特定投影中的几何图形(32737),但我不想让调用者进行转换,我更喜欢在函数内部进行处理。 问题是,始终检查ST_Transform是安全的,而不是检查实际的srid 。如果几何已经在目标投影中,该怎么办? 我检查了这样的查询,它看起来很安全,但是如果有人可以确认这一点就很棒了,因为我在文档中没有看到它。 SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;
11 postgis  srid 

2
以毫米为单位生成尺寸一致的多边形?
我有一个函数可以创建表示为多边形的“太阳光能”面板。本质上,它创建一个矩形网格,用户可以在其中指定以下参数: 长度 宽度 水平距离 垂直距离 该代码基于插件FeatureGridCreator,但仅专注于多边形方面。它在大多数情况下效果很好,尤其是在创建较大尺寸的多边形(例如,长度和宽度为10m;水平和垂直距离为10m)时。 但是我注意到了两个问题: 指定长度和宽度均小于2m的多边形时,不会创建任何多边形。 当指定具有不同尺寸(例如5m长度和7m宽度)的多边形时,使用“ 测量线”工具测量时尺寸不相同。对于这些尺寸,长度和宽度分别显示为4m和6m。 用于投影和图层的CRS是EPSG:27700,尽管我不认为这会是一个问题。 那么,有谁知道会导致这些问题的原因吗?对于如何改进代码甚至用更好的替代方法替代代码,我也持开放态度。 这是可以在Python控制台中复制的代码,在运行函数之前必须使用相关的CRS选择一个多边形层: from PyQt4.QtCore import QVariant from math import ceil def generate_pv_panels(length, width, distance_x, distance_y): # Define layer properties layer = iface.activeLayer() crs = layer.crs() memory_lyr = QgsVectorLayer("Polygon?crs=epsg:" + unicode(crs.postgisSrid()) + "&index=yes", "PV panels for " + str(layer.name()), "memory") …

1
在QGIS中创建径向扇形叠加
我需要创建一个从关注点辐射出的扇形网格。这是我费力地手工整理的一个示例: 在“ 如何使用ArcGIS for Desktop生成飞镖板shapefile”中找到了两个类似的解决方案。和PostGIS的QGIS带来的Draw风上升,但都不完全符合我的标准。 理想情况下,我需要每个扇区都是一个单独的多边形(出于数据分析目的),并能够使用参数控制扇区数和径向距离为不同的站点创建此叠加层。 谁能建议或提供一种在QGIS中轻松生成这些形状的方法?我以为这是一个相对常见的任务,所以不想花大力气重新发明轮子,但我一直在努力寻找解决方案,而作为一个完整的新手,我将需要很长时间才能提出解决方案。从零开始的解决方案。


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.