几年前我忘记了这项工作,但需要每晚对成千上万的地址进行地理编码.我必须使用非常准确的数据库坐在机器上,当Nuvi地图更新安装Mapsource时安装.
几年前,当我联系Garmin时,他们表示有兴趣为此提供API,但之后我什么都没听到,也没有跟进.他们的数据库是由navtec提供的?我相信.有人有这种格式的经验吗?
我刚刚在Garmin开发者论坛上发帖,但那里有点昏昏欲睡:)
有没有人这样做过?有没有人知道如果没有API可以做到这一点; 意思是数据库结构和调用?
我会用任何语言解决问题.
添加:
Garmin表示有兴趣让我可以使用.他们还没有做到.
我不知道数据库格式.
我不是在寻找在线解决方案或任何其他"替代方案".这个问题非常具体.
联系信息:MikeTrader2 AT gmail DOT com
我在使用Python将XML文件转换为CSV时遇到了很多麻烦.我看了很多论坛,尝试了lxml和xmlutils.xml2csv,但我无法让它工作.这是来自Garmin GPS设备的GPS数据.
这是我的XML文件的样子,当然缩短了:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns:tc2="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tp1="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="TC2 to GPX11 XSLT stylesheet" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
<trk>
<name>2013-12-03T21:08:56Z</name>
<trkseg>
<trkpt lat="45.4852855" lon="-122.6347885">
<ele>0.0000000</ele>
<time>2013-12-03T21:08:56Z</time>
</trkpt>
<trkpt lat="45.4852961" lon="-122.6347926">
<ele>0.0000000</ele>
<time>2013-12-03T21:09:00Z</time>
</trkpt>
<trkpt lat="45.4852982" lon="-122.6347897">
<ele>0.2000000</ele>
<time>2013-12-03T21:09:01Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
Run Code Online (Sandbox Code Playgroud)
我的大量XML文件中有几个trk标签,但我可以设法将它们分开 - 它们代表不同的"段"或GPS设备上的行程.我想要的只是一个CSV文件,其中包含以下内容:
LAT LON TIME ELE
45.4... -122.6... 2013-12... 0.00...
... ... ... ...
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码:
## Call libraries
import csv
from xmlutils.xml2csv import xml2csv
inputs = "myfile.xml"
output = "myfile.csv"
converter = xml2csv(inputs, output) …Run Code Online (Sandbox Code Playgroud) 我是一个相当新的程序员和经验丰富的跑步者,一直在浏览 Garmin Health API 并计划制作一个应用程序。我的第一个想法是在完成 10x400 米之后简单地获得平均时间,这是我几乎每个月都会做的测试。我相当确定我可以用健康 API 做到这一点,但我不知道如何作为一个业余爱好者和相当新的程序员来请求它。该应用程序对我作为程序员和我所竞选的团队都有益。
起亚,
我从 Strava 导出了我所有的 GPX 文件,所以我可以对它们进行一些分析,但我一直在试图弄清楚每个文件用于什么类型的活动。
例如,我的文件看起来像这样,其中<type>元素似乎定义了活动类型。
<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="StravaGPX iPhone" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" version="1.1" xmlns="http://www.topografix.com/GPX/1/1">
<metadata>
<time>2014-03-21T22:44:39Z</time>
</metadata>
<trk>
<name>Sugar Loaf</name>
<type>9</type>
<trkseg>
...
Run Code Online (Sandbox Code Playgroud)
我知道(在我的脑海中)该活动是一次跑步,但我找不到所有数字及其相应活动类型的任何文档。
Strava 努力遵守官方 FIT SDK 中定义的 FIT 活动文件 (FIT_FILE_TYPE = 4) 规范。
太好了,但是如果我询问 FIT SDK,我可以在fit_profile.hpp文件中找到以下内容:
typedef FIT_ENUM FIT_SPORT;
#define FIT_SPORT_INVALID FIT_ENUM_INVALID
#define FIT_SPORT_GENERIC ((FIT_SPORT)0)
#define FIT_SPORT_RUNNING ((FIT_SPORT)1)
#define FIT_SPORT_CYCLING ((FIT_SPORT)2)
#define FIT_SPORT_TRANSITION ((FIT_SPORT)3) // Mulitsport transition
#define FIT_SPORT_FITNESS_EQUIPMENT ((FIT_SPORT)4)
#define FIT_SPORT_SWIMMING ((FIT_SPORT)5)
#define FIT_SPORT_BASKETBALL ((FIT_SPORT)6)
#define …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 vscode 中运行 python,它已经工作了几个小时,但它突然停止运行,现在每当我运行它时,我都会收到此错误:
错误:会话无法在 w.executeCodeCell 生成请求
我正在连接到一个 garmin 帐户,在那里我提取睡眠数据并尝试将其绘制在一个有效的图表上,但现在它已停止工作并给我上述错误。
我将如何解决这个问题?
我需要创建asp .net应用程序,它将上传garmin .fit文件并将其存储到数据库.
我正在尝试使用Garmin Communicator Plugin API从磁盘读取.fit文件,但我无法读取位于我硬盘上的数据(我没有任何Garmin设备).
你知道这有可能与Garmin Communicator Plugin API一起实现吗?或者你认为还有其他的可能吗?
应用程序应该是这样的
http://www.goodrunguide.co.uk/FITFileUpload.asp?FileUpload=1
提前致谢
我需要使用设备控制Javascript库从GPSMap 62设备读取数据.问题是,与旧设备不同,此设备每天将其航点存储在单独的.GPX文件中.javascript库期望所有轨道和航点都在current.gpx文件中,但62将它们存储在例如Waypoints_06-MAY-14.gpx等每天.
如果没有要求用户手动上传相应的文件,是否有人让DeviceControl库实际支持具有单独GPX文件的新设备?
作为额外的奖励,Garmin设备控制库已被弃用,因此不会有任何更新.
一些代码
startReadFromGps: function(deviceNumber) {
this.plugin.StartReadFromGps( deviceNumber ); //invokes the external plugin
},
Run Code Online (Sandbox Code Playgroud) 这是我用Garmin打开的帮助票的文字; 我想知道这里是否有人可能有解决方法的想法/可以验证您看到相同的行为?(我会在这里发布他们的任何更新;现在,他们只是说他们不能保证工程部门会做什么,如果有的话)
由于需要用户交互,zadig/WinUSB解决方法不太适合这个应用程序; 我们希望找到一个开箱即用的解决方案或解决方法.
在Windows Vista 32 home basic上,chrome USB API不会打开与使用最新grmnusb驱动程序(v2.3.1)的Garmin 60CSx的USB连接.
这可以通过'USB设备信息'Chrome应用看到:https://chrome.google.com/webstore/detail/igkmggljimacfdfalpeelenjeicmfnll
但是,如果您将该设备更改为使用WinUSB驱动程序,然后重新启动,则可以通过该Chrome应用程序以及使用chrome USB API的其他应用程序打开它.
我使用程序'zadig'来改变驱动程序,如本主题所示:https://code.google.com/p/chromium/issues/detail? id = 249908
而且,如果我然后使用设备管理器"回滚驱动程序",以便grmnusb再次成为60CSx的唯一驱动程序,那么正如预期的那样,它无法再次在Chrome应用程序中打开.
因此,我认为这个问题与grmnusb与chrome USB API不兼容这一事实是孤立的.我相信这是grmnusb中的一个错误.可以修改它以使用chrome USB API吗?谢谢
更新6-23-15:没有真正的新闻,但是,其他应用程序开发人员确认它实际上只是Windows驱动程序的工作方式:grmnusb驱动程序"拥有"该USB设备,没有其他任何东西可以通过USB与该设备通信.但是,事实证明我完全错过了Garmin界面文档的部分,他们说你必须使用Win32 API调用来与驱动程序通信.所有这一切都明确澄清了事情:现在的问题是找到浏览器与驱动程序交谈的最无缝方式; 看起来最无缝的方式可能是使用运行Win32API调用的本机Windows应用程序,并使用Chrome扩展程序进行本机消息传递以将数据传输到网页或从网页传输数据.任何新的输入仍然会受到赞赏!
我的应用生成一个.Fit文件.
它适用于标准API.但是当我尝试添加自定义字段时,它被忽略或无法被客户端解析.
我正在使用FIT SDK 2.0.
fit::DeveloperDataIdMesg DPSdevIdMesg;
uint8_t appId[] = {
0x67, 0x72, 0x69, 0x73, 0x68, 0x61, 0x20, 0x68, 0x61, 0x20, 0x6d, 0x65, 0x6c, 0x65, 0x6b, 0x68
};
for (int appIdx = 0; appIdx < 16; ++appIdx) {
DPSdevIdMesg.SetApplicationId( appIdx, appId[appIdx] );
}
DPSdevIdMesg.SetDeveloperDataIndex(0);
encode.Write(DPSdevIdMesg);
fit::FieldDescriptionMesg DPSfieldDescMesg;
DPSfieldDescMesg.SetDeveloperDataIndex(0);
DPSfieldDescMesg.SetFieldDefinitionNumber(0);
DPSfieldDescMesg.SetFitBaseTypeId(FIT_FIT_BASE_TYPE_FLOAT64);
FIT_WSTRING DPSname = L"DPS";
DPSfieldDescMesg.SetFieldName(0,DPSname );
DPSfieldDescMesg.SetUnits( 0, L"m" );
encode.Write(DPSfieldDescMesg);
for (size_t k = 0; k < intervals_size; k++) {
std::vector<commons::timestamped<commons::gps_point>> gps_points = interval_report.gps_points;
size_t gpsPointsSize = gps_points.size();
for …Run Code Online (Sandbox Code Playgroud) 我正在开发一个GIS应用程序,我一直在使用输出NMEA协议的设备.NMEA设备有很多库,但Garmin只有一个我找到的库,它不是很完整:OpenGPS.NET
我有两个问题:
我还使用Franson GPSgate将Garmin转换为NMEA,但是当计算机进入睡眠模式时会出现问题.当它返回时,我必须重置GPS设备.