2016-04-07 232 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