位置听众Corona sdk

时间:2016-04-07 08:20:52

标签: lua gps geolocation corona

我正在使用Corona SDK处理基于位置的应用程序。 我有图像和图像角值(Lat - Long)。使用下面的代码查找XY像素。但位置监听器无法正常工作。在android位置监听器首次执行后触发。我每1米就有一个准确的纬度值。

 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 ) 

1 个答案:

答案 0 :(得分: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