有时候我们想要绘制地图,少不了需要知道边界坐标,如何获取边界坐标呢,很多人会想到地图,不错,很多地图都已经给我们提供了边界坐标的数据
1.百度地图
部分代码示例
// 百度地图API功能
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5);
map.enableScrollWheelZoom();
function getBoundary(){
var bdary = new BMap.Boundary();
bdary.get("北京市海淀区", function(rs){ //获取行政区域
map.clearOverlays(); //清除地图覆盖物
var count = rs.boundaries.length; //行政区域的点有多少个
if (count === 0) {
alert('未能获取当前输入行政区域');
return ;
}
var pointArray = [];
for (var i = 0; i < count; i++) {
var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物
map.addOverlay(ply); //添加覆盖物
pointArray = pointArray.concat(ply.getPath());
}
map.setViewport(pointArray); //调整视野
addlabel();
});
}
其中,bdary.get文字部分输入我们需要获取边界坐标的区域,例如河南省,然后通过rs.boundaries来获取具体的边界坐标数组值
相关demo链接
2高得地图
function(status, result) {
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: 1,
path: bounds[i],
fillOpacity: 0.4,
fillColor: '#80d8ff',
strokeColor: '#0091ea'
});
polygons.push(polygon);
}
}
map.add(polygons)
map.setFitView(polygons);//视口自适应
});
}
高得demo是查询,需要我们手动输入需要查询的地点,然后点击查询即可。其中bounds中就包含了我们需要的边界坐标。
相关demo链接
3.腾讯地图
理论上腾讯应该也有,虽然找到了相关demo,但是demo出了问题,无法测试。
相关demo链接