题目宏大又拗口。没办法,我水平提升了,写文章的境界也应一起提升。所谓的提升,就是包装,要能唬得住人。比如方法总结要说成解决方案,不能扭扭捏捏,期期艾艾地说什么“心得一例”之类,太小家子气了。

就是解决方案,问你怕未。

话说,arcgis for js api里面,点击地图对象,弹出气泡(InfoWindow),这是标配。这个气泡,可以设置大小,显示图形属性,等等。一般来说这就够用了。但假如想显示些更复杂的内容,甚至做些更复杂的操作,该怎么办?

比如说:
点击地图某个对象,播放一段视频;打开一张全景图;或者不想显示这个气泡,改用自定义样式的弹窗,等等。

遇到这些情况,当然可以在它们的点击事件中针对性地写相关代码,一点问题都没有。但如果是好多图层,每个图层情况都不一样,那么代码就会相当的庞杂,条件判断语句层层嵌套。

其实可以采用一个通用的解决方案,简而言之,就是控制气泡内容来实现效果。具体思路是:

点击地图对象的时候,无须写针对性代码,还是采用系统默认的办法,让它弹出气泡,然后在这个气泡内容里想办法。气泡有所谓模板,里面可以设置样式和html标记。这就提供了足够的切入点。

我们可以在样式里控制气泡的大小和样式,甚至让它隐藏;html 标记可以是​​<iframe>​​,在嵌入页面里写上相关JS代码,即可为所欲为矣。

原理相当简单,无须举例。

参考拙作:
​arcgis for js 设置气泡大小