[英]Location (GPS) returning wrong values
我正在學習Corona SDK,以便在我的Android 5.1.1 Xperia Z1 Compact上編寫一些有用的東西供私人使用
我偶然發現了用於定位的功能,並進行了嘗試(在參考文獻和示例的大量幫助下) 。
緯度,經度和准確性均可以正常工作。 坐標非常接近我的實際位置(大約10米) ,並且在給定的精度(31.5米)內 。 但是,海拔高度,速度和方向不太正確。
當我啟動該應用程序時,一開始的海拔高度是“正確的” (可能太高了50米) ,但是幾秒鍾后,它切換為零並停留在那里。 當我短暫地“最小化”應用程序並再次將其重新打開時,也會發生這種情況。
即使我四處走動,速度和方向始終保持零。
這是“我的”(大多是復制的)代碼:
local display = require ("display")
local t0 = display.newText("Latitude", 100, 50, native.systemFont, 16)
local t1 = display.newText("Longitude", 100, 100, native.systemFont, 16)
local t2 = display.newText("Altitude", 100, 150, native.systemFont, 16)
local t3 = display.newText("Accuracy", 100, 200, native.systemFont, 16)
local t4 = display.newText("Speed", 100, 250, native.systemFont, 16)
local t5 = display.newText("Direction", 100, 300, native.systemFont, 16)
local latitude = display.newText( "-", 200, 50, native.systemFont, 16 )
local longitude = display.newText( "-", 200, 100, native.systemFont, 16 )
local altitude = display.newText( "-", 200, 150, native.systemFont, 16 )
local accuracy = display.newText( "-", 200, 200, native.systemFont, 16 )
local speed = display.newText( "-", 200, 250, native.systemFont, 16 )
local direction = display.newText( "-", 200, 300, native.systemFont, 16 )
local locationHandler = function( event )
local latitudeText = string.format( '%.4f', event.latitude )
latitude.text = latitudeText
local longitudeText = string.format( '%.4f', event.longitude )
longitude.text = longitudeText
local altitudeText = string.format( '%.3f', event.altitude )
altitude.text = altitudeText
local accuracyText = string.format( '%.3f', event.accuracy )
accuracy.text = accuracyText
local speedText = string.format( '%.3f', event.speed )
speed.text = speedText
local directionText = string.format( '%.3f', event.direction )
direction.text = directionText
end
Runtime:addEventListener( "location", locationHandler )
謝謝!
一切似乎都是正確的。 1-使用這種類型的GPS的海拔高度將不准確,50m的精度很高。
2-您必須添加方向偵聽器才能進行工作:
local directionHandler1 = function( event )
local magneticText = string.format( '%.1f', event.magnetic )
magnetic.text = magneticText
end
Runtime:addEventListener( "heading", directionHandler1 )
您需要所有這三個:
Runtime:addEventListener( "location", locationHandler1 )
Runtime:addEventListener( "heading", directionHandler1 )
Runtime:addEventListener('accelerometer', processor)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.