访问量: 317 次浏览
我们现在遇到的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等等。