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

yizhihongxing

当我们需要在网站上显示特定区域的地图界面时,我们需要提取地图的行政区边界的经纬度坐标。在本文中,我们将使用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日

相关文章

  • JS获取当前网址、主机地址项目根路径

    获取当前网址、主机地址、项目根路径这些信息,常用于前端框架的开发中,例如:设置cookie、动态加载CSS、JS等资源、Ajax请求API等。 获取当前网址 我们可以使用 window.location 对象来获取当前网址,window.location.href 属性可返回当前页面的完整URL,包括协议、主机名、路径和查询部分。 const current…

    JavaScript 2023年6月11日
    00
  • 深入理解前端字节二进制知识以及相关API

    当前,前端对二进制数据有许多的API可以使用,这丰富了前端对文件数据的处理能力,有了这些能力,就能够对图片等文件的数据进行各种处理。本文将着重介绍一些前端二进制数据处理相关的API知识,如Blob、File、FileReader、ArrayBuffer、TypeArray、DataView等等。 字节 在介绍各种API之前,我们需要先了解下和字节有关的知识。…

    JavaScript 2023年5月10日
    00
  • ES6字符串和数值新增方法总结

    ES6字符串和数值新增方法总结 以下是ES6中常用的字符串和数值方法。 字符串方法 startsWith(searchString[, position]): 检查字符串是否以指定子字符串开头。 示例: let str = ‘Hello World!’; console.log(str.startsWith(‘Hello’)); // true consol…

    JavaScript 2023年5月28日
    00
  • javascript中常用编程知识

    下面我将为大家详细讲解JavaScript中常用编程知识的完整攻略。 一、变量 在JavaScript中,我们可以使用var、let和const关键字来声明变量。 1. var 使用var声明的变量具有全局或函数作用域。例如: var x = 10; function foo() { var y = 20; console.log(x); // 输出10 c…

    JavaScript 2023年5月27日
    00
  • 在JavaScript并非所有的一切都是对象

    在JavaScript中,“一切皆对象”的说法并不准确。事实上,许多数据类型,比如数字、字符串、布尔值、null和undefined等,都不是对象。 数字和字符串不是对象 如果你创建一个数字或字符串,例如: var num = 123; var str = "Hello World"; 那么这些变量不是对象,它们是前述值的字面量。这意味着…

    JavaScript 2023年6月10日
    00
  • js正则表达式之exec方法讲解

    下面是关于“js正则表达式之exec方法讲解”的完整攻略。 exec方法介绍 正则表达式是一个非常重要的知识点,使用正则表达式可以进行文本匹配和替换,exec() 是Regexp对象的一个方法,用于在字符串中执行正则表达式的搜索,并返回包含结果的数组。如果没有找到匹配,它将返回 null。 该方法的语法如下所示: regexp.exec(str) 其中 re…

    JavaScript 2023年6月10日
    00
  • JS实现五星好评效果

    实现五星好评效果主要分两个步骤,分别是HTML结构布局和JavaScript脚本编写。 HTML结构布局 首先,需要在页面中创建五个星星图标,可以使用<i>标签,设置样式为fa fa-star,并将五个星星元素放置在指定的容器内,如下所示: <div class="star-rating"> <i id=&q…

    JavaScript 2023年6月11日
    00
  • JavaScript数组方法-系统性总结详解

    JavaScript数组方法-系统性总结详解 概述 数组(Array)是JavaScript中最常用、最重要的一种数据类型,而且在实际开发中,我们也经常需要对数组进行各种操作,比如查询、增加、删除、排序等等。JavaScript提供了很多数组方法,让我们能够方便快捷的对数组进行各种操作,使得开发变得更加高效。本篇文章旨在对JavaScript数组方法进行系统…

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