全国主要城市街镇shp

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以通过以下步骤来实现点击街镇或区高亮的功能: 1. 在百度地图上加载街镇或区的边界数据。你可以使用百度地图提供的GeoJSON数据或自己提供的数据。 2. 监听地图上的点击事件,当用户点击地图上的街镇或区时,获取该区域的名称或ID。 3. 根据获取到的名称或ID,找到对应的区域边界数据,并使用百度地图提供的API将其高亮显示。 以下是一个示例代码: ```html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>百度地图API</title> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script> </head> <body> <div id="map" style="width:100%;height:500px;"></div> <script type="text/javascript"> var map = new BMap.Map("map"); // 创建地图实例 var point = new BMap.Point(116.404, 39.915); // 创建点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和缩放级别 // 加载街镇或区的边界数据 var district = new BMap.Boundary(); district.get("朝阳区", function (rs) { var count = rs.boundaries.length; // 边界线条数 if (count === 0) { alert("未能获取到该区域边界数据"); return; } var polygonArray = []; // 多边形一维数组 for (var i = 0; i < count; i++) { var polygon = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#fc0", fillColor: "#fc0", fillOpacity: 0.3 }); map.addOverlay(polygon); polygonArray.push(polygon); } // 监听地图上的点击事件 map.addEventListener("click", function (e) { var point = new BMap.Point(e.point.lng, e.point.lat); var cityName = ""; // 所在城市名称 var districtName = ""; // 所在街镇或区名称 var districtId = ""; // 所在街镇或区ID var districtPolygon = null; // 所在街镇或区多边形对象 // 根据点击的坐标获取所在城市名称和街镇或区名称 var myGeo = new BMap.Geocoder(); myGeo.getLocation(point, function (result) { if (result) { cityName = result.addressComponents.city; districtName = result.addressComponents.district; // 根据街镇或区名称获取对应的多边形对象和ID for (var i = 0; i < polygonArray.length; i++) { if (polygonArray[i].getFillColor() !== "#fc0") { polygonArray[i].setFillColor("#fc0"); } if (GeoUtils.isPointInPolygon(point, polygonArray[i].getPath())) { districtPolygon = polygonArray[i]; districtId = districtName; districtPolygon.setFillColor("#f00"); } } console.log("城市名称:" + cityName); console.log("街镇或区名称:" + districtName); console.log("街镇或区ID:" + districtId); } }); }); }); </script> </body> </html> ``` 注意:在使用百度地图API时,需要替换代码中的“你的AK”为你自己的百度地图开发者AK。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据服务生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值