微信小程序中l(wèi)ocationAPI接口的示例分析

這篇文章主要介紹微信小程序中l(wèi)ocation API接口的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),琿春企業(yè)網(wǎng)站建設(shè),琿春品牌網(wǎng)站建設(shè),網(wǎng)站定制,琿春網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,琿春網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

微信小程序 location API 接口:

現(xiàn)在微信小程序火了 ,利用假期時(shí)間學(xué)習(xí)了下,微信小程序的基礎(chǔ)知識(shí),嘿嘿!

以下是記錄學(xué)習(xí)微信小程序 location API接口,并且寫了一個(gè)小實(shí)例來記錄,如有錯(cuò)誤之處還請(qǐng)指正。

微信小程序的位置接口共有兩個(gè):

1、wx.getLocation(OBJECT)獲取當(dāng)前的地理位置、速度。
2、wx.openLocation(OBJECT) 使用微信內(nèi)置地圖查看位置

然后,根據(jù)object參數(shù)說明,結(jié)合module模塊化重寫了下兩個(gè)接口在暴露出來引用,讓項(xiàng)目更加靈活管理。具體代碼如下:

location.js::

/** 
 * 獲取當(dāng)前的地理位置、速度。 
 * 1、fType:     默認(rèn)為 wgs84 返回 gps 坐標(biāo),gcj02 返回可用于wx.openLocation的坐標(biāo)   選填 
 * 2、cbSuccessFun: 接口調(diào)用成功的回調(diào)函數(shù),返回內(nèi)容詳見返回參數(shù)說明。 必填 
 * 3、cbFailFun:  接口調(diào)用失敗的回調(diào)函數(shù) 選填 
 * 4、cbCompleteFun:接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) 選填 
 */ 
function getLocationFun(fType, cbSuccessFun, cbFailFun, cbCompleteFun){ 
  var getObj={}; 
  getObj.type="wgs84"; 
  if(fType){ 
    getObj.type=fType; 
  } 
  getObj.success=function(res){ 
    var _res=res; 
    if(cbSuccessFun){ 
      cbSuccessFun(_res); 
    } 
  } 
  getObj.fail=function(res){ 
    if(cbFailFun){ 
      cbFailFun(); 
    }else{ 
      console.log("getLocation fail:"+res.errMsg); 
    } 
  } 
  getObj.complete=function(res){ 
    if(cbCompleteFun){ 
      cbCompleteFun(); 
    } 
  } 
  wx.getLocation(getObj); 
} 
 
/** 
 * 使用微信內(nèi)置地圖查看位置 
 * 1、latitude:   緯度,范圍為-90~90,負(fù)數(shù)表示南緯 必填 
 * 2、longitude:  經(jīng)度,范圍為-180~180,負(fù)數(shù)表示西經(jīng) 必填 
 * 3、scale:    縮放比例,范圍1~28,默認(rèn)為28 選填 
 * 4、name:     位置名 選填 
 * 5、address:   地址的詳細(xì)說明 選填 
 * 6、cbSuccessFun: 接口調(diào)用成功的回調(diào)函數(shù) 選填 
 * 7、cbFailFun:  接口調(diào)用失敗的回調(diào)函數(shù) 選填 
 * 8、cbCompleteFun:接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) 選填 
 */ 
function openLocationFun(latitude, longitude, scale, name, address, cbSuccessFun, cbFailFun, cbCompleteFun){ 
  var openObj={}; 
  openObj.latitude=latitude; 
  openObj.longitude=longitude; 
  openObj.scale=15; 
  if(scale>0 && scale<29){ 
    openObj.scale=scale; 
  } 
  if(name){ 
    openObj.name=name; 
  } 
  if(address){ 
    openObj.address=address; 
  } 
  openObj.success=function(res){ 
    if(cbSuccessFun){ 
      cbSuccessFun(); 
    } 
  } 
  openObj.fail=function(res){ 
    if(cbFailFun){ 
      cbFailFun(); 
    }else{ 
      console.log("openLocation fail:"+res.errMsg); 
    } 
  } 
  openObj.complete=function(res){ 
    if(cbCompleteFun){ 
      cbCompleteFun(); 
    } 
  } 
  wx.openLocation(openObj); 
} 
 
module.exports={ 
  getLocationFun: getLocationFun, 
  openLocationFun: openLocationFun 
}

demo.js::

var comm = require( "../../common/common.js" ); 
var location=require('../../common/location.js'); 
Page( { 
 data: { 
  uploadImgUrls: [], 
  title: "" 
 }, 
 getlocation: function( e ) { 
  location.getLocationFun( 
   'gcj02',  
   function(cb){ 
    console.log(cb); 
    var _latitude=cb.latitude; 
    var _longitude=cb.longitude; 
    location.openLocationFun( 
     _latitude, 
     _longitude, 
     null, 
     "廈門觀音山", 
     "廈門觀音山匹克大廈", 
     null, 
     null, 
     null 
    ) 
   } 
  ) 
 }, 
 onLoad: function( options ) { 
  var _title = "ddd"; 
  if( options.title ) { 
   _title = options.title; 
  } 
  this.setData( { 
   title: _title 
  }) 
  console.log("load") 
  console.log( comm.formatDateFun( new Date(), 1 ) ); 
 }, 
 onShow:function(e){ 
  console.log("show"); 
 }, 
 onHide: function(e){ 
  console.log("hide"); 
 }, 
 onUnload:function(e){ 
  console.log("unload"); 
 } 
 // onReady: function(){ 
 //  wx.setNavigationBarTitle({ 
 //   title: this.data.title 
 //  }); 
 // } 
})

經(jīng)調(diào)試發(fā)現(xiàn)getLocation接口的type不管是傳遞wgs84還是gcj02返回的參數(shù)都是只有經(jīng)緯度,并沒有文檔上提到的速度和位置的精確度兩個(gè)參數(shù)

微信小程序中l(wèi)ocation API接口的示例分析

然后我在點(diǎn)擊“去這里”頁(yè)面跳轉(zhuǎn)后,發(fā)現(xiàn)每次都是提示定位失敗,不曉得是不是因?yàn)閣eb開發(fā)工具的原因。而且好像經(jīng)緯度有差距,和本人實(shí)際距離不一致。還有定義了name和address兩個(gè)參數(shù)并沒有發(fā)現(xiàn)有啥變化,最后比較嚴(yán)重的問題是我點(diǎn)擊返回后提示page route錯(cuò)誤,再次點(diǎn)擊按鈕,提示錯(cuò)誤了,不能點(diǎn)擊。不知道什么原因?要怎么解決!

微信小程序中l(wèi)ocation API接口的示例分析

目前針對(duì)這個(gè)接口學(xué)習(xí)到這里,后續(xù)有其他發(fā)現(xiàn)或者解決辦法在來更新。

==============================================================================================

今天,微信發(fā)布新版本了【最新版本 0.10.101100】,對(duì)于位置接口也有進(jìn)一步的更新,

1、打開地圖接口在返回不會(huì)提示page route錯(cuò)誤了

2、wx.openLocation接口傳遞自定義的name和address參數(shù)后,可以在地圖描述框,顯示出來了,不過經(jīng)緯度依然不夠準(zhǔn)確。點(diǎn)擊“去這里”依然是定位失敗。

微信小程序中l(wèi)ocation API接口的示例分析

以上是“微信小程序中l(wèi)ocation API接口的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標(biāo)題名稱:微信小程序中l(wèi)ocationAPI接口的示例分析
轉(zhuǎn)載注明:http://muchs.cn/article42/jpepec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、外貿(mào)建站、虛擬主機(jī)、定制網(wǎng)站手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管