访问量: 163 次浏览
我们现在遇到的webGIS,基本都是简单的点线面的展示, 传统webGIS复杂的分析方法、算法用到的不多, 因此我觉得前端遇到的问题是,前端如何具备更高的性能, 如何具有更好的交互性,如何将数据存储到tile里去,按需加载, 避免网络传输,如何在前后端进行一些分析计算,还有如何保护数据, 不至于被直接爬虫了,等等。
我们用的基本还是js + nodejs + mongo/postgis, 公司也有不少离线计算、实时计算、 流式计算云云的大后端输出的信息包含地理, 但这些一般做好接口就行了,mongo/postgis 自己玩或者数据量不大的情况都可以考虑,后者非常推荐。
nodejs和数据库的对接方面
1、关系型数据库(主要postgres): 如果你对ORM比较青睐,少写几个sql,可以考虑用sequelize.js。
2、mongoDB,还是比较推荐moogoose,用起来都很舒服。
通过矢量数据渲染瓦片和提供地图服务
渲染可以考虑mapnik,瓦片服务器可以是geoserver或mapserver, 都是非常经典的款型了,可以在github上搜索一下cartoDB, 看看他们是如何通过开源框架做拼合的,如果要想简单一些,用Mapbox Studio, 看看如何通过和less语法类似的cartoCSS去定义自己的底图。
前端基本的框架
leaflet不错,小、快、扩展性好, openlayer也有一些用户,leaflet可以加各种叠加层, 反正各种绘制方法都可以有,可以放在他自己定义的层里面, 他的js帮你去完成层的拖拽等功能。
前端海量渲染
非webgl莫属了,光画点,100w都是支持的。 用webgl应该也是个趋势, 比如mapbox-gl从原生的webgl开始写了个现在越来越器重的库。 而且支持3d,这个在传统gis里应该是比较弱的, 尤其是3d还要大量绘制。
前端的强交互
交互性好,还是svg比较在行, 但性能不是很好,特别是手机, 如果有要求,可以考虑基于canvas的交互的库, 开源的比如 fabric.js 、 kinetic.js、konva.js, 还有百度的zRender等等。