怎么在Ubuntu Scope中获取location地址信息

简介:

Location信息对非常多有地址进行搜索的应用来说非常重要。比方对dianping这种应用来说。我们能够通过地址来获取当前位置的一些信息。在这篇文章中,我们来介绍怎样获取Scope架构中的位置信息。这个位置信息能够对我们非常多的搜索是非常重要的。


1)创建一个简单的Scope应用


我们首先打开SDK,并选择“Unity Scope”模版:



接下来。我们选择“Empty scope”。这样我们就创建了我们的一个最主要的scope了。



我们能够执行我们的Scope。

这是一个最主要的Scope。


2)增加代码获取Location信息

为了获取位置信息,我们对我们的代码进行设置。首先打开"data"目录中的.ini文件,并增加LocationDataNeeded=true。这样整个文件显示为:

[ScopeConfig]
DisplayName = Scopetest Scope
Description = This is a Scopetest scope
Art = screenshot.png
Author = Firstname Lastname
Icon = icon.png

LocationDataNeeded=true

[Appearance]
PageHeader.Logo = logo.png

同一时候我们打开scope.cpp文件,并改动为:

#include <unity/scopes/SearchMetadata.h> // added

....


void Query::run(sc::SearchReplyProxy const& reply) {
    try {
        cerr << "starting to get the location" << endl;

        auto metadata = search_metadata();
        if (metadata.has_location()) {

            cerr << "it has location data" << endl;

            auto location = metadata.location();

            if (location.has_country_code()) {
                cerr << "country code: " << location.country_code() << endl;
             }

            if ( location.has_area_code() ) {
                cerr << "area code: " << location.area_code() << endl;
            }

            if ( location.has_city() ) {
               cerr << "city: " << location.city() << endl;
            }

            if ( location.has_country_name() ) {
                cerr << "" << location.country_name() << endl;
            }

            if ( location.has_altitude()) {
                cerr << "altitude: " << location.altitude() << endl;
                cerr << "longitude: " << location.longitude() << endl;
                cerr << "latitude: " << location.latitude() << endl;
            }

            if ( location.has_horizontal_accuracy()) {
                cerr << "horizotal accuracy: " << location.horizontal_accuracy() << endl;
            }

            if ( location.has_region_code() ) {
                cerr << "region code: " << location.region_code() << endl;
            }

            if ( location.has_region_name() ) {
                cerr << "region name: " << location.region_name() << endl;
            }

            if ( location.has_zip_postal_code() ) {
                cerr << "zip postal code: " << location.zip_postal_code() << endl;
            }
        }

 ....

}

我们通过打印的方式来查看我们所收到的位置信息。在手机上执行,并同一时候在desktop上执行例如以下的命令:





我们能够看到我们所须要的位置信息。通过这些信息,我们能够在我们的Scope中使用。

全部的源代码能够在例如以下的地址找到:

bzr branch  lp:~liu-xiao-guo/debiantrial/scope




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5177184.html,如需转载请自行联系原作者
相关文章
|
Ubuntu 网络协议
百度搜索:蓝易云【ubuntu系统如何设置静态IP地址?】
现在,你已经成功在Ubuntu系统中设置了静态IP地址。系统将使用指定的静态IP地址进行网络连接。
223 0
|
分布式计算 Ubuntu Hadoop
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
2432 0
|
Ubuntu 网络协议 开发工具
在 Ubuntu 中如何设置静态 IP 地址?
在 Ubuntu 中如何设置静态 IP 地址?
1498 0
|
Ubuntu
Ubuntu配置静态IP地址
Ubuntu配置静态IP地址
795 0
Ubuntu配置静态IP地址
|
网络协议 Ubuntu Linux
为公网SSH远程Ubuntu配置固定的公网TCP端口地址主图
为公网SSH远程Ubuntu配置固定的公网TCP端口地址主图
343 0
|
网络协议 Ubuntu
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
335 0
ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
|
存储 Ubuntu
Ubuntu 查看 CPU 信息
Ubuntu 查看 CPU 信息
792 0
|
Ubuntu
Ubuntu 查看磁盘信息
Ubuntu 查看磁盘信息
453 0
|
域名解析 弹性计算 网络协议
为 ECS Ubuntu 18.04 实例配置辅助私网 IP 地址
本文主要为大家讲解如何给 Ubuntu 18.04 系统配置辅助私网 ip。
1479 0
为 ECS Ubuntu 18.04 实例配置辅助私网 IP 地址
|
弹性计算 网络协议 Ubuntu
为ECS Ubuntu 18.04实例配置辅助私网IP地址
本文介绍,如何给Ubuntu 18.04系统配置辅助私网ip。
4375 0
为ECS Ubuntu 18.04实例配置辅助私网IP地址