位置监听器 Corona SDK

我正在使用 Corona SDK 开发基于位置的应用。我有一个图片和图片角的值(纬度-经度)。使用以下代码来查找 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 位置错误", event.errorMessage, {"确定"} )

 else
    GetPixelCoordinatesInBounds(ImageWidth, ImageHeight,  event.latitude, event.longitude)
 end
   Runtime:addEventListener( "location", locationHandler )
点赞
用户3041972
用户3041972

我认为您没有正确处理坐标。看看这个例子,其中坐标已转换,应用程序正在正常工作:

函数位置处理程序(事件)
        - 检查错误(用户可能已关闭位置服务)
    如果事件.错误代码,则
        标题=显示.新文本(“errorgps”,200150,“Verdana-Bold”,20)
        -打印(“位置错误:”..转储(事件.错误消息))
    其他

         ycor =字符串格式('%.6f',事件.纬度)
         xcor =字符串格式('%.6f',事件.经度)
         accuracyText =字符串格式('%.3f',事件.精度)
   
mxl0 = 5
 myl0 = 4
—具体检查您必须如何操作本地y坐标
        MXL =((MXL0-XMIN)/(XMAX-XMIN))* 300 + 10
        由利兹市议会((MYL0-YMIN)/(YMAX-YMIN))×300×460
            如果Mylocationi == 1,则MXL =((MXL-ZX [1])/(ZX [2]-ZX [1]))×300
        如果Mylocationi == 1,则MYL =((MYL-(ZY [1]+ZY [2])/ 2)/(ZX [2]-ZX [1]))* 300 +160
    如果MXL> 340,则MXL = 340结束
    如果MYL> 460且MXL <0则MYL = 460且MXL <5则
    如果MYL <160,则MYL = 160

     mylocation =显示.新圆(MXL,MYL,3)
     mylocation.setFillColor(0,0,1)
     计时器.performWithDelay(1000,removecircle)

结束
Runtime:addEventListener(“location”,locationHandler)

检查此应用程序,如果它是您想要做的,我可以给您代码: https://play.google.com/store/apps/details?id=com.jorc.amirfarazmand.GPS&hl=en

2016-04-08 13:18:54