基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标

当我们需要在网站上显示特定区域的地图界面时,我们需要提取地图的行政区边界的经纬度坐标。在本文中,我们将使用JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标。

准备工作

在开始之前,我们需要在相应的地图开发平台上注册账号并获取相应的API Key。对于高德地图,可以在高德地图开放平台上注册并获取Key;对于百度地图,可以在百度地图开放平台上注册并获取Key。

同时,我们需要准备好用于调用API的JavaScript脚本,并将其引入到网页中。

高德地图提取行政区边界经纬度坐标

步骤一:创建地图实例

我们先创建一个地图实例,并设置其中心点和缩放级别:

var map = new AMap.Map('container', {
  center: [116.397428, 39.90923],
  zoom: 10
});

其中,container是一个<div>元素的ID,用于在网页上显示地图。

步骤二:调用行政区查询服务

接下来,我们调用高德地图的行政区查询服务:

var district = new AMap.DistrictSearch({
  subdistrict: 1,   // 返回下级行政区边界
  extensions: 'all', // 包含行政区边界坐标点等信息
  level: 'city'      // 查询行政区级别为城市
});

步骤三:设置行政区查询结果回调函数

我们设置一个函数作为行政区查询结果回调函数,该函数将会在查询结果返回时被调用:

district.search('北京市', function(status, result) {
  if (status === 'complete') {
    // 查询成功,处理行政区边界数据
  }
});

在此函数中,我们将查询关键词设置为北京市,并在查询成功时处理返回的行政区边界数据。

步骤四:处理行政区边界数据

在行政区查询结果回调函数中,我们通过result.districtList获取行政区边界数据。该数据是一个数组,每个元素代表一个行政区。

我们可以遍历该数组,获取每个行政区的边界坐标数据:

for (var i = 0; i < result.districtList[0].boundaries.length; i++) {
  var polygon = new AMap.Polygon({
    map: map,
    strokeWeight: 1,
    strokeColor: '#333',
    fillColor: '#ccc',
    fillOpacity: 0.3,
    path: result.districtList[0].boundaries[i]
  });
}

在此代码中,我们使用AMap.Polygon类创建了一个矢量面,其path属性设置为当前行政区的边界坐标数据。

综上所述,完整的高德地图提取行政区边界经纬度坐标的示例代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>高德地图提取行政区边界经纬度坐标</title>
  <script src="https://webapi.amap.com/maps?v=1.4.15&key=您的Key值"></script>
  <style>
    #container {
      width: 1000px;
      height: 500px;
      margin: 20px auto;
    }
  </style>
</head>
<body>
  <div id="container"></div>

  <script>
    var map = new AMap.Map('container', {
      center: [116.397428, 39.90923],
      zoom: 10
    });

    var district = new AMap.DistrictSearch({
      subdistrict: 1,
      extensions: 'all',
      level: 'city'
    });

    district.search('北京市', function(status, result) {
      if (status === 'complete') {
        for (var i = 0; i < result.districtList[0].boundaries.length; i++) {
          var polygon = new AMap.Polygon({
            map: map,
            strokeWeight: 1,
            strokeColor: '#333',
            fillColor: '#ccc',
            fillOpacity: 0.3,
            path: result.districtList[0].boundaries[i]
          });
        }
      }
    });
  </script>
</body>
</html>

百度地图提取行政区边界经纬度坐标

步骤一:创建地图实例

与高德地图类似,我们先创建一个百度地图实例,并设置其中心点和缩放级别:

var map = new BMap.Map('container');
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

步骤二:调用行政区查询服务

接下来,我们调用百度地图的行政区查询服务:

var bdary = new BMap.Boundary();

步骤三:设置行政区查询结果回调函数

我们设置一个函数作为行政区查询结果回调函数,该函数将会在查询结果返回时被调用:

bdary.get('北京市', function(rs) {
  // 查询成功,处理行政区边界数据
});

在此函数中,我们将查询关键词设置为北京市,并在查询成功时处理返回的行政区边界数据。

步骤四:处理行政区边界数据

在行政区查询结果回调函数中,我们通过rs.boundaries获取行政区边界数据。该数据是一个数组,每个元素代表一个行政区。

我们可以遍历该数组,获取每个行政区的边界坐标数据:

for (var i = 0; i < rs.boundaries.length; i++) {
  var polygon = new BMap.Polygon(rs.boundaries[i], {
    strokeWeight: 1,
    strokeColor: '#333',
    fillColor: '#ccc',
    fillOpacity: 0.3
  });
  map.addOverlay(polygon);
}

在此代码中,我们使用BMap.Polygon类创建了一个矢量面,其构造函数的第一个参数设置为当前行政区的边界坐标数据。

