地址解析,简单来讲就是将结构化地址(省/市/区/街道/门牌号)解析为对应的经纬度坐标。比如将"北京市海淀区上地十街10号"转化为"116.30051,40.0511"。当然,地址结构越完整,地址内容越准确,解析的坐标精度也会越高。
使用该地址解析服务进行检索,返回的结果包含marker数组数据和完整数据两项。marker数组数据符合小程序marker规范,可以直接用于小程序map中;完整数据包含该服务接口返回的所有详尽的数据,方便开发者进行自定义开发。
实现方法
在以下的代码中,首先引用百度地图微信小程序JavaScript API 模块,然后在页面的onLoad中声明BMapWX对象,最后调用BMapWX.geocoding方法进行地址解析(将地址信息转换为经纬度)。
// 引用百度地图微信小程序JSAPI模块var bmap = require('../../libs/bmap-wx.min.js');var wxMarkerData = [];Page({data: {markers: [],latitude: ,longitude: ,rgcData: {}},onLoad: function() {var that = this;// 新建百度地图对象var BMap = new bmap.BMapWX({ak: '您的ak'});var fail = function(data) {console.log(data)};var success = function(data) {wxMarkerData = data.wxMarkerData;that.setData({markers: wxMarkerData});that.setData({latitude: wxMarkerData[0].latitude});that.setData({longitude: wxMarkerData[0].longitude});}// 发起geocoding检索请求BMap.geocoding({address: "北京市海淀区上地十街10号",fail: fail,success: success,iconPath: '../../img/marker_red.png',iconTapPath: '../../img/marker_red.png'});},})
<view class="map_container"><map class="map" id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location="true" markers="{{markers}}" bindmarkertap="makertap"></map></view><view class="rgc_info"><text>经度:{{longitude}}</text><text>纬度:{{latitude}}</text></view>
.map_container{height: 420px;width: 100%;}.map {height: 100%;width: 100%;}.rgc_info {padding: 5px;}.rgc_info {display: block;}
本示例在页面加载完成后对当前定位点进行了地址解析,点击marker可以看到当前地点的相关位置描述信息。

上一篇
下一篇
本篇文章对您是否有帮助?