百度地图绘画行政区域

百度地图绘画行政区域

因为有个需求是要用在线地图只展示市的行政区域,还有ui设计的样式,所以只能自己绘画了。
效果图:
地图
上代码

<baidu-map ref="baiduMap" class="map" :center="mapCon.center" :zoom="mapCon.zoom" @ready="handler" @touchend="mapTouchend">
                <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
            </baidu-map>

data(){
	return{
		mapCon:{
                center:{lng:"113.62",lat:"24.84"},
                zoom:9
            },
        areaGroup:[
                {
                    name:"武江区",
                    color:"#E9F3FF"
                },
                {
                    name:"曲江区",
                    color:"#C1E0FF"
                },
                {
                    name:"浈江区",
                    color:"#87CEFF"
                },
                {
                    name:"始兴县",
                    color:"#4AA4FF"
                },
                {
                    name:"翁源县",
                    color:"#1B83EC"
                },
                {
                    name:"仁化县",
                    color:"#E9F3FF"
                }
            ],
	}
},


methods:{
handler({
            BMap,
            map
        }) {
            this.womap = map;
            this.myBMap = BMap;
            map.enableScrollWheelZoom(true)
            map.centerAndZoom('韶关市', 9)
            this.getRegionalStatistics()
            this.setMapStyle();
        },
        // 绘制行政区域
        getBoundary(item){
            let BMap = this.myBMap, map = this.womap,that = this;
            var bdary = new BMap.Boundary();
            bdary.get(item.name, function (rs) {  
                // 绘制行政区域
                var ply = new BMap.Polygon(rs.boundaries[0], {
                    strokeWeight: 1,
                    strokeColor: "#666",
                    fillColor: item.color,//显示的地图区域颜色设置
                    fillOpacity: 1,
                });
                map.addOverlay(ply);

                //添加名称标签层
                var centerlabel = new BMap.Label(item.name, { offset: new BMap.Size(0, 0) });
                centerlabel.setPosition(ply.getBounds().getCenter());
                centerlabel.setStyle({
                    color : "#333333",
                    fontFamily:"微软雅黑",
                    backgroundColor:"transparent",
                    border:"none"
                });
                map.addOverlay(centerlabel);
                
                
            })
        },
        // 设置地图样式
        setMapStyle(){
            this.womap.setMapStyle({
                styleJson:[
                    {
                        "featureType": "poi",
                        "elementType": "all",
                        "stylers": {
                            "color": "#ffffff",
                            "visibility": "off"
                        }
                    },
                    {
                        "featureType": "road",
                        "elementType": "all",
                        "stylers": {
                            "color": "#ffffff",
                            "visibility": "off"
                        }
                    },
                    {
                        "featureType": "background",
                        "elementType": "all",
                        "stylers": {
                            "color": "#ffffff"
                        }
                    },
                    {
                        "featureType": "administrative",
                        "elementType": "all",
                        "stylers": {
                            "color": "#ffffff",
                            "visibility": "off"
                        }
                    }
                ]
            });
        },
        //地图触摸事件(移动端没有click事件)
        async mapTouchend(e){
            let BMap = this.myBMap, map = this.womap,that = this;
            var geoc = new BMap.Geocoder();  
            var pt = e.point;
            geoc.getLocation(pt, function(rs){
                var addComp = rs.addressComponents;
                
                that.areaName = addComp.district
                that.areaData.forEach(item=>{
                    if(item.district === addComp.district){
                        that.isShowDetail = true;
                        let legend = item.series.map(leg=>{
                            return leg.name
                        })
                        that.yesterdayValue = item.yesterdayValue
                        that.waterRate = parseFloat(item.yesterdayLoadRate)*100;
                        
                        that.$set(that.districtOpt.xAxis, 'data', item.xData)
                        that.$set(that.districtOpt.legend,'data',legend)
                        that.$set(that.districtOpt,'series' , item.series)
                        that.$set(that.districtOpt,'yAxis' , item.yAxis)
                    }
                })
            }); 
        },
        async getRegionalStatistics(){
            const data = await this.$axios({
                url: "/getProvice",
                method: 'get',
                params: {
                    name:"韶关市"
                }
            });
            this.areaData = data.data.data;
            this.areaGroup = [];
            data.data.data.forEach(item=>{
                let obj = {};
                obj.name = item.district;
                if(item.yesterdayLoadRate >= 1){
                    obj.color = "#1B83EC"
                }else if(item.yesterdayLoadRate >= 0.7 && item.yesterdayLoadRate<1){
                    obj.color = "#4AA4FF"
                }else if(item.yesterdayLoadRate >= 0.4 && item.yesterdayLoadRate<0.7){
                    obj.color = "#87CEFF"
                }else if(item.yesterdayLoadRate >= 0 && item.yesterdayLoadRate<0.4){
                    obj.color = "#C1E0FF"
                }else{
                    obj.color = "#E9F3FF"
                }
                this.areaGroup.push(obj)
            })
            this.areaGroup.forEach(item=>{
                this.getBoundary(item)
            })
        },
   }



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
关于百度绘画AI的 PHP 开发,你可以使用百度的开放平台提供的接口来实现。百度提供了一个名为「百度AI开放平台」的服务,其中包含了绘画AI的接口。 要使用百度绘画AI的 PHP 开发,你需要先在百度AI开放平台注册并创建一个应用。然后,使用百度提供的 SDK 或直接调用 API 来调用绘画AI的功能。 以下是一个简单的示例代码,演示如何使用百度绘画AI的 PHP SDK 进行绘画: ```php <?php require_once 'AipImageClassify.php'; // 在百度AI开放平台创建应用后获得的API Key和Secret Key const APP_ID = 'YOUR_APP_ID'; const API_KEY = 'YOUR_API_KEY'; const SECRET_KEY = 'YOUR_SECRET_KEY'; // 初始化AipImageClassify对象 $client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); // 调用绘画AI的接口进行绘画 $image = file_get_contents('path_to_your_image.jpg'); // 替换成你的绘画片的路径 $result = $client->painting($image); // 打印绘画AI的结果 print_r($result); ?> ``` 需要注意的是,上述代码中的 `YOUR_APP_ID`、`YOUR_API_KEY` 和 `YOUR_SECRET_KEY` 分别对应你在百度AI开放平台创建应用后获得的应用ID、API Key 和 Secret Key,你需要将其替换成你自己的值。 此外,你还可以直接调用百度绘画AI的 RESTful API 来实现绘画功能。具体的接口文档和调用方法可以参考百度AI开放平台的文档。 希望这个示例代码能帮助到你!如果有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值