【百度 JavaScript API v3.0】Geocoder 地址解析

该文介绍了如何利用百度地图的JavaScriptAPI进行地址解析和逆地址解析。首先在HTML中引入API,然后在Vue组件中创建地图实例,监听地图点击事件以进行地址解析。同时,展示了输入地址搜索后转换为经纬度(点)的逆地址解析过程。
摘要由CSDN通过智能技术生成

目录

地址解析

逆地址解析


地址解析

需求

将点击的点(point)解析成具体的地址。

技术点

官网地址: JavaScript API - 快速入门 | 百度地图API SDK

开发文档:百度地图JSAPI 3.0类参考

实现

第一步:在public的index.html中引入

<script src="http://api.map.baidu.com/api?v=3.0&ak=ak值" type="text/javascript"></script>

第二步:组件中使用

<template>
  <div>
    <div id="map"></div>
    <p>{{ address }}</p>
  </div>
</template>

<script>

export default {
  data() {
    return {
      map: null,
	  point: null,
      address: ''
    };
  },
  mounted() {
    let that = this
    this.map = new BMap.Map("map");
    this.point = new BMap.Point(116.404, 39.915)
    this.map.centerAndZoom(this.point, 17);
    this.map.enableScrollWheelZoom();
    
    this.map.addEventListener("click", function(e){

    // 地址解析
    let geoc = new BMap.Geocoder(); 
    geoc.getLocation(e.point, function(rs) {  
      let addr = rs.addressComponents;  
      that.address = addr.province + addr.city + addr.district + addr.street + addr.streetNumber; // 地址:省市区街道门牌号
    })   
  },
}
</script>

<style lang="less">
#map {
  width: 300px;
  height: 300px;
}
</style>

解析

geoc.getLocation()

逆地址解析

需求

输入地址后点击搜索按钮,解析成点(point)。

技术点

官网地址: JavaScript API - 快速入门 | 百度地图API SDK

开发文档:百度地图JSAPI 3.0类参考

实现

第一步:在public的index.html中引入

<script src="http://api.map.baidu.com/api?v=3.0&ak=ak值" type="text/javascript"></script>

第二步:组件中使用

<template>
  <div>    
    <!-- 搜索框 -->
    <div style="display:flex; align-items: center;">
      <el-input v-model="keyword" style="width: 210px; margin-right: 15px"></el-input>
      <el-button type="primary" @click="search()">搜索</el-button>
    </div>

    <!-- 地图 -->
    <div id="map"></div>

    <!-- 经纬度 -->
    <p>{{ latlng }}</p>
  </div>
</template>

<script>

export default {
  data() {
    return {
      map: null,
      point: null,
      keyword: '',
      latlng: ''
    };
  },
  mounted() {
    this.map = new BMap.Map("map");
    this.point = new BMap.Point(116.404, 39.915)
    this.map.centerAndZoom(this.point, 17);
    this.map.enableScrollWheelZoom();
  },
  methods: {
    search() {
      let that = this
      if(this.keyword) {
        let geoc = new BMap.Geocoder(); 
        geoc.getPoint(this.keyword, function(rs) {  
            that.latlng = 'lat:' + rs.lat + 'lng:' + rs.lng
        });
      }
    },
  }
}
</script>

<style lang="less">
#map {
  width: 300px;
  height: 300px;
}
</style>

解析

geoc.getPoint()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宾果的救星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值