当前位置: 首页 > news >正文

网站建设方案书下载wordpress的搜索引擎

网站建设方案书下载,wordpress的搜索引擎,白城百度网站建设,张家界住房和城乡建设局网站PostGIS学习教程十五#xff1a;几何图形的有效性 在90%的情况下#xff0c;“为什么我的查询给了我一个’TopologyException’错误的问题的答案是一个或多个输入的几何图形是无效的”#xff0c;这就引出了这样一个问题:几何图形无效是什么意思几何图形的有效性 在90%的情况下“为什么我的查询给了我一个’TopologyException’错误的问题的答案是一个或多个输入的几何图形是无效的”这就引出了这样一个问题:几何图形无效是什么意思我们为什么要关注它? 文章目录 PostGIS学习教程十五几何图形的有效性一、什么是有效性二、检测有效性三、修复无效的图形3.1、ST_MakeValid函数3.2、ST_Buffer 一、什么是有效性 对于多边形来说有效性是最重要的因为多边形定义了有界区域需要很好的结构。线串非常简单不会无效点也不会无效。 多边形有效性的一些规则很明显而另一些规则是任意的。 多边形的环必须闭合 内环必须位于外环的内部 环不能自相交它们不能相互接触也不能交叉 除了在某个点接触环不能与其他环接触 最后两条规则属于任意类别。定义多边形的其他规则也是自洽合理的但是上面的规则是PostGIS所遵循的OGC SFSQL标准所定义的多边形有效性的规则。 规则之所以重要是因为几何图形的计算依赖于输入的几何图形的结构。可以构建没有结构假设的算法但这些程序往往非常慢因为任何无结构程序的第一步都是分析输入并在其中构建结构。 这里有一个解释为什么几何图形的结构重要的例子。首先这个多边形是无效的 POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0));在此图中你可以更清楚地看到无效的原因 这个多边形的外环实际上是一个数字8的形状中间有一个自交点也就是这个多边形的环自相交了。图形程序成功地渲染了多边形填充使其在视觉上看起来是一个区域两个一个单位的正方形因此多边形总面积为两个单位的面积。 让我们看看PostGIS数据库认为多边形的面积是多少 SELECT ST_Area(ST_GeometryFromText(POLYGON((0 0, 0 1, 1 1, 2 1, 2 2, 1 2, 1 1, 1 0, 0 0)) ));这里发生了什么计算面积的算法假设环不自相交。程序始终计算位于边界线的一侧的区域的面积。 然而在我们的表现不佳的形似数字8的多边形中对于其中一个部分图形区域位于边界线的右侧而对于另一个部分图形区域在边界线的左侧。这将导致为每个部分计算的面积互相抵消一个为1另一个为-1因此结果为0面积。 二、检测有效性 在前面的示例中我们可以轻易发现一个多边形是无效的。然而我们如何在一个包含数百万个几何图形的表中检测无效答案是使用ST_IsValid(geometry)函数 SELECT ST_IsValid(ST_GeometryFromText(POLYGON((0 0, 0 1, 1 1, 2 1, 2 2, 1 2, 1 1, 1 0, 0 0)) ));现在我们知道这个图形是无效的但是我们不知道为什么无效。我们可以使用ST_IsValidReason(geometry)函数来查找无效的原因 SELECT ST_IsValidReason(ST_GeometryFromText(POLYGON((0 0, 0 1, 1 1, 2 1, 2 2, 1 2, 1 1, 1 0, 0 0)) ));请注意除了原因自相交图形自相交的坐标coordinate(1 1))也被返回了。 我们也可以使用ST_IsValid(geometry)函数来测试数据表 SELECT name, boroname, ST_IsValidReason(geom) FROM nyc_neighborhoods WHERE NOT ST_IsValid(geom);三、修复无效的图形 首先坏消息是没有100%确定的方法来修复无效的几何图形。最坏的情况是使用ST_IsValid(geometry)函数识别它们然后将单独它们移动到另一张表导出该表然后在外部比如说桌面端GIS软件修复它们。 下面是SQL的一个示例它将无效的几何图形从原表转移到另一张表中。 CREATE TABLE nyc_neighborhoods_invalid AS SELECT * FROM nyc_neighborhoods WHERE NOT ST_IsValid(geom);DELETE FROM nyc_neighborhoods WHERE NOT ST_IsValid(geom);在视觉上修复无效几何图形的一个好工具是OpenJump它在Tools-QA-Validate Selected Layers.下包含一个验证程序。 现在好消息是可以使用以下任何一种方法在数据库中修复很大一部分的缺陷 ST_MakeValid函数 ST_Buffer函数 3.1、ST_MakeValid函数 ST_MakeValid函数尝试在不对输入几何图形进行更改的情况下修复缺陷。不会删除或移动任何顶点只需重新排列对象的结构即可。对于清晰但无效的数据来说这个函数非常适用对于杂乱无章且无效的数据来说这个函数可能并不适用。 SELECT ST_AsText(ST_MakeValid(POLYGON((0 0, 0 1, 1 1, 2 1, 2 2, 1 2, 1 1, 1 0, 0 0)) ));ST_MakeValid函数成功地将几何图形8转换为表示相同面积的multi-polygon。 3.2、ST_Buffer 使用缓冲区技巧清理时可以利用缓冲区的生成方式来达到修复几何图形的目的缓冲区几何图形是全新的几何图形由关于原始图形的偏移线构建。如果不偏移原始线零则新几何图形在结构上将与原始几何图形相同但由于它是使用OGC拓扑规则构建的因此它将是有效的。 例如这里有一个典型的无效现象——“香蕉多边形” —— 一个环它包围着一个区域但弯曲着接触自己留下一个孔洞hole实际上并不是一个孔洞违背了上面所说的环不能自相交的规则。 POLYGON((0 0, 2 0, 1 1, 2 2, 3 1, 2 0, 4 0, 4 4, 0 4, 0 0))在多边形上计算零偏移缓冲区将返回有效的OGC多边形该多边形由在一点接触的外环和内环组成。 SELECT ST_AsText(ST_Buffer(ST_GeometryFromText(POLYGON((0 0, 2 0, 1 1, 2 2, 3 1, 2 0, 4 0, 4 4, 0 4, 0 0))),0.0) );
http://www.zqtcl.cn/news/985970/

