HTML5 新特性 - 地理定位(基于高德地图API)

定位的基础与原理

  1. IP定位

  2. 运营商基站定位

  3. GPS定位

地理定位的实现

        地理定位API允许用户向web应用程序提供他们的位置(经纬度).但是这个操作需要用户授权.

        获取地理定位的相关代码如下:

let geoloc = window.navigator.geolocation
let success = function(msg){}
let error = function(msg){}
geoloc.getCurrentPosition(
    success,  // 获取定位成功后执行的回调函数  
    error,    // 获取定位失败后执行的回调函数  
    option    // {}对象类型, 指定定位配置参数
);

        一旦定位成功, 将会输出如下位置信息:

coords: Coordinates
    accuracy: 19218           	定位准确度		
    altitude: 0					海拔高度	
    altitudeAccuracy: null		海拔准确度
    heading: NaN			
    latitude: 39.9078			纬度
    longitude: 116.3975			经度
    speed: NaN					运动速度
timestamp: 1636426246419		毫秒时间戳

接入第三方位置服务平台 - 百度地图/高德地图

        高德地图 JS API 是一套 JavaScript 语言开发的的地图应用编程接口,移动端、PC端一体化设计,一套 API 兼容众多系统平台。目前 JS API 免费开放使用。

        JS API 提供了2D、3D地图模式,满足绝大多数开发者对地图展示、地图自定义、图层加载、点标记添加、矢量图形绘制的需求,同时也提供了 POI 搜索、路线规划、地理编码、行政区查询、定位等众多开放服务接口。

        JS API 拥有完善的文档体,系统学习地图和服务接口调用请前往教程,快速了解 JS API 的全部核心能力请前往示例中心。查阅详细接口说明文档请前往参考手册,使用遇到问题可查看常见问题或者提交工单

注册账号并申请Key

  1. 首先,注册开发者账号,成为高德开放平台开发者

  2. 登陆之后,在进入「应用管理」 页面「创建新应用」

  3. 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」

基本使用方法

  1. 新建一个html页面

  2. 新增一个div, 设置cssid属性.

  3. 引入高德地图的script脚本. (替换自己申请的key)

  4. 创建map对象, 在div中初始化地图.

代码示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #container {
        width: 640px;
        height: 360px;
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <div id="container"></div>

    <script
      type="text/javascript"
      src="https://webapi.amap.com/maps?v=1.4.15&key=申请的key"
    ></script>
    <script>
      let geoloc = window.navigator.geolocation;
      geoloc.getCurrentPosition(
        res => {
          let lat = res.coords.latitude; //纬度
          let lng = res.coords.longitude; //精度
          //初始化地图
          var map = new AMap.Map("container", {
            zoom: 18, //级别
            center: [lng, lat], //中心点坐标
            viewMode: "3D", //使用3D视图
          });
          //添加点标记
          var marker = new AMap.Marker({
            position: [lng, lat],
          });
          map.add(marker);
          //弹出信息窗体
          marker.on("click", e => {
            var infoWindow = new AMap.InfoWindow({
              isCustom: false, //使用默认窗口
              content: "<div>信息窗体</div>",
              offset: new AMap.Pixel(16, -45),
              closeWhenClickMap: true,
            });
            infoWindow.open(map, marker.getPosition());
          });
          //引入AMap的插件
          AMap.plugin(
            [
              "AMap.ToolBar",
              "AMap.Scale",
              "AMap.OverView",
              "AMap.MapType",
              "AMap.Geolocation",
              "AMap.PlaceSearch", //POI搜索
              "AMap.Geocoder", //地理编码,地址解析
            ],
            function () {
              //完成地理编码(str -> 坐标
              let geocoder = new AMap.Geocoder({
                city: "北京",
                extensions: "all",
              });
              geocoder.getLocation("北京大学", (s, res) => {
                console.log("地理编码:", res);
              });
              //逆地理编码(坐标 -> str)
              geocoder.getAddress([106, 35], (s, res) => {
                console.log("逆地理编码:", res);
              });

              // 在图面添加工具条控件,工具条控件集成了缩放、平移、定位等功能按钮在内的组合控件
              map.addControl(new AMap.ToolBar());
              // 在图面添加比例尺控件,展示地图在当前层级和纬度下的比例尺
              map.addControl(new AMap.Scale());
              // 在图面添加鹰眼控件,在地图右下角显示地图的缩略图
              map.addControl(new AMap.OverView({ isOpen: true }));
              // 在图面添加类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
              map.addControl(new AMap.MapType());
              // 在图面添加定位控件,用来获取和展示用户主机所在的经纬度位置
              map.addControl(
                new AMap.Geolocation({
                  buttonOffset: new AMap.Pixel(20, 50),
                })
              );
              
              //位置对象检索,搜索
              //创建PlaceSearch对象,按关键字搜索相关位置结果
              let placeSearch = new AMap.PlaceSearch({
                city: "重庆", //指定城市/区号
                pageSize: 50,
              });
              placeSearch.search("学校", (status, result) => {
                console.log("status:", status);
                console.log("result:", result);
              });
              placeSearch.getDetails("B000A816R6", (status, res) => {
                console.log(res);
              });
            }
          );
        },
        err => {
          console.warn(err);
        },
        { timeout: 5000 }
      );
    </script>
  </body>
