Orm 从矢量数据生成地理分幅

Orm 从矢量数据生成地理分幅,orm,map,geospatial,geo,Orm,Map,Geospatial,Geo,我面临着这个问题:我的数据库中有一些矢量数据(多段线…),它们描述了许多世界/国家/地区/城市的边界 我想要一张关于thoses地区的互动地图 当我在浏览器中呈现这些数据时(数据以geojson格式发送),速度很慢(我并不感到惊讶) 下一个原因是生成一些光栅平铺,以表示不同缩放级别的区域,并有一种方法来建立单击区域和选定区域之间的关系(以显示更多信息) 我是geo tiles的新手: 从矢量数据生成png/jpg分幅的最佳工具是什么 如何在单击的区域和数据库中的“id”之间建立关系 我知道我

我面临着这个问题:我的数据库中有一些矢量数据(多段线…),它们描述了许多世界/国家/地区/城市的边界

我想要一张关于thoses地区的互动地图

当我在浏览器中呈现这些数据时(数据以geojson格式发送),速度很慢(我并不感到惊讶)

下一个原因是生成一些光栅平铺,以表示不同缩放级别的区域,并有一种方法来建立单击区域和选定区域之间的关系(以显示更多信息)

我是geo tiles的新手:

  • 从矢量数据生成png/jpg分幅的最佳工具是什么
  • 如何在单击的区域和数据库中的“id”之间建立关系
我知道我的问题很多,但如果你有一些建议


谢谢

我最近写了一篇关于如何提高光栅分幅渲染速度的博文:

至于将单击连接到辖区ID,我认为没有捷径:您需要将单击转换为lat/lng(或我在博客文章中描述的广域坐标系),然后执行多边形中的点检查。如果您使用的是PostGIS,则可以进行ST_相交

注意:如果您使用的是MySQL,则相交是通过边界框完成的,而不是多边形。这仍然是可能的:您只需要从某个地方抓取多边形函数中的一个点来检查哪个多边形,如果边界框检查得到多个多边形

以下是您可以单击的点的示例:

请注意,由于人们对点击不精确(尤其是对小点),我实际上在点周围制作了几个像素,就像单个像素点一样。您也可以单击远离点的位置,然后它将显示多边形(在本例中,它是联邦选区)。

有一个for,一个功能齐全的WebGIS服务器。您可以使用它来构建数据的地图渲染服务(实际上是WMS)。然后使用生成地图的分幅

通过这种方式,您可以使用功能齐全的WebGIS堆栈,该堆栈允许您管理额外的数据源,并且如果部分数据得到更新,则可以轻松地重新创建数据块


此外,通过Geoservers WFS实现还可以查询地图上的要素(地图位置与数据库中元素的关系)。

您的数据库是什么?例如,mongo支持2d。另外,+1表示将数据用作复数-虽然我在一个问题中问了两个问题。我使用Mongodb,但地理索引并不是我真正的问题,我的问题是在不同的缩放级别快速提供交互式地图。使用矢量数据并在客户端渲染它太慢了。。。这就是为什么我要考虑生成静态/光栅平铺,使之成为可能。(很抱歉同时问了两个问题)您是如何渲染它的?使用geojson图层渲染器的plicate.js,速度非常慢:(Thanx Kailtlin,不幸的是,我已经从带有地理模块的mysql迁移到mongo,因为我不需要空间计算(只需要访问geographics数据,mondo做得很好)。但我将使用经典的交集方法。我将仔细阅读您的帖子。Thx!从mysql点/多段线等生成平铺的软件堆栈是什么?我不知道使用哪个库从空间数据(opengis格式/geojson或其他)生成png文件。我使用gd库()绘制多边形使用PHP,但实际上任何图形库和语言都可以。嗯,我应该注意到,最困难的部分是将数据加载到我的数据库中。我有一个用于辖区的表、一个用于多边形的表和一个用于点的表。为了做到这一点,我必须修改shp2mysql。这意味着进行查询以获取所有数据点非常简单在某一管辖范围内的多边形,按多边形排序=>易于绘制多边形。