赞
踩
实现效果:
<!DOCTYPE HTML> <html> <head> <meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=0"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>区域掩模</title> <style> body,html,#container{ margin:0;width: 100%;height: 100%} </style> </head> <body> <div id="container"></div> <script language="javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=de45c1a0e7ea44bea49388cea9cca2f7&plugin=AMap.DistrictSearch"></script> <script language="javascript"> var opts = { subdistrict: 0, extensions: 'all', level: 'province' }; //利用行政区查询获取边界构建mask路径 //也可以直接通过经纬度构建mask路径 var district = new AMap.DistrictSearch(opts); district.search('青海省', function(status, result) { var bounds = result.districtList[0].boundaries; var mask = [] for(var i =0;i<bounds.length;i+=1){ mask.push([bounds[i]]) } var map = new AMap.Map('container', { mask:mask, center:[95.77,36.62], viewMode:'3D', zoom:5, mapStyle: 'amap://styles/021981e1781074e215441507a954df4b', //设置地图的显示样式 }); //添加高度面 var object3Dlayer = new AMap.Object3DLayer({zIndex:100}); map.add(object3Dlayer) var height = -8000; var color = '#red'; var wall = new AMap.Object3D.Wall({ path:bounds, height:height, color:color }); wall.transparent = true object3Dlayer.add(wall) //添加描边 for(var i =0;i<bounds.length;i+=1){ new AMap.Polyline({ path:bounds[i], strokeColor:'#3078AC', strokeWeight:3, map:map }) } }); </script> </body> </html>
代码:
<!DOCTYPE HTML> <html> <head> <meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=0"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>区域掩模</title> <style> body,html,#container{ margin:0;width: 100%;height: 100%} </style> </head> <body> <div id="container"></div> <script language="javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=de45c1a0e7ea44bea49388cea9cca2f7&plugin=AMap.DistrictSearch"></script> <script language="javascript"> var opts = { subdistrict: 0, extensions: 'all', level: 'province' }; //利用行政区查询获取边界构建mask路径 //也可以直接通过经纬度构建mask路径 var district = new AMap.DistrictSearch(opts); district.search('青海省', function(status, result) { var bounds = result.districtList[0].boundaries; var mask = [] for(var i =0;i<bounds.length;i+=1){ mask.push([bounds[i]]) } var map = new AMap.Map('container', { mask:mask, center:[95.77,36.62], viewMode:'3D', zoom:5 }); //添加描边 for(var i =0;i<bounds.length;i+=1){ new AMap.Polyline({ path:bounds[i], strokeColor:'#3078AC', strokeWeight:20, map:map }) } }); </script> </body> </html>
直接新建个html,把上述代码复制进去,然后chrome浏览器打开据可以了。
如果不行的话,就是高德地图的key,你得用你自己的。
没有自己的key,就需要在高德这里注册这个key:https://console.amap.com/dev/key/app。
另外,因为这里用了获取省份边界的插件,所以是需要这个plugin的:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。