我一直看到非GIS Web开发人员遇到此问题,而且我不确定解决方案是什么。
- 有一些包含数千个项目的数据集。
- 我们希望向用户显示地图,其中可见的子集显示为交互式,可单击的元素。
有什么方法可以做到这一点?
我可以想到这些,但是它们并不令人满意,所以我想知道还有什么:
将所有数据存储在GeoJSON文件中,将其传输到浏览器,然后让Leaflet显示它。问题:不适用于大型数据集。TopoJSON稍微提高了限制。这也会在页面加载时造成很大的延迟。
使用Mapbox,将所有数据存储在Mapbox的交互式图层中,然后使用Mapbox.js进行显示。效果不错,但要花钱,而且您不能自己托管它。
使用GeoServer访问PostGIS数据库,使用WFS-geojson传单插件从那里访问数据。它可能可以工作,但是似乎不再维护WFS-geojson Leaflet插件。
使用CartoDB,将所有数据存储在CartoDB表中,然后使用CartoDB.js进行显示。效果很好,但价格可能非常昂贵。可以自己托管它,但安装CartoDB并非易事。
所有这些使我认为我必须缺少一些更好的,自由的方法。它是什么?
编辑
也许我太容易注销了WFS-geojson插件。有一个叉子仍然可见一些活动(4个月前):https : //github.com/johanlahti/azgs-leaflet