相关文章:

  • 用cms做网站的具体步骤北京市网站备案查询
  • 中国设计师网站WordPress添加live2d
  • 我是做网站的云溪网络建站宝盒
  • 为什么没人做团购网站子域名的网站放到哪里去
  • 成都做网站设企业建一个网站需要多少钱
  • 淮南建设网站菏泽兼职网站建设
  • 品牌做网站公司做网站需要一些什么东西
  • 网页制作软件三剑客网站优化排名的方法
  • 购物网站开发背景及目的做百度推广网站咱们做
  • 漳州最专业的网站建设公司网站建设工作方案
  • 江西省建设厅网站官网网站备案期间可以用二级域名访问网站吗
  • 三丰云做网站步骤php网站建设视频教程
  • 赤峰网站开发公司wordpress电子商务主题 中文
  • 网站建设运营工作业绩怎样查看网站备案号
  • 江苏常州网站建设公司外贸网站建设盲区
  • 响应式网站设计教程wordpress 医院主题
  • 手机上怎么上传网站吗舟山做网站
  • 程序员做个网站要多少钱呢网站开发设计技术路线
  • 企业网站优化与推广哪个网站seo做的最好
  • 学做网站 软件合肥市建设投资有限公司
  • 网站开发优势用php制作一个个人信息网站
  • wordpress百度推送代码兰州网站关键字优化
  • 有了域名怎么建设网站在线crm免费将夜2
  • 网站建设 技术方案模板长沙手机网站公司
  • 游戏网站建设免费版百度只更新快照不收录网站
  • html小清新类型网站网站建设中应注意哪些问题
  • 网站开发技术和seo的联系精品课程网站建设 公司
  • 大型网站建设一般多少钱wordpress 调用百度前端公众库
  • 个人电脑做网站服务器网站地方网站域名用全拼
  • 我们网站在那里登陆后台系统管理成都app制作开发