高德地图api(javascript)只显示某一行政区域的地图,其他周边地区的都不显示

本文介绍如何使用高德地图API创建地图遮罩效果,并通过多边形覆盖物展示特定区域,包括设置地图样式、定义多边形边界及属性等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Polygon类

覆盖物>多边形    相关参数详情 https://lbs.amap.com/api/javascript-api/reference/overlay#polygon

 

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>地图遮罩</title>
    <style>
    html,
    body,
    #container {
        margin:0;
        height: 100%;
    }
    </style>
</head>
<body>
<div id="container"></div>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=申请的key&plugin=AMap.DistrictSearch"></script>
<script>
    var map = new AMap.Map('container', {
        zoom:12.6,
        center:[116.364495,39.930694],
          pitch: 0,
        viewMode: '3D',
        //设置地图背景图 
        mapStyle:'amap://styles/40035571fa9fdd05a26fe1b05f48fdc9'
        
    });
       //map.setZoom(12.2); //设置地图层级
    new AMap.DistrictSearch({
        extensions:'all',
        subdistrict:0
    }).search('西城区',function(status,result){
        // 外多边形坐标数组和内多边形坐标数组
        var outer = [
            new AMap.LngLat(-360,90,true),
            new AMap.LngLat(-360,-90,true),
            new AMap.LngLat(360,-90,true),
            new AMap.LngLat(360,90,true),
        ];
        var holes = result.districtList[0].boundaries

        var pathArray = [
            outer
        ];
        pathArray.push.apply(pathArray,holes)
        var polygon = new AMap.Polygon( {
            pathL:pathArray,
            //线条颜色,使用16进制颜色代码赋值。默认值为#006600
            strokeColor: 'rgb(20,164,173)',
            strokeWeight: 4,
            //轮廓线透明度,取值范围[0,1],0表示完全透明,1表示不透明。默认为0.9
            strokeOpacity:0.5,
            //多边形填充颜色,使用16进制颜色代码赋值,如:#FFAA00
            fillColor: 'rgba(0,0,0)',
            //多边形填充透明度,取值范围[0,1],0表示完全透明,1表示不透明。默认为0.9
            fillOpacity: 1,
            //轮廓线样式,实线:solid,虚线:dashed
            strokeStyle:'dashed',
            /*勾勒形状轮廓的虚线和间隙的样式,此属性在strokeStyle 为dashed 时有效, 此属性在    
              ie9+浏览器有效 取值: 
              实线:[0,0,0] 
              虚线:[10,10] ,[10,10] 表示10个像素的实线和10个像素的空白(如此反复)组成的虚线
              点画线:[10,2,10], [10,2,10] 表示10个像素的实线和2个像素的空白 + 10个像素的实 
              线和10个像素的空白 (如此反复)组成的虚线*/
            strokeDasharray:[10,2,10]
        });
        polygon.setPath(pathArray);
        map.add(polygon);
       /*   var polyline = new AMap.Polyline({
        strokeColor: '#3366FF',   // 线颜色
        strokeOpacity: 1,         // 线透明度
        strokeWeight: 2,          // 线宽
        strokeStyle: 'solid',     // 线样式
        strokeDasharray: [10, 5], // 补充线样式
        geodesic: false            // 绘制大地线
    });
       polyline.setPath(pathArray);
       map.add(polyline);*/  
    })
</script>
</body>
</html>

 

高德地图是一个提供在线地图服务的应用,如果你想要在地图上仅显示杭州市,并以区县级别划分并显示白色分割线,你可以按照以下步骤操作: 1. **设置地理区域**:在高德地图API中,首先需要获取杭州的地图数据层,可以使用`AMap.AMapComponent.setZoomAndCenter(cityCode, zoomLevel)`函数,其中`cityCode`是杭州市的行区划代码(例如“006”代表杭州市),`zoomLevel`指定地图缩放等级。 2. **选择地图样式**:使用`AMap.Map.setMapStyle(styleId)`来切换到包含区县边界线的地图样式,通常地图API会提供预设的风格可以选择,比如选择有区县界线和白色线条的样式。如果需要特定样式,可能需要查阅高德地图API文档或定制化地图样式。 3. **隐藏其他城市信息**:通过设置地图视野范围和比例尺,确保地图显示杭州及其周边地区,可以使用`AMap.Map.setBounds()`方法限制视图的边界。 4. **自定义区县线条颜色**:虽然默认的区县线条可能是白色的,但是如果你想更改颜色,可以在地图创建时或者之后修改地图组件的`polylineOptions`,设置`strokeColor`属性为白色。 请注意查看高德地图JavaScript API的具体文档,因为实际操作可能会有一些细微的变化,特别是关于地图样式的部分。下面是示例代码片段(假设已导入高德地图API): ```javascript // 初始化地图 var map = new AMap.Map('container', { zoom: 11, // 初始缩放级别 center: [120.15, 30.27], // 杭州市中心坐标 mapStyle: 'amap://styles/v1/major_city_zones' // 使用预设的区县风格 }); // 设置地图视图仅限于杭州市 AMap.AMapComponent.setZoomAndCenter('006', 11); // 可能需要进一步调整视图边界 map.setBounds(new AMap.Bounds([119.8, 30.0], [120.6, 30.7])); // 如果需要,可以修改区县线条颜色 var polygonOptions = { strokeColor: '#FFFFFF' }; map.addPolyline([...], polygonOptions); ```
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值