// 高德地图工具类 var MapUtil = { /** * 添加地图边界 *
     * config:
     *      region: 行政区划代码
     *      areaName: 行政区划名称
     *      earecode: admin.earecode
     *
     * 
* @param {Object} map 高德地图 map 实例 * @param {{ region:string, * areaName:string, * earecode:string}} config 配置 */ add_border: function (map, config) { var district; var areaDisLevel = config.earecode; var len = areaDisLevel.length; var areaName = ''; if (len == 6) { areaDisLevel = 'district'; } else if (len == 4) { areaDisLevel = 'city'; } else { areaDisLevel = 'province'; areaName = '河北省'; config.areaName = areaName; } if (map != null) { var obj = MAP_BORDER_ARR[config.region]; if (obj != null) { var polygon = new AMap.Polygon({ path: obj.borderArray, fillColor: '#80d8ff', // 多边形填充颜色 strokeWeight: 5, // 线条宽度,默认为 1 fillOpacity: 0, strokeColor: '#0091ea', // 线条颜色 }); map.add(polygon); if (obj.zoom) { map.setZoom(10); } map.setCenter(obj.center); } else { var polygons = []; var name = config.areaName; AMap.service('AMap.DistrictSearch', function () {//回调函数 var opts = { showbiz: false, subdistrict: 0, //获取边界不需要返回下级行政区 extensions: 'all' //返回行政区边界坐标组等具体信息 }; district = new AMap.DistrictSearch(opts); district.setLevel(areaDisLevel);//district、city、province、country district.search(name, function (status, result) { if (polygons == null || polygons.length == 0) { map.remove(polygons); //清除上次结果 polygons = []; } var bounds = result.districtList[0].boundaries; if (bounds) { for (var i = 0, l = bounds.length; i < l; i++) { //生成行政区划polygon var polygon = new AMap.Polygon({ strokeWeight: 5, path: bounds[i], fillOpacity: 0, fillColor: '#80d8ff', strokeColor: '#0091ea' }); polygons.push(polygon); } } map.add(polygons); map.setFitView(polygons);//视口自适应 }); }); } } } };