web端调用高德API

调用高德地图定位功能

废话不多说进入主题
↓↓↓↓↓↓↓↓↓↓↓↓↓
1、打开浏览器就如高德开放平台,登录账号、点击头像进入应用管理、点击创建应用、填写对应的名称和类型。
2、点击添加key会出现以下内容:生成key
选定对应的信息,提交就会自动生成key
3、返回首页 点击开发支持,然后在点击地图JS API
JS API
4、点击准备把script标签复制到对应的html文件里

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script> 
//记得把申请的key替换

5、向下滑动进入定位页面,因为是浏览器定位,所以把对应的代码复制到JS里 可以删除没用的代码:如下

AMap.plugin('AMap.Geolocation', function() {
  var geolocation = new AMap.Geolocation({
    // 是否使用高精度定位,默认:true
    enableHighAccuracy: true,
  })

  geolocation.getCurrentPosition()
  AMap.event.addListener(geolocation, 'complete', onComplete)
  AMap.event.addListener(geolocation, 'error', onError)

  function onComplete (data) {
    // data是具体的定位信息
    console.log(data);//这里就是获取到的位置了
  }

  function onError (data) {
    // 定位出错
    
  }
})

注意:因为pc设备上大都缺少GPS芯片,所以在PC上的定位主要通过IP精准定位服务,该服务的失败率在5%左右。所以还需要在定位出错回调函数里处理一下。

function onError(data) {
   // 定位出错
   //注意this指向
    that.errLocation();
}

利用IP定位获取当前城市信息可以获取到一个大概的位置,把对应的代码复制到errLocation里

errLocation(){
	AMap.plugin('AMap.CitySearch', function () {
	  var citySearch = new AMap.CitySearch()
	  citySearch.getLocalCity(function (status, result) {
	    if (status === 'complete' && result.info === 'OK') {
	      // 查询成功,result即为当前所在城市信息,这里可以打印看一下
	      console.log(result);
	    }
	  })
	})
}

然后进入地理编码与逆地理编码页面,把正向地理编码方法的代码复制到成功获取信息的函数里,如下:

errLocation() {
      let that = this;
      AMap.plugin("AMap.CitySearch", function() {
        var citySearch = new AMap.CitySearch();
        citySearch.getLocalCity(function(status, result) {
          if (status === "complete" && result.info === "OK") {
            // 查询成功,result即为当前所在城市信息
            console.log(result);
            AMap.plugin("AMap.Geocoder", function() {
              var geocoder = new AMap.Geocoder({
                // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
                //注意这里记得修改
                city: result.adcode
              });
              
				//还有这里
              var lnglat = result.rectangle.split(";")[0].split(",");
														//这里
              geocoder.getAddress(lnglat, function(status, data) {
              								//这里
                if (status === "complete" && data.info === "OK") {
                  // result为对应的地理位置详细信息
                  that.location = data.regeocode.formattedAddress
                }
              });
            });
          }
        });
      });
    }

这样就可以了。
看一下成果(刚好我就是那百分之5的概率,定位出错了,所以真实位置bu准确):
位置信息

以上!!!!!!!

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unigui 是一个在 Delphi 环境下开发的 Web 应用框架,它可以用于构建跨平台的 Web 应用程序。而高德 API 是一组提供地图和定位服务的接口,可以方便地在 Web 应用程序中使用。 在 Unigui 中调用高德 API,首先需要获取开发者密钥(key),这个密钥用于标识开发者的身份和使用权限。获取密钥后,可以使用 Unigui 提供的 HTTP 请求组件来发送请求并获取响应。 例如,如果我们想在 Unigui 应用中展示一个地图,可以使用高德地图的 JavaScript API。首先,在 Unigui 中创建一个新的 WebForm,然后在该 Form 的 OnShow 事件中编写如下代码: procedure TForm1.UniFormShow(Sender: TObject); var WebBrowser: TUniHTMLFrame; begin WebBrowser := TUniHTMLFrame.Create(Self); WebBrowser.Align := alClient; WebBrowser.Name := 'WebBrowser'; WebBrowser.Url := 'http://webapi.amap.com/maps?v=1.4.15&key=your_key'; // 替换为你的高德 API 密钥 WebBrowser.Parent := Self; WebBrowser.UpdateContent(True); end; 在这个例子中,我们创建了一个 TUniHTMLFrame 组件,它是一个内置的 Web 浏览器。然后指定该组件的 Url 属性为高德地图的 JavaScript API 地址,同时将密钥传递给 API。最后将该组件添加到当前 Form 的父容器中并调用 UpdateContent 方法来加载地图。 通过这样的方式,我们就可以在 Unigui 应用中调用高德 API,实现地图展示、定位、导航等功能。当然,除了地图 API,高德还提供了其他的接口,比如地理编码、路径规划、逆地理编码等,可以根据具体需求进行调用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值