关于高德地图的一些坑

645 阅读2分钟

主要是在应用高德地图进行个性化开发时候碰到的问题,之前使用公司项目大屏幕项目UI设计需要凸显广州市地图,其他部分掩盖,之前考虑几种方案:多边形绘制镂空(遮住除了广州市之外的地方),区域掩模(只显示广州市部分);由于UI那边需要3D效果,区域掩模也符合UI设计视觉,最后选择了区域掩模;这里就说下碰到的坑吧 第一个是鼠标悬停在广州市某个区的时候,需要点亮,直接修改遮层的透明度就可以; that.setOptions({ fillOpacity: 0.7, fillColor: "#1BACFF", }); 直接修改fillOpacity从0.4改成0.7即可,悬停显示内容需要对应每一个值,定位数组index就行赋值会一直显示最后一个数组的值,后来差了资料才知道要加入每一个区的object里面字段,否则无效,实现代码如下: 每个区的边框用的多边形方法绘制,或者使用 var district = new AMap.DistrictSearch(opts); district.search("广州市", (status, result) => {}),把广州市修改成对应区名字即可 我们项目选择前者,let polygon = new AMap.Polygon({}),polygon.object = guangzhouJson.features[i]; features[i]里面包含需要显示的每个区对应内容;(注意,必须放入成为它的一个属性,用数组定位会显示最后一个值的内容) 第二个就是版本问题,当时要用到多边形绘制悬停点亮效果,1.4.15版本没有效果,转而用2.0版本代码,但是这边又出现问题了: 1.4.15版本能够正常使用:viewMode: "3D",添加高度面var wall = new AMap.Object3D.Wall({}),但是使用2.0版本时候报错,试了好几种网上方法也是报错,最后直接查看官网代码,,额,官网也是报错的 lbs.amap.com/api/javascr…

不知道是不是官方在2.0没有实现那种3d效果,已经向官方提醒,还没回复

其他的还好,比如调用天气预报接口获取天气信息,虽然信息有限,但是也挺好用的;还有,区域掩模网上资料比较少,有的也比较简单,我们这个项目在高德地图区域掩模中添加了geojson,然后其他部分都像使用真实地图一般使用,使用mouseover,mouseout完成悬停点亮区域及显示内容效果,需要使用到延迟,否则会边界时候一直闪,这在jq里面已经解决,Vue的还没有,找个时间做个研究吧