Board logo

标题: 使用 Pitney Bowes 定位服务构建一个简单的图片定位应用程序 [打印本页]

作者: look_w    时间: 2018-1-18 13:01     标题: 使用 Pitney Bowes 定位服务构建一个简单的图片定位应用程序

IBM Bluemix™ 提供了将您的伟大思想变成一个应用程序或服务所需的所有平台功能。Bluemix 还为您提供了对各种各样 API 的访问,通过将这些 API                与第三方提供的功能混合使用,您可以使用它们来增强您的应用程序。
提供了功能强大的 API                来实现地理编码、地址查询等功能。本文使用了一个简单而又有趣的示例应用程序,该应用程序在 Instagram                中将任意美国街道地址的经纬度与媒体搜索相结合,通过这个示例,我们将向您展示如何在您的 Bluemix 应用程序中使用 Pitney Bowes API。
入门的前提条件Pitney Bowes 定位服务快速指南使用 Bluemix 平台的开发人员可以使用的四项 Pitney Bowes 定位服务:
步骤 1. 注册 Pitney Bowes 服务现在,您已经为在 Bluemix 中使用应用程序 ID 和 Pitney Bowes services 服务做好了准备。
步骤 2. 在 Bluemix 中创建一个 Pitney Bowes 服务实例步骤 3. 克隆 Node.js 寻像器应用程序代码从 IBM jStart DevOps 存储库克隆 Node 寻像器应用程序:
1
git clone https://hub.jazz.net/git/jstart/Picture.Finder.(Node)




所有应用程序逻辑都在 app.js 中,包括一些使得 Web 应用程序开发变得更容易的 Node 模块:
“post to /location” 命令将会对 Pitney Bowes 地理编码服务执行一个 GET 调用。然后,返回的经纬度被传递给                Instagram(记得将代码中的 instagramID 和 instagramSecret 替换为那您自己的 Instagram                开发人员帐号和密钥),以便检索描述指定地址一公里范围以内的所有图片的 JSON。
请注意,在对地理编码服务的调用中,使用了从地理编码服务凭据中获得的 Pitney Bowes URL 和应用程序 ID。
1
var Client = rest.Client; client = new Client(); if (!address && !city && !state) res.render('index.html'); // direct way client.get(url + "?address=" + address + "&city=" + city + "&stateProvince=" + state + "&country=USA&fallbackToPostal=Y& fallbackToStreet=Y&fallbackToGeographic=Y& closeMatchesOnly=Y&appId =" + appId, function(data, response){ // data in callback contains the json returned from pitney bowes if (data.httpCode != "500") { lat = data.Output.Geometry.Pos.Y; lng = data.Output.Geometry.Pos.X; instagram.media.search({ lat: lat, lng: lng, complete: function(data){ // pinch converts all unix timestamps to a friendly date pinch(data, /created_time/, function(path, key, value) { return moment(value*1000).format("MMMM Do YYYY, h:mm a"); }); res.render('index.html', {data: data, address: address, city: city, state: state}); }, // end complete });// end search }// end httpCode check else { msg = "Can't find any pictures near this address"; res.render('index.html', {msg: msg, address: address, city: city, state: state}); } }); // end PB call




Hogan 模板语言和超净(ultra-clean)Mustache 模板语言将结果显示在 index.html 视图中。它们显示了从 Instagram 返回的                JSON 直接返回的结果(对创建时间进行了更改,利用服务器端的 pinch 库,将该时间从 UNIX 时间戳改为一个友好的日期格式):
1
<div> <ul> {{#data}} <li style="display: inline-block; padding: 25px"><a href="{{link}}"> <img src="{{#images}}{{#thumbnail}} {{url}} {{/thumbnail}}{{/images}}"></a> <br/> By: <em> {{#user}} {{username}} {{/user}}</em> <br/> {{created_time}} <br/> {{#comments}} {{count}} {{/comments}} comment(s) {{#likes}} {{count}} {{/likes}} likes. </li> {{/data}} </ul> </div>




步骤 4. 将应用程序推入 Bluemix当应用程序运行时,转到 http://my-unique-hostname.ng.bluemix.net(其中的                    my-unique-hostname 是您在 manifest 文件中使用的主机名)。输入您的地址,并查看哪些 Instagram                用户正在您的附近发帖子。
结束语当在主要社交媒体平台上签入或使用位置共享特性时,全世界超过十二亿的人都在使用 Pitney Bowes                位置智能解决方案。通过精心定制用户对当前位置的体验,这些服务可帮助您,让您的应用程序更多地参与其中。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0