Questions tagged «antimeridian»

2
地理数据跨越antimeridian的数据库和API的最佳做法
当这些地理特征(线,面和它们的多部分等价物)跨越时线(经度±180°)并且需要作为GeoJSON发送到客户端Web应用程序并从客户端Web应用程序接收时,最佳做法是什么? 我将开始在服务器端Web API上进行工作,并获得Postgres / PostGIS数据库的支持,以处理历史和预报的热带气旋轨道和风半径。不幸的是,太平洋上的许多气旋都有越过沙漏的趋势,有时在生命周期内多次发生: 作为居住在后脚区附近的新西兰人,我经常在区域数据中经常遇到此问题,以制定一些应对策略,但是我想实际找出什么是最佳实践。不幸的是,目前没有标记为antimeridian的问题,因此很难搜索相关问题。我所看到的那些困扰该问题的问题似乎都在寻求针对特定应用的建议。这个问题简要讨论了跨越地球的GeoJSON多边形无边界情况下的反子午线。这个问题很接近我的要求。 我需要将历史和预报的气旋存储在空间数据库中,但我希望反高度子集会出现问题。例如,一条线从纬度/经度开始,在其方向(0,179)结束时(0,-179)是不明确的:无论是经过小子午线的短路径,还是“包裹”整个星球。这样的路径应如何存储在空间数据库中(特别是我正在使用PostGIS,但我希望解决方案足够通用)?我有一些想法: 无需更改要素几何并将模糊性转移到客户端应用程序。 将跨越子午线的任何特征分割为多部分几何,并在子午线处断开。(GeoJSON规范支持命名的CRS。) 使用不具有这种不连续性的不同旋风盆地或海洋区域的非全局投影 利用从未观察到旋风绕着整个行星传播这一事实,存储旋风的坐标,该旋风的坐标从纬度范围开始(90,-90) 偏移了360°相位(保持其他-180-180°) 利用一个事实,即在非洲南端以南极不可能发生气旋,请使用经度为30°的中断(如上图所示)。 允许坐标超出EPSG 4326的有效范围,例如,对于任何通过后向子午线的要素,> 180°且<-180°。 Delta编码,例如在TopoJSON中(例如,始于,(0,-179)然后下一个坐标为-3西纬)。我不知道在PostGIS中存储数据时是否或如何实现此功能,但这是将数据发送到客户端应用程序的绝佳解决方案。 矢量符号或极坐标的某种形式。(似乎相当困难和不寻常。) 其中,我不喜欢想法2–5,因为它们不是通用的,但是我喜欢它们,因为它们对我的特定应用程序有意义。对于仅在太平洋中处理数据的应用程序,它们可能很有意义,因此我不希望完全打折。 想法6和7是从汤姆·麦克赖特(Tom MacWright)的博客中提出的,该博客值得一读,但对于antimeridian而言并不确定。 Idea 4由GeographicaGS'使用GeodesicLinesToGISPython,而后者又使用fiona.transform.transform_geom了360°的时间偏移。反过来,Fiona正在使用OGR的-wrapdateline。我认为这是一个非常坚实的先例,实际上是相当普遍的。 结合存储问题,我需要考虑应如何将此类功能发送到客户端应用程序,以及我的应用程序应如何考虑回传到该应用程序的数据(例如,人类预报员更改了太平洋气旋的预报轨迹)。交换格式可能是GeoJSON,但不是必须的。 不幸的是,GeoJSON规范并未明确涉及时间轴问题。来自维基百科: 许多地理软件库或数据格式将世界投影到一个矩形。通常,此矩形正好在第180个子午线上精确地分割。这通常使得不可能在第180个子午线上执行简单的任务(例如表示一个区域或一条线)。一些例子: GeoJSON规范在其规范中并未提及对第180条子午线的处理,因此,跨越第180条子午线的线的表示也可以解释为遍历世界。 在OpenStreetMap中,区域(例如俄罗斯边界)在第180个子午线上被分割。 我的理解是,GeoJSON没有特定的跨时间跨度特征的标准表示形式,并且故意将其含糊不清(多部分几何形状可能会解决此问题)。类似地,在OpenStreetMap中,后子午线处有几何划分,尽管我不知道这样的拆分要素是多部分的还是实际上是离散的记录。 这带来了相当大的问题,尤其是从提出跨越此线的边界框或其他空间请求的角度而言,而且在解析和清理输入以及对要素几何的任何更新方面也是如此。这就是为什么我试图确定我可以寻求遵循的最佳实践的原因。

9
国际日期变更线环绕
使用OpenLayers,我在GeoServer上添加了一个WFS图层,并带有一个过滤器,该过滤器返回在某些日期内与某些拉丁美洲国家/地区的多边形(黄色)相交的所有要素(黑色)。 但是,在地图上水平交叉的要素实际上并未与我的多边形相交。此功能位于夏威夷和斐济之间的太平洋中,而不是拉丁美洲。问题在于,它没有跨越国际日期变更线,而是通过环绕整个世界呈现在地图上。 常见功能定义如下: 聚((-179.700417 14.202717,-178.687422 13.992875,179.024138 8.24716,-179.98241 8.035567,-179.700417 14.202717)) 我有很多有问题的日期行功能,例如本示例。我不能在我的应用程序中忽略它,因为我有很多。 我尝试在基础层和WFS层中使用“ wrapDateLine:true”,结果相同。 不知道这是GeoServer问题还是OpenLayers问题。 有人知道我的国际约会安排问题的解决方案吗?

3
跨国际日期变更线的多边形[-180 .. + 180经度]
我正在尝试为卫星轨道条带生成多边形。到目前为止,我有一种方法可以生成两条线,以[lat,long]表示每个条带的边缘。一些条带跨越了国际日期变更线,因此绕了一下: 我能够通过以下方式解决此问题ogr2ogr -wrapdateline: ogr2ogr -wrapdateline -f "ESRI Shapefile" test.shp orbits.shp 哪条线可能会分开 现在,我希望能够在两条线的内部生成多边形。因此,例如,在条幅的一个边缘与日期线交叉的情况下,当多边形出现在另一侧时会填充该多边形,例如: 我需要一种自动化的方法,因为我需要重复很多次任务。最好在python中,因为那是我生成线的方式。这是包含这些行的两个shapefile:wraparound ; datelinefixed

4
使用OpenLayers在日期线上分割线串
几年前,我发布了国际日期变更线,@jdeolive 建议我在dateLine 拆分功能。所以我尝试了。 当我尝试在日期线上使用splitWith拆分卫星轨道时,我回来了null。我知道我的分裂是正确的,因为当我在格林威治线上分裂时,我得到了预期的结果。 有人知道我如何才能使用OpenLayers在日期线上以编程方式正确分割Linestring吗?我寻求示例代码(如果有)。 我已经尝试过了,wrapDateLine但是尽管我的向量层是这样的,但它似乎在向量层上似乎没有作用: vectorLayer = new OpenLayers.Layer.Vector("GroundTracks", { renderers: ['Canvas', 'VML'], wrapDateLine: true}); // <-- shoud be wraping. 这是我的代码: var features = []; var format = new OpenLayers.Format.WKT({ 'internalProjection': map.baseLayer.projection, 'externalProjection': prjGeographic }); var satTrack = format.read("LINESTRING (95.538611 13.286511, 94.730711 16.908947, 93.901095 20.528750, 93.043594 24.145177, 92.150978 27.757436, …
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.