腾讯地图——逆地址解析以及解决跨域问题

腾讯地图–逆地址解析(经度纬度转换地址)

一、使用腾讯地图的API接口必须先拥有开发者账号并申请自己的key 腾讯地图入口
申请了自己的key通过get请求接口
https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&get_poi=1
详细api参数请查看 官方文档

作者也是在使用的时候遇到了几个问题,我在这给大家避下坑:

一、跨域

在本地使用接口的使用我们会遇到No ‘Access-Control-Allow-Origin’ header is present on the requested resource’跨域错误,所以就需要我们在vue.config.js配置代理
vue.config.js 文件:

devServer: {
    port: port,
    open: true,
    overlay: {
     warnings: false,
     errors: true
   },
   proxy: { // 配置跨域
       '/tx': {
            target: 'https://apis.map.qq.com/',
            changeOrigin: true,
             pathRewrite: {
              '^/tx': ''
             }
        }
   },

之后我们就必须改变一下腾讯地图给我们的api接口:

http://localhost:8080/tx/ws/geocoder/v1/?location=39.984154,116.307490&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&get_poi=1

注意这里我加了tx这个标识,改成本地的localhost。

二、错误处理

当我们调用接口时有报错时可以查看文档 状态码说明
关于授权的问题:可以直接在腾讯地图api官网里控制台的应用管理进行设置
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Vue 中使用百度地图进行地址解析需要进行以下步骤: 1. 引入百度地图 JavaScript API 在 `public/index.html` 文件中添加以下代码: ```html <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的AK"></script> ``` 其中,`你的AK` 需要替换成你申请的百度地图 API 的 AK。 2. 在组件中创建地图实例 在 Vue 组件中,可以通过 `mounted()` 钩子函数来创建地图实例。在创建地图实例时,需要指定地图的容器和地图的初始缩放级别。 ```javascript mounted() { // 创建地图实例 const map = new BMap.Map("map-container"); // 设置地图初始缩放级别 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); } ``` 其中,`map-container` 是一个 div 容器的 ID,用于放置地图。 3. 添加标记点 在地图上添加标记点可以使用 `BMap.Marker` 类。需要指定标记点的位置和标记点的样式。 ```javascript mounted() { // 创建地图实例 const map = new BMap.Map("map-container"); // 设置地图初始缩放级别 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 添加标记点 const point = new BMap.Point(116.404, 39.915); const marker = new BMap.Marker(point); map.addOverlay(marker); } ``` 4. 地址解析地图上添加标记点后,可以通过 `BMap.Geocoder` 类进行地址解析。需要指定解析的位置和解析成功后的回调函数。 ```javascript mounted() { // 创建地图实例 const map = new BMap.Map("map-container"); // 设置地图初始缩放级别 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 添加标记点 const point = new BMap.Point(116.404, 39.915); const marker = new BMap.Marker(point); map.addOverlay(marker); // 地址解析 const geoc = new BMap.Geocoder(); geoc.getLocation(point, (rs) => { const addComp = rs.addressComponents; console.log(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); }); } ``` 以上代码中的解析结果将会在控制台中输出。 注意:在使用百度地图 API 进行地址解析时,需要注意跨域问题。如果你的项目在本地运行时出现跨域问题,可以在 `public/index.html` 文件中添加以下代码: ```html <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> ``` 这样就完成了百度地图地址解析

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值