App Inventor學習記錄121-Map地圖中的 Circle元件,抓距離試作

找了好一些範例才大概知道 MAP地圖中的 CIRCLE圓圈元件怎麼用。我們可以判斷地圖元件,是否在 CIRCLE圓圈內,並依此來觸發其它的條件
記錄一下:
App Inventor學習記錄121-Map地圖中的 Circle元件,抓距離試作


這一次完成的範例如下。

一開始在地圖上有一個圓圈,然後我們用模擬器去更改 GPS的位置。因為位置改變了,所以我們就可以用 locationsensor去抓最新的位置。再判斷這個最新的位置,是否在圓內。


畫面的編排如下。

這次主要用到的元件就是 circle圓圈和 locationsensor位置感測試這兩個。
至於上圖中出現的很多的 maker標記,則是多次更新位置所留下來的標記。
這個部份請參考:
App Inventor學習記錄117-Locationsensor + GPS + MAP,凡走過必留下痕跡


全部的程式碼如下。


第 1部份的程式碼說明。

label 1.text,設定的是地圖中心點的經緯度值。
label 2.text,設定的是 locationsensor位置感測器所抓到的最新的經緯度值。


第 2部份的程式碼說明。

在最新的經緯度上,放一個標記。
這部份請參考:。
App Inventor學習記錄117-Locationsensor + GPS + MAP,凡走過必留下痕跡


第 3部份的程式碼說明。

加入一個流程判斷,判斷最新的經緯度的位置,有沒有在圓圈內。
call circle 1.distance to point呼叫圓圈抓到某一點距離的程式。
latitudelongitude則是放特定點的經緯度,這裡放的是最新的經緯度數值。

判定的方式有兩種,一種是 circle圓圈中心到點的距離。另一種則是圓圈最外緣到點的距離。這兩種計算方式的選擇,則是用在 centroid這個放 true或是 false來做選擇。
選擇 true就是計算 circle圓圈中心到特定點的距離。
選擇 false就是計算 circle圓圈外圈到特定點的距離。

centroid選擇用 false的話,就會有兩種情形,物件在圓圈內或是圓圈內。
物件在圓圈內的話,call circle 1.distancetopoint的值會是 0,設定 lebel 3.text的文字為在圓圈內。
不然則設定 label 3.text的文字為在圓圈的外面。


第 4部份的程式碼說明。

label 4.text設定成顯示距離。
set linestring1.pointsfromestring則是在地圖上畫線的寫法。
這個部份我們可以用文字方塊的組合來處理。


這個字串的組合,可以在畫面編排的 linestring的屬性裡頭找到。


這個 circle元件很方便,可以用來判斷我們是否接近某一個地點,比如說打卡鐘等等的。可以應用的範圍還挺多的。我自己有在手機上開 gps試過,在手機上抓的位置比在模擬器上抓的位置會準很多。

這次的 aia檔的下載連結如下:
NO_121_MAP_CIRCLE.aia

參考書籍請見博客來書籍介紹頁面:
手機應用程式設計超簡單 App Inventor 2零基礎入門班
TQC+ 創意App程式設計認證指南
TQC+創意App程式設計認證指南解題秘笈
手機應用程式設計超簡單:App Inventor 2初學特訓班
手機應用程式設計超簡單:App Inventor 2小專題特訓班
手機應用程式設計超簡單:App Inventor 2資料庫專題特訓班

之前介紹過的一些 appinventor的使用記錄,都整理在下面這個頁面上了。
APP INVENTOR學習記錄及資源整理頁面

發表迴響