我正在开发一款拥有iPhone版和Android版的应用.
我的目标是......
我的问题是......
让我的问题更清楚......
谢谢和最好的问候
我试图通过android将"GPSTimeStamp"设置为jpg的exif标签.这篇文档非常缺乏:
http://developer.android.com/reference/android/media/ExifInterface.html#TAG_GPS_TIMESTAMP
Type是String.常数值:"GPSTimeStamp".但确切的格式是什么?
在这里查看:
http:
//www.sno.phy.queensu.ca/~phil/exiftool/TagNames/GPS.html GPSTimeStamp:rational64u [3](写入时,如果存在,日期将被删除,时间将调整为UTC如果它包括时区)
所以我需要一个长值的3单元阵列?我不确定,该放什么.我已经获得了"此修复的UTC时间,自1970年1月1日起以毫秒为单位." 通过location.gettime().
http://developer.android.com/reference/android/location/Location.html#getTime%28%29
如果我将长值作为字符串写入时间戳并通过Linux上的"exif"检查exif标签,我得到错误"分母预期".所有使用hh:mm:ss或其他格式的实验都失败了.在这里有点迷失.
我想知道我的用户发送请求的当地时间.基本上,有这样的功能是这样的
var localTime = getLocalTime( lat, long );
Run Code Online (Sandbox Code Playgroud)
我不确定lat上的简单划分是否可行,因为大多数国家都没有完美的几何形状.
任何帮助都会很棒.任何语言都被接受.我想避免调用远程API.
我正在寻找一种在我的应用程序中显示GPS时间的方法.最简单的方法是什么?
(由于gps时间和内部系统时间之间的微小时间差异,它必须是GPS时间)
谢谢
我正在寻找一种可靠的方式来获得时间.它不能被篡改,它需要脱机工作.所以没有互联网时间,设置中没有用户时间设置,也没有上次重启后的BSD正常运行时间.我想知道,因为GPS使用原子钟工作,我是否可以访问该信息.
谢谢
我的应用使用LocationListener来跟踪当前位置.只要GPS提供商提供定期修复,这种方法效果很好.但是,我希望我的应用程序在用户不再可靠时提醒用户,因为此修复程序不再是最新的.因此我使用timeCheckHandler每隔几秒调用一次getLastKnownLocation.
我的问题是,即使经常收到准确的修复,通过将getTime()应用于getLastKnownLocation返回的位置返回的时间通常比System.currentTimeMillis()返回的当前时间早,通常大约20秒.
我通过向onLocationChanged(arg0)添加代码来记录修复时间(arg0.getTime())和当前时间(System.currentTimeMillis()),进一步调查了这个问题.我再次看到大约20秒的差异.
该代码目前如下:
public void onLocationChanged(Location arg0) {
mapview.handleLocationChanged(mapview, arg0.getLatitude(), arg0.getLongitude(), arg0.getBearing(), arg0.getAccuracy(), "GPS fix");
addDebugNote("Fix received at time: "+Long.toString(arg0.getTime()/1000)+" Now: "+Long.toString((System.currentTimeMillis())/1000));
}
Run Code Online (Sandbox Code Playgroud)
和我的调试文件的典型输出读取:
Fix received at time: 1292091908 Now: 1292091928
Run Code Online (Sandbox Code Playgroud)
为什么我应该看到修复时间和当前系统时间之间的这种差异?
我是否必须接受大约20秒的差异是正常的?
我有一个GPS设备,可以将一些物体(包括GPS时间)发送到我的服务器.
它以周数的形式出现,以秒为单位.
我想将其转换为日期时间格式.我找到了一些代码,但我发现的是如何将周数转换为日期,不包括第二周.
我找到了这个网页,但是我无法在c#windows app代码中找到如何做到这一点.
样本数据:
GPS Week number 1643
GPS second into week 377505
Run Code Online (Sandbox Code Playgroud)
那应该是2011/07/07 10:51:44.
我试图通过单击按钮刷新当前位置.可以通过GPS或Cell Tower获取该位置,无论哪个可用.我的问题是我从未见过"载入画面".我知道当坐标保持为零时,它会立即显示/关闭.有人可以帮助我 - 我下面做错了什么?
既不更新位置也不显示加载屏幕.没有加载屏幕和多次点击"刷新按钮",我确实得到了位置.以下是处理"刷新按钮"点击的代码:
FieldChangeListener refreshImgListener = new FieldChangeListener() {
public void fieldChanged(Field field, int context)
{
Thread backgroundWorker = new Thread(new Runnable() {
public void run() {
refreshCoordinates();
}
});
busyDialog.setEscapeEnabled(false);
busyDialog.show();
backgroundWorker.start();
}
};
Run Code Online (Sandbox Code Playgroud)
我的refreshCoordinates()方法如下:
public void refreshCoordinates() {
do
{
getLatitude(handleeGPS.latitude);
getLongitude(handleeGPS.longitude);
} while ((longi == "0.0" || lati == "0.0") || (longi.length() == 0 || lati.length()==0));
UiApplication.getUiApplication().invokeLater( new Runnable()
{
public void run ()
{
lblLatitude.setText(lati);
lblLongitude.setText(longi);
busyDialog.cancel();
}
} );
}
public …Run Code Online (Sandbox Code Playgroud)