說明:筆者重新規划了博客方向,想更詳細的講解微信小程序的所有技術內容,本文於2020年5月24日已做修改。
同時筆者也歡迎一起合作共贏,願意寫雜志,寫書,貢獻自己的一份微薄之力!
作為第一篇的講解,本文主要介紹微信小程序中利用地圖選點,獲取用戶選擇的定位信息
本文原創首發CSDN,鏈接 https://blog.csdn.net/qq_41464123/article/details/105526980 ,作者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本段內容,尤其是腳本之家、碼神島等平台,謝謝配合。
前言:
有些時候,在開發微信小程序的時候,需要一個功能,就是讓用戶提交某個位置的信息。比如發布門店信息的時候需要自己上傳自己的門店位置,單單使用文字來描述信息,可能不夠直觀,這個時候就需要我們使用地圖定位的方式,提交地點信息,他人也可以使用導航的方式更快、更方便的到達目的地。
第一步:需求分析
總之,一句話: 獲取用戶在微信小程序中,提交的地圖選點的相關信息。
就比如下面的例子:在某個提交房屋登記的表單中,需要提交房屋的定位信息。我們不能通過獲取用戶的定位來實現,因為用戶不一定在自己的房屋內打開本小程序。這個時候,我們需要賦予用戶的選擇權!
好,現在需求已經明確了,那么我們如何實現呢?我們難道自己寫一個?
不,我們只需要調用微信給我們提供的API(wx.chooseLocation)即可。
第二步:實現思路分析
我們先來看官方文檔:
關鍵點:
- 該接口的用途為:打開地圖選擇位置。
- 該接口可以設置默認的地點。
- 該接口有調用成功或失敗的回調函數。
那么如果調用失敗,有相應的錯誤碼,我們可以根據錯誤碼來尋找哪里錯了。
如果調用成功,那么在success 的回調函數,就有四個數據,這些就是我們需要的數據。
分別是:位置名稱、詳細地址、經度、緯度。
第三步:WXML界面的按鈕
首先,我們需要提供給用戶一個按鈕,這樣,用戶可以點擊按鈕,打開地圖,選點,最后提交選點信息。
<view class="container">
<view class="section">
<button type="primary" bindtap="mapView">地圖選點</button>
</view>
</view>
另外如果CSS需要的話:
.section{
width: 100%;
height: 55px;
box-sizing: border-box;
padding-top: 15px;
font-size: 16px;
display: flex;
}
因為無論是獲取手機號,還是獲取定位,還是地圖選點,都必須是用戶主動點擊按鈕觸發,而不能頁面加載時自動觸發。
上面我們用到了Button組件,也就是按鈕組件。
type="primary"指的是按鈕的樣式屬性,它有三種顏色,分別如下表所示:
bindtap="mapView"指的是點擊按鈕,會觸發mapView()方法,該方法我們在JS文件中編寫。
本文原創首發CSDN,鏈接 https://blog.csdn.net/qq_41464123/article/details/105526980 ,作者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本段內容,尤其是腳本之家、碼神島等平台,謝謝配合。
第四步:JS業務邏輯編寫
在第三步寫完觸發的按鈕之后,我們需要編寫業務邏輯的JS文件,也就是mapView()方法。
我們先嘗試着調用這個API接口:
mapView: function () {
var that = this
wx.chooseLocation({
success: function (res) {
console.log(res);
},
})
}
我們運行一下,可以看到如下界面:
界面上有個綠色的“地圖選點”按鈕,我們點擊它,會進入地圖組件界面
我們可以拖動地圖,選擇某個定位,或者是輸入要選點的文字,然后點擊右上角的“確定”,那么相關信息就被我們獲取到了。
當然這些是原生數據,我們需要把他們組合起來,存入數據庫
我們修改一下JS代碼,增加一個變量,把獲取到的數據拼接起來,賦值給這個變量即可。
mapView: function () {
var that = this
wx.chooseLocation({
success: function (res) {
console.log(res);
that.data.userAddress = res.address + res.name + ',latitude=' + res.latitude
+ ",longitude=" + res.longitude;
console.log("您選擇的定位地址 = " + that.data.userAddress);
},
})
}
接着運行一下,我們可以看到控制台輸出了如下信息:
既然控制台能輸出,那么存入數據庫也是可行的,效果見下圖
第五步:總結
總而言之,獲取用戶的地圖選點並不難,我們只需要調用微信API即可。獲取到了用戶提交的選點,我們要對其進行一定的數據處理,存入數據庫,以備后用。