我正在嘗試創建一個用戶單擊按鈕并出現 TMapView 的應用程式。我只希望用戶的當前位置在開始時出現在地圖上,而不是零位置。這只發生在他按下設備的后退按鈕,然后第二次進入當??前位置時。我不太明白為什么會這樣。這是代碼:
procedure TForm2.SetLocation();
var
LManager : TSensorManager;
LSensors : TSensorArray;
LSensor : TCustomSensor;
LLocationSensor: TCustomLocationSensor;
begin
LManager := TSensorManager.Current;
LManager.Activate;
LSensors := LManager.GetSensorsByCategory(TSensorCategory.Location);
for LSensor in LSensors do
begin
LLocationSensor:=LSensor as TCustomLocationSensor;
LLocationSensor.Start;
MapView1.Location := TMapCoordinate.Create(LLocationSensor.Latitude,LLocationSensor.Longitude);
end;
end;
假設第一次渲染地圖時呼叫此函式。
uj5u.com熱心網友回復:
您應該使用OnLocationChanged事件來檢索您的設備位置,因為它會在檢索到位置后立即觸發。
當然,成功檢索初始位置的時間很大程度上受信號強度的影響。
當您仍在檢索當前位置時通知用戶是一個很好的做法。
注意:由于OnLocationChanged每次更改設備位置時都會觸發,因此您可能需要自己添加一些控制變數,您可以使用該控制變數來控制是只更新一次位置還是持續跟蹤設備移動。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433777.html
標籤:安卓 德尔福 火猴 安卓11 delphi-10.4-悉尼