</html>
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着移动互联网的发展,基于高德地图API开发的APP已成为人们生活中不可或缺的一部分,其对于商业和个人都有着极大的价值。本文将从经济效益的角度分析基于高德地图API开发的APP的市场前景、营收来源及其对经济的贡献。 一、市场前景 基于高德地图API开发的APP在市场上具有广阔的前景。随着智能手机的普及,越来越多的人使用手机进行导航、地图查询等操作。而高德地图作为国内领先的地图应用提供商,其地图数据覆盖面积广、准确度高,已经成为众多APP的首选地图服务。在这样的背景下,基于高德地图API开发的APP具有很高的市场需求。 二、营收来源 基于高德地图API开发的APP的营收主要来源于以下几个方面: 1. 广告收入 开发者可以通过在APP中加入广告来获取收入。由于高德地图API开放了广告接口,开发者可以很容易地将广告接入到自己的APP中,从而获取广告收入。 2. 付费下载 开发者可以将自己的APP设置为付费下载,用户下载APP时需要支付一定的费用。这种方式适用于一些功能较为强大或者特殊的APP,例如专业的地图制作软件、交通出行规划软件等。 3. 付费服务 开发者可以在APP中提供一些收费服务,例如定制化的导航路线、车辆实时监控等。这种方式可以为用户提供更加专业的服务,也可以为开发者带来更高的收入。 4. 数据分析 基于高德地图API开发的APP可以获取用户的位置信息、搜索记录等数据,开发者可以通过分析这些数据来了解用户需求、改进产品,从而提高APP的市场竞争力。同时,开发者也可以将这些数据出售给其他企业或机构,从而获得数据分析收入。 三、对经济的贡献 基于高德地图API开发的APP对经济的贡献主要表现在以下几个方面: 1. 增加就业机会 随着APP市场的不断扩大,越来越多的开发者、设计师、测试人员等在这个领域找到了就业机会,从而促进了就业增长。 2. 推动相关产业发展 基于高德地图API开发的APP需要依赖于高德地图提供的地图数据、定位服务等技术支持,因此推动了相关产业的发展,例如地图数据采集、GPS芯片等。 3. 提高用户体验 基于高德地图API开发的APP可以为用户提供更加便捷、高效的服务,例如实时导航、路况查询等。这些服务的提供可以提高用户的出行效率,从而提高用户的生产力和生活质量。 综上所述,基于高德地图API开发的APP具有广阔的市场前景和多种营收来源,同时也为经济的发展做出了积极的贡献。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值