最近在使用要使用GPS定位,需要调用地图显示出位置信息,刚上手时非常的无奈,因为不知从哪下手。
url.setQuery(urlQuery);
看过一些文章之后慢慢的对此也有一点的而了解,就向着把这些东西记录下来,以便下次不会有人那么举手无措。
先说版本号吧,Qt使用的版本是5.3.1,比较之前的Qt4.x确实有小许变化,至于变化的内容可以参见
官网给出的说明(http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5).
接下来说些百度地图的api,实际上我看到提供地图API的还有很多,必须
腾讯地图,
高德地图,google map等等 提供商家不一样,但是答题思路是相同的。网上对于google地图的调用比较多,大家可以参考。
百度地图api的内容网站对此介绍的比较全面。首先可以借组百度提供的
地图快速生成器来快速生成基本的地图。生成方法就是吧他给出的代码放到TXT文件下,然后把扩展名改成html即可。当然生成的地图是最基本的地图,你也可以根据
百度提供的案例在此地图上添加你所需要的控件或者其他的任何东西。这时你可以参考
google map api快速入门和
百度api最佳实践。
上面的闲话说的有点多。一切就绪,现在开始gps定位。Qt只需读出GPS的给出的信号,直接在web上显示即可。这里需要用到Qt的webView进行显示、
数据交互的格式可以参考
百度给出的借口说明。标记函数可写作。
QUrl
map::GPSMark(const QString &GPSCoordinate)
{
QUrl temp;
QString ret;
HttpClient * http = new HttpClient();
QUrl url;
url.setUrl("http://api.map.baidu.com/marker");
QUrlQuery urlQuery;
urlQuery.addQueryItem("location", GPSCoordinate);
urlQuery.addQueryItem("title", tr("my GPS location"));
//标点的标题
urlQuery.addQueryItem("content", tr("current location"));
//标点的内容
urlQuery.addQueryItem("output", "html");
//urlQuery.addQueryItem("coord_type", "bd09");
urlQuery.addQueryItem("src", "map");
//http://map.baidu.com/?latlng=40.047669,116.313082&title=my gps loclation
//url = QUrl("http://map.baidu.com/?latlng=40.047669,116.313082&title=我的位置&content=百度奎科大厦&autoOpen=true&l");
//webview->load(url);
//webview->show();
setWindowTitle(url.toString());
return temp;
}
参数即为gps获取的经纬度信息,当然这里默认的经纬度为百度经纬度,可以根据百度提供的函数进行坐标经纬度的互换。
最后给出测试图
有木有感觉很简单。对,就是如此简单。
如有疑问欢迎回复