云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

华为云_百度云共享群_折扣

小七 141 0

星期五快乐!我将开始一个新的系列,在那里我将张贴(小)API应用程序和他们的操作方法,云服务器购买,每周五(或周四晚上,因为我在加利福尼亚州)展示如何将不同的API集成到您的SAP用户界面。我将分享一些在构建应用程序时遇到的陷阱、窍门和技巧,以及代码片段,以便您可以自己尝试。如果您对SAP中的API有任何建议,或者您对本系列有一些反馈,请在Twitter上给我发一条推文。我可以在@mlhassett找到并使用hashtag#apividay.

让我们使用Google Maps JS、OSRM和UI5为您的Fiori启动板制作一个快速应用程序!

使用谷歌地图JS库,您可以快速制作一个应用程序,将您引导至预先选定的目的地,微信返利机器人可靠吗,包括家、工作和机场。Google地图提供了交通和路线方向的叠加,但是Google地图的距离矩阵没有将当前的交通状况计算到估计的旅行时间中。如果你每个人都住在或去过海湾地区,你知道没有一天的时间没有交通,微信返利机器人,所以我需要找到一些考虑到道路交通状况的东西。这就是我如何找到OSRM或开源路由机器的。OSRM在提供路线和时间估计时会考虑流量。

要开始在UI5应用程序中使用GoogleMapsJS库,我建议使用这个GitHub项目作为一个良好的起点。这将帮助您了解如何调用库以在控制器和视图中使用,大数据中心是什么,以及如何操作库的DOM。

对于我的应用程序,我添加了一个带有平铺的起始页,以选择您要查看的路由。我更新了索引.html文件来使用UI5标准向内核添加Shell。

然而,这意味着您的DOM操作将不得不改变一点。在GitHub Google Maps项目中,找到地图.控制器.js文件。定义映射的行:

UI5会自动为DOM中的元素生成标记,即使您像在视图中那样定义它们:

如果您像我一样在映射前面添加页面,您可能需要通过运行应用程序来了解预生成的标记模式,从而对应用程序进行一些操作。在我的应用程序中,我发现#xmlview#-–在我的视图ID标记前面,所以我调用映射的代码如下:

另一个警告是,视图#是基于有序单击的,这意味着如果我不按特定顺序单击我的磁贴,则此调用将不起作用,因为工作视图不是长视图2,主视图不再是视图3-仍然在解决这个问题。

这只是为了让地图渲染。别忘了,如果你想在你的应用程序中允许导航,你必须在你的应用程序中启用它清单.json文件和组件.js. 可以在本教程中找到说明。因为我不需要在URL中传递数据来知道要加载什么视图,所以我的路线简单了一点,不需要模式匹配。

返回地图!

如果你查看谷歌地图JS库,添加交通和方向等功能非常简单。为了以后在地图上显示方向,我创建了一个使用Google地图方向服务的简单函数。Google地图文档有方便的代码片段。它们的所有代码都在索引文件中完成,因此您必须将代码从脚本标记中复制出来,并将其添加到控制器中的函数中。关键是学习如何在MVC应用程序中使用文档。

添加流量更容易。我将代码添加到initMap函数中。

现在路由变得有点棘手。osrmapi需要地址的地理码,所以需要长坐标。幸运的是,谷歌地图确实有一个地理编码器。不幸的是,它是异步的,我需要编码2个地址,我需要知道这两个地址都已完成地理编码,然后才能从OSRM获得我的方向。为了实现这一点,我在控制器中创建了另一个函数,它一次对一个地址进行地理编码。为了强制它按顺序进行地理编码,我对第一个地理编码回调中的第二个地址进行了地理编码。一旦第二个地理代码完成,我知道我可以继续获取距离和时间,因此我将在第二个回调中调用该函数。

我的∗getDistance函数将使用OSRM API确定从家到工作需要多长时间,反之亦然。我把它设为私有的,返利优惠券,因为只有当我知道地理编码已经完成时才应该调用它。我不希望随意点击视图中的按钮就可以直接访问它!

由于这个AJAX调用也是异步的,所以我们必须在回调函数中执行所有DOM操作,在本例中是done()。在我看来,我有一个id为output的工具栏来显示距离和时间。这将放在地图的顶部来显示这些细节。

现在要让这些很酷的新功能真正出现在地图上,你需要实际调用我们刚刚创建的函数。将函数调用添加到onAfterRender()函数中,看哪,注意交通问题!

本着透明的精神,我做了大量的硬编码?但我一直在努力改进。我注意到仍然存在问题的两件事是1。xmlview#为我的标签和2添加了我的ID。将此作为一个fiori应用程序启动。在Fiori启动板上运行应用程序时,它会忽略索引.html文件,这意味着我们没有加载googlemapsjs库,因此它不理解什么谷歌地图是。我试着把它加到组件.js文件,因为我们在Fiori启动板中仍然有它,但是在应用程序尝试渲染之前它不会加载库。OpenUI5有一个Google地图库,所以也许我可以用它来尝试我的应用程序,但是如果你,社区,对我的问题有什么建议,或者对如何改进应用程序有什么建议,我会很乐意听到的!

下周五和我一起学习如何在Fiori Launchpad中创建一个可调用Uber的互动程序!