300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信公众号集成百度地图api 实现收货地址选择

微信公众号集成百度地图api 实现收货地址选择

时间:2018-12-28 06:24:32

相关推荐

微信公众号集成百度地图api 实现收货地址选择

前端框架用的是vue,jqueryweui。

html页面:

<!DOCTYPE html>

<html lang="zh-cmn-Hans">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<title>选择地址</title>

<script type="text/javascript"

src="http://api./api?v=2.0&ak=你的ak"></script>

</head>

<body>

<div class="page" id="rrapp" v-cloak>

<!--搜索start -->

<div style="height:auto;">

<input type="search" id="indexSearchBox" placeholder="搜索地址" class="left">

<button id="searchBtn" @click="searchBtn">搜索</button>

</div>

<!--搜索end -->

<!--地图start -->

<div id="allMap"></div>

<!--地图end -->

<!-- 地址列表start -->

<div id="log" class="weui-cells weui-cells_radio"></div>

<!-- 地址列表end -->

</div>

</body>

</html>

js:

//位置

var local = null;

//地图

var map = null;

var vm = new Vue({

el:'#rrapp',

data:{

logHeight:'',

longitude:'',//经度

latitude:'', //纬度

},

methods: {

//初始化地图

map: function(){

//动态改变地址的显示的高度

vm.logHeight = $(window).height()-439;

$("#log").css("height",vm.logHeight+"px");

//地图初始化

map = new BMap.Map("allMap");

if($("#indexSearchBox").val() == null || $("#indexSearchBox").val() == ""){

map.centerAndZoom(new BMap.Point(vm.longitude,vm.latitude), 17);

}else{

map.centerAndZoom($("#indexSearchBox").val(),17);

}

//移除覆盖物

map.clearOverlays();

var options = {

onSearchComplete: function(results){

if (local.getStatus() == BMAP_STATUS_SUCCESS){

var str = "";

for (var i = 0; i < results.getCurrentNumPois(); i ++){

// s.push(results.getPoi(i).title + "-->" + results.getPoi(i).address+"-->"+results.getPoi(i).point.lat+"-->"+results.getPoi(i).point.lng+"\n");

str += "<label class='weui-cell weui-check__label' :for='"+results.getPoi(i).uid+"' οnclick='chooseAddress(\""+results.getPoi(i).title+"\",\""+results.getPoi(i).address+"\",\""+results.getPoi(i).point.lat+"\",\""+results.getPoi(i).point.lng+"\")'>"+

"<div class='weui-cell__bd'><span class='title'>"+results.getPoi(i).title+"</span><br/><span class='address'>"+results.getPoi(i).address+"</span></div>"+

"<div class='weui-cell__ft'><input required='' type='radio' class='weui-check' name='address' value='"+results.getPoi(i).uid+"' :id='"+results.getPoi(i).uid+"'>"+

"<span class='weui-icon-checked'></span></div></label>";

}

var new_point = new BMap.Point(results.getPoi(0).point.lng,results.getPoi(0).point.lat);

var marker = new BMap.Marker(new_point); // 创建标注

map.addOverlay(marker);// 将标注添加到地图中

$("#log").html(str);

}

}

};

local = new BMap.LocalSearch(map, options);

if($("#indexSearchBox").val() == null || $("#indexSearchBox").val() == ""){

// 创建地理编码(地理解析器)实例

var myGeo = new BMap.Geocoder();

// 根据坐标得到地址描述

myGeo.getLocation(new BMap.Point(vm.longitude,vm.latitude), function(result){

if (result){

local.search(result.address);

}

});

var new_point = new BMap.Point(vm.longitude,vm.latitude);

var marker = new BMap.Marker(new_point); // 创建标注

map.addOverlay(marker);// 将标注添加到地图中

}

},

//搜索

searchBtn:function(){

//获取搜索框要搜索的内容

local.search($("#indexSearchBox").val());

//根据搜索框的内容,改变地图显示的中心点的位置

if($("#indexSearchBox").val() == null || $("#indexSearchBox").val() == ""){

map.centerAndZoom(new BMap.Point(vm.longitude,vm.latitude),17);

}else{

map.centerAndZoom($("#indexSearchBox").val(),17);

}

}

}

});

$(function(){

get_signature();

})

function get_signature(){

$.ajax({

type: "POST",

url: "../api/sign_url",

data: {

url:location.href.split('#')[0],

},

dataType: "json",

async:false,

contentType : "application/x-www-form-urlencoded",

success: function(r){

if(r.error=="0"){

wechat_location_config(r.appId,r.nonceStr,r.signature,r.timestamp,r.fileFsServer);

}

},

error: function (err) {

}

});

}

function wechat_location_config(appId,nonceStr,signature,timestamp,fileFsServer){

wx.config({

debug : false,

appId : appId,

timestamp : timestamp,

nonceStr : nonceStr,

signature : signature,

jsApiList : [

'scanQRCode',

'checkJsApi',

'getNetworkType',//网络状态接口

'openLocation',//使用微信内置地图查看地理位置接口

'getLocation'

]

});

wx.error(function(e) {

});

wx.ready(function() {

// 获取用户位置

wx.getLocation({

success : function(res) {

if(res.errMsg =="getLocation:ok"){

vm.latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90

vm.longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180

//初始化地图

vm.map();

}else{

$.toast("定位失败", "text");

}

},

fail : function(res) {

$.toast("定位失败", "text");

}

});

});

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。