Cesium项目实战(5)-城市各类POI数据制作、加工、展示

百度百科关于POI是这样解释的。POI是"Point of Interest"的缩写,中文可以翻译为"兴趣点"。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。每个POI包含四方面信息,名称、类别、坐标、分类,全面的POI讯息是丰富导航地图的必备资讯,及时的POI兴趣点能提醒用户路况的分支及周边建筑的详尽信息,也能方便导航中查到你所需要的各个地方,选择最为便捷和通畅的道路来进行路径规划,因此,无论是车载导航还是手机导航,导航地图POI多少状况直接影响到导航的好用程度,导航地图中POI信息点的多少以及信息的准确程度和信息更新速度,都严重影响到一款导航的使用情况。

我们可以理解为POI在任何一个GIS系统中,都占据了非常重要的地位。因此,如何收集POI信息,以及如何在三维场景中显示这些POI信息也是非常重要的。很幸运的是,我们获取到了一份北京市较全的POI数据,大概15万条记录,本篇文章就这个数据着重介绍一下,如何加载POI信息。

 

 


笔者获取到的数据为SHP格式,classify为分类属性,本文中,提炼了4s店、餐饮、地铁站、汽车站、超市5个种类,作为示例。

在本篇“城市各类POI数据制作、加工、展示”中我们主要包括如下几个可视化内容。

  1. 普通直接加载
  2. 默认启用汇聚加载
  3. 自定义汇聚加载

1. 普通直接加载

普通直接加载,主要是针对于POI数量比较少的情况下。笔者把shp文件转换成了geojson格式,方便使用,同时,可便于模拟真实情况下的,后台API返回的数据格式。

 

 


 

 


 

 


 

 


 

 

如果觉得上面的效果已经满足了要求的话,下面的内容可以忽略了。


2. 默认启用汇聚加载

汇聚处理一般是针对数据量比较大的情况,如果你的POI信息点过多,可能直接按照上面的方式浏览器就直接崩溃了。

 

 


 

 


3. 自定义汇聚加载

汇聚默认的是采用pinBuilder构造图标的方式,如果觉得默认的不美观,我们可以自定义显示效果。

 

 


 

详细代码请参考 Cesium项目实战小专栏

最后

1、为什么要用geojson格式的数据,还有为什么要用GeoJsonDataSource来加载数据?
答:因为json数据格式需要自己解析,自己构造,自己加载entity、billboard等等,同时Entity对象本身不支持汇聚。而geojson默认支持GeoJsonDataSource解析,同时还可以支持汇聚。

2、为什么会有一个构造数据对象的过程?
答:为了更好的进行代码复用,同时也是为了控制图层显示与隐藏功能。

posted @ 2020-06-06 16:39  疯子110  阅读(3293)  评论(0编辑  收藏  举报