2016-04-07 140 views
1

我正在使用使用Corona SDK的基於位置的應用程序。 我有圖像和圖像的角落價值(拉 - 長)。使用下面的代碼來查找XY像素。但位置偵聽器無法正常工作。在第一次執行後,android位置偵聽器會觸發。每1米我有一個準確的經緯度值。位置監聽器Corona sdk

local function GetPixelCoordinatesInBounds(width,height,lat,lon) 

    minLat = 12.9837 
    maxLat = 12.9850 
    MAP_HEIGHT = W 
    minLon = 80.24662 
    maxLon = 80.24666 
    MAP_WIDTH = H-35 

    x = ((lon - minLon)/(maxLon - minLon)) * (MAP_WIDTH - 1) 
    y = ((lat - minLat)/(maxLat - minLat)) * (MAP_HEIGHT - 1) 
end 

local function locationHandler(event) 
if (event.errorCode) then 
     native.showAlert("GPS Location Error", event.errorMessage, {"OK"}) 

else 
    GetPixelCoordinatesInBounds(ImageWidth, ImageHeight, event.latitude, event.longitude) 
end 
    Runtime:addEventListener("location", locationHandler) 
+0

你能添加更多細節?即收聽者。 – JLONG

+0

所以,當你的意思是聽者不工作,這是不準確的?或者GPS功能本身不工作? – JLONG

+0

我沒有得到準確的價值。在同一個地方,我得到的差價值。 – AndroidUser

回答

2

我不認爲你正在處理座標。看下面這個例子,其中座標轉換和應用程序工作正常:

function locationHandler(event) 
     -- Check for error (user may have turned off Location Services) 
    if event.errorCode then 
     title = display.newText("errorgps", 200, 150, "Verdana-Bold", 20) 
     --print("Location error: " .. tostring(event.errorMessage)) 
    else 

     ycor = string.format('%.6f', event.latitude) 
     xcor = string.format('%.6f', event.longitude) 
     accuracyText = string.format('%.3f', event.accuracy) 
    end 

mxl0 = 5 
myl0 = 4 
-- Specifically check here how you have to manipulate your local y coordinates 
     mxl = ((mxl0-xmin)/(xmax-xmin))*300+10 
     myl = -((myl0-ymin)/(ymax-ymin))*300+460 
      if mylocationi == 1 then mxl = ((mxl-zx[1])/(zx[2]-zx[1]))*300 end 
     if mylocationi == 1 then myl = ((myl-(zy[1]+zy[2])/2)/(zx[2]-zx[1]))*300+160 end 
    if mxl > 340 then mxl = 340 end 
    if myl > 460 then myl = 460 end 
    if mxl < 0 then mxl = 5 end 
    if myl < 160 then myl = 160 end 


    mylocation = display.newCircle(mxl, myl, 3) 
    mylocation:setFillColor(0,0,1) 
    timer.performWithDelay(1000, removecircle) 

end 
Runtime:addEventListener("location", locationHandler) 

檢查這個程序,如果你正在嘗試做的,我可以給你的代碼: https://play.google.com/store/apps/details?id=com.jorc.amirfarazmand.GPS&hl=en