综上所述,完整的百度地图提取行政区边界经纬度坐标的示例代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>百度地图提取行政区边界经纬度坐标</title>
  <script src="https://api.map.baidu.com/api?v=3.0&ak=您的Key值"></script>
  <style>
    #container {
      width: 1000px;
      height: 500px;
      margin: 20px auto;
    }
  </style>
</head>
<body>
  <div id="container"></div>

  <script>
    var map = new BMap.Map('container');
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);

    var bdary = new BMap.Boundary();

    bdary.get('北京市', function(rs) {
      for (var i = 0; i < rs.boundaries.length; i++) {
        var polygon = new BMap.Polygon(rs.boundaries[i], {
          strokeWeight: 1,
          strokeColor: '#333',
          fillColor: '#ccc',
          fillOpacity: 0.3
        });
        map.addOverlay(polygon);
      }
    });
  </script>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • javascript作用域和闭包使用详解

    JavaScript作用域和闭包使用详解 什么是作用域 作用域是指变量的可访问范围。在JavaScript中,变量的作用域主要有两种,全局作用域和局部作用域。 全局作用域中定义的变量可以被任何代码访问,而局部作用域中定义的变量只能在其所在的代码块(比如函数,循环等)中访问。 在JavaScript中,作用域链是沿着嵌套的代码块向上查询变量定义的一条链。如果当…

    JavaScript 2023年6月10日
    00
  • JS面向对象之多选框实现

    JS面向对象之多选框实现是一个比较基础的JavaScript面向对象应用,它的实现过程也相对简单,下面我将为大家详细讲解其完整攻略。 一、需求分析 在实现之前,我们需要先进行需求分析。在本次多选框实现中,我们需要完成以下几个基本功能: 点击某个多选框实现选中或取消选中该选项的功能; 点击“全选”按钮,所有多选框均被选中; 点击“取消全选”按钮,所有多选框均被…

    JavaScript 2023年6月10日
    00
  • JavaScript在控件上添加倒计时功能的实现代码

    下面是关于“JavaScript在控件上添加倒计时功能的实现代码”的完整攻略。 1. 实现思路 要在控件上添加倒计时功能,需要实现以下几步: 获取需要显示倒计时的控件对象; 设置倒计时的总时间(例如60秒)和时间间隔(例如每一秒钟); 创建一个计时器,定时更新控件上显示的倒计时时间; 到达倒计时结束时间后,清除计时器。 2. 实现代码示例 以下是两个实现倒计…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript数组的常用方法

    详解JavaScript数组的常用方法 简介 在JavaScript中,数组是一种非常常见的数据类型。数组可以包含多种类型的数据,包括数字、字符串、对象等等。JavaScript提供了一系列的数组方法,可以方便地操作数组数据。在本篇文章中,我们将会介绍一些经常使用的JavaScript数组的方法。 push() push()方法可以向数组的末尾添加一个或多个…

    JavaScript 2023年5月27日
    00
  • JS 实现Base64编码与解码实例详解

    JS 实现Base64编码与解码实例详解 Base64是一种将二进制数据编码为ASCII字符的方法。通过该编码方式,可以将二进制数据以可读的方式在不同系统中传输或储存。 什么是Base64 在计算机中,数据存储都是以二进制位(bit)为单位的,但是在我们人类的角度下,二进制是很难读懂的,如00101011。因此为了呈现数据,可以采用16进制、ASCII等方式…

    JavaScript 2023年5月20日
    00
  • js实现鼠标切换图片(无定时器)

    JS实现鼠标切换图片(无定时器)的攻略如下: 步骤一:搭建HTML结构 首先,我们需要搭建一个HTML结构,用于展示图片和显示鼠标切换效果。具体可以参考下面的代码示例: <div class="img-wrapper"> <img src="https://picsum.photos/id/1/200/300&…

    JavaScript 2023年6月11日
    00
  • 通过原生JS实现为元素添加事件的方法

    通过原生JS为元素添加事件可以使用 addEventListener() 方法。以下是实现为元素添加点击事件的步骤: 获取需要添加事件的元素 首先需要获取需要添加事件的元素,可以使用 document.getElementById() 方法获取元素的引用,也可以使用 document.querySelector() 方法获取元素的引用,具体使用哪一种方法取决…

    JavaScript 2023年6月10日
    00
  • JS图片预加载 JS实现图片预加载应用

    JS图片预加载指的是在页面加载时,提前加载所有需要的图片资源,从而缩短用户等待时间,提高用户体验。下面,我将为大家介绍如何使用JavaScript实现图片预加载以及如何应用到实际项目中。 实现图片预加载 以下是实现图片预加载的JavaScript代码: let imgList = new Array( "image1.jpg", &quo…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部