微信小程序 地圖選點 獲取用戶選擇的定位信息 wx.chooseLocation


說明:筆者重新規划了博客方向,想更詳細的講解微信小程序的所有技術內容,本文於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即可。獲取到了用戶提交的選點,我們要對其進行一定的數據處理,存入數據庫,以備后用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM