我们的网络应用程序包括简单的地图功能(目前仅是嵌入式Google地图上的标记和KML叠加层)。这很好用;我们面临的唯一真正的限制是KML叠加层,它超出了Google 对KML的大小和复杂性的限制。
我们正在考虑建立自己的服务器(例如GeoServer或ArcGIS Server);但这似乎是一个巨大的步骤,例如,当Google的上限为10 MB时,仅提供15 MB的KML。
我需要进行完备性检查:在Google的免费KML叠加层API和设置我自己的tile服务器之间是否有中间立场?
我们的网络应用程序包括简单的地图功能(目前仅是嵌入式Google地图上的标记和KML叠加层)。这很好用;我们面临的唯一真正的限制是KML叠加层,它超出了Google 对KML的大小和复杂性的限制。
我们正在考虑建立自己的服务器(例如GeoServer或ArcGIS Server);但这似乎是一个巨大的步骤,例如,当Google的上限为10 MB时,仅提供15 MB的KML。
我需要进行完备性检查:在Google的免费KML叠加层API和设置我自己的tile服务器之间是否有中间立场?
Answers:
由于您已经投资了Google Maps开发,因此我强烈建议将所有数据推送到Google Fusion Tables中,然后以类似于KML的方式将其解析为具有出色性能的KML(请参阅WNYC Fusion Tables应用程序)。考虑将其升级为KML,而无需大幅度修改前端。
您可以使用引用较小KML的父KML将您的KML分解为多个KML。至少这将使文件大小降低到可观的水平,并使您可以引用更大的数据集作为KML。
老实说,KML实际上仅适用于具有少量功能和相关属性的小型数据集。我不会接近它作为文件数据源。如果您正在查看这些文件越来越大,那么我会考虑另一种数据类型,或者肯定是沿着GeoServer / MapServer路线查找分布式数据集。
如果您没有在Google Maps API上花费太多时间,则可以切换到OpenLayers,该客户端具有可以读取您自己的KML文件的客户端KML解析器-请参见以下示例:
http://openlayers.org/dev/examples/kml-layer.html
但是,对于15MB的文件,这可能会使浏览器停顿下来。当您接近文件大小限制时,通过Google服务器的速度可能也相当慢。
确实需要15MB的详细信息级别,还是可以简化KML而不丢失太多信息?
您是否需要在客户端访问向量/几何?可以将这些数据用作图像吗?
如果上述两种方法都不可行,则您必须查看某种地图服务类型的软件。与ArcGIS Server的GeoServer一起,您可以考虑将MapServer用作KML或作为WFS。使用地图服务器的好处是请求将仅返回地图中的数据-减少了网络流量并减少了加载时间。
您是否尝试过Google Fusion Tables。 http://www.google.com/fusiontables/public/tour/index.html
您最多可以免费加载100mb的数据。