UI5-技术篇-Hybrid App-3-Fiori 百度地图应用
上一次在Jsbin中测试了百度地图应用:UI5-技术篇-Hybrid App-3-jsbin百度地图 ,主要思路:1.加载百度API 2.自定义控件 3.div标签加载地图,本文主要将相关实施过程移植到SAPUI5应用平台。
1.Component.js改写
1.1不同平台加载百度API插件
在项目文件下创建jsFile文件夹,创建bdMap.js文件

bdMap.js代码如下(注意代码中百度地图针对不同平台KEY值修改):
jQuery(function(){
var app=navigator.appVersion;
var she=["iPhone","Android","iPad","Windows"];
for(var index in she){
if(app.indexOf(she[index])!=-1){
if(she[index]=="Android"){
var url = "//api.map.baidu.com/api?key=LjpU4gtH9DGBUk5RCBZR47AyV11OwZsXX&v=2.0&services=false&callback=initialize";
}else if(she[index]=="iPhone" || she[index]=="iPad"){
var url = "//api.map.baidu.com/api?key=COVwsd7fkNXP9x7Qhm85gjOirc5vw98XX&v=2.0&services=false&callback=initialize";
}else if(she[index]=="Windows"){
var url = "//api.map.baidu.com/api?key=PG4DBjFTHfawSwT10GLLn4YZhQCmGYGXX&v=2.0&services=false&callback=initialize";
};
var sc=document.createElement("script");
sc.src=url;
document.head.appendChild(sc);
}
}
});
1.2Component.js中加载bdMap.js
注意红色代码部分:
sap.ui.define([
"sap/ui/core/UIComponent",
"jquery.sap.global",
"sap/ui/Device",
"zrico_appnszrico_pn_scan/model/models",
"zrico_appnszrico_pn_scan/jsFile/bdMap"
], function(UIComponent, jQuery, Device, models,bdMap) {
"use strict"; return UIComponent.extend("zrico_appnszrico_pn_scan.Component", { metadata: {
manifest: "json"
}, /**
* The component is initialized by UI5 automatically during the startup of the app and calls the init method once.
* @public
* @override
*/
init: function() {
// call the base component's init function
UIComponent.prototype.init.apply(this, arguments); // set the device model
this.setModel(models.createDeviceModel(), "device"); // create the views based on the url/hash
this.getRouter().initialize();
}
});
});
2.自定义控件
在项目文件下创建jsFile文件夹,创建cusCon.js文件

cusCon.js代码如下(代码中BMap相关方法报错是由于动态加载API所致,不影响测试)
sap.ui.define(
"zrico_appnszrico_pn_scan/jsFile/cusCon",
["zrico_appnszrico_pn_scan/controller/BaseController",
"sap/ui/core/Control",
"sap/m/Button",
"sap/m/Image",
"sap/m/Link",
"sap/m/Text"
], function(BaseController,Control, Button, Image, Link, Text) {
"use strict"; var cusCon = Control.extend("zrico_appnszrico_pn_scan.jsFile.cusCon", {
metadata: {
properties: {
width: {type: 'int', defaultValue: 300},
height: {type: 'int', defaultValue: 100},
bgcolor: {type: 'string', defaultValue: '#ffa'},
lineColor: {type: 'string', defaultValue: '#666'},
penColor: {type: 'string', defaultValue: '#333'},
cusCon: 'string'
}
}, renderer: function(oRm, oControl) {
var bgColor = oControl.getBgcolor();
var lineColor = oControl.getLineColor();
var pen = oControl.getPenColor();
var id = oControl.getId();
var w = oControl.getWidth();
var h = oControl.getHeight(); oRm.write("<div");
oRm.writeControlData(oControl);
oRm.write(">");
oRm.write("<div id='map_canvas'></div>");
oRm.write("</div>");
}, onAfterRendering: function() {
// 百度地图API功能
var map = new BMap.Map("map_canvas"); // 创建Map实例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]}));
map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
}
}); return cusCon;
});
3.创建SAPUI5 VIEW

创建VIEW:BDMap
3.1 VIEW代码
注意红色代码 :
加载自定义控件:xmlns:cc="zrico_appnszrico_pn_scan.jsFile"
控件标签:<cc:cusCon></cc:cusCon>
<mvc:View
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:cc="zrico_appnszrico_pn_scan.jsFile"
controllerName="zrico_appnszrico_pn_scan.controller.BDMap"
xmlns:html="http://www.w3.org/1999/xhtml">
<App>
<pages>
<Page
title="{i18n>BDMap.Page.title}"
showNavButton="true"
navButtonPress="onNavBack"
backgroundDesign="Transparent">
<content>
<cc:cusCon></cc:cusCon>
</content>
</Page>
</pages>
</App>
</mvc:View>
3.2 controller代码
sap.ui.define([
"zrico_appnszrico_pn_scan/controller/BaseController",
"sap/ui/core/mvc/Controller"
], function(BaseController,Controller) {
"use strict"; return BaseController.extend("zrico_appnszrico_pn_scan.controller.BDMap", { }); });
4.CSS文件

style.css代码:
#map_canvas 需要与控件cusCon.js中的div标签id值一致:<div id='map_canvas'></div>
body, html{width: 100%;height: 100%;margin:;font-family:"微软雅黑";}
#map_canvas{width:100%;height: 300px;}
#result {width:100%}
5.测试

UI5-技术篇-Hybrid App-3-Fiori 百度地图应用的更多相关文章
- 移动端app跳转百度地图
http://lbsyun.baidu.com/index.php?title=uri/guide/helloworld(百度地图调起URI API)开发者只需按照接口规范构造一条标准的URI,便可在 ...
- 利用HBuilder开发基于MUI的H5+ app中使用百度地图定位功能
定位功能有两种方法: 首先要初始化内置地图: var map = new plus.maps.Map("map"); 这里黄色的map是html里面的id: <div id= ...
- 【百度地图API】如何利用PhoneGap制作地图APP
原文:[百度地图API]如何利用PhoneGap制作地图APP 摘要:百度地图API是一套由javascript编写的地图程序接口,按说它应该运行在浏览器上.现在,只要利用PhoneGap,我们就能开 ...
- 百度地图SDK
百度地图官方SDK文档 http://lbsyun.baidu.com/index.php?title=androidsdk 一.申请百度地图SDK 每一个app对应一个百度地图AK,百度地图 ...
- 百度地图结合echarts并添加行政区块
作者:LJaer链接:https://www.zhihu.com/question/49251513/answer/125728764来源:知乎<!DOCTYPE html> <ht ...
- android引入百度地图之最简单的例子-HelloBaiDuMap
开发工具 我用的是eclipse,目前这是开发android用的最多的一个工具. 开发准备 首先需要在百度地图开发平台上下载所需要的文档和功能,由于最新版的3.0.0的不是很熟悉,我这里用的是稍旧一点 ...
- 用百度地图API分析打交通大数据
百度地图API, 文档不全,例子不细致. 在网上还没有太多有用的例子.比如说下面几个需求的解决方案就找不到: 1. 如何用百度地图API查询一个地点的经纬度. 2. 如何用百度地图通过一个经纬度查询商 ...
- 微信小程序城市定位(百度地图API)
概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...
- 【Android】3.0 第3章 百度地图及其应用--预备知识
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技 ...
- Vue中使用百度地图——根据输入框输入的内容,获取详细地址
知识点:在Vue.js项目中调用百度地图API,实现input框,输入地址,在百度地图上定位到准确地址,获得到经纬度 参考博客: 百度地图的引用,初步了解参考博客:http://blog.csdn. ...
随机推荐
- C#构建可扩展的应用程序(插件)
构建可扩展的应用程序,特别是对于WinForm应用程序是特别有好处的.我们知道,企业的需求是瞬息万变的,企业在使用软件的过程中,很可能对于现有的需求有变动甚至是提出新的需求来,可是我们的软件已经部署在 ...
- Linux下查看目录文件数和文件大小
一.查看当前目录下文件个数 在linux下查看目录下有多少文件可以用:ls -l 命令查看,ls -lR 递归查看所有目录, 如果文件很多,则用wc命令 和 grep 命令进行过滤. wc命令显示输 ...
- 已知X,Y独立,那么X^2与Y也独立
考虑离散情况, P{X^2=k} => P{X=sqrt(k)} 由X,Y独立可知, P{X=Sqrt(k} | Y=y} =P{X=Sqrt(x)}, P{X^2=k | Y=y} =P{ ...
- [转]c++ pthread 多线程简介
链接:https://blog.csdn.net/u013894427/article/details/83827173 pthread 入口函数类型说明void * func1(void * t)v ...
- [Java复习] Spring Cloud - Netflix
Spring Cloud Netflix常用组件 服务注册与发现:Eureka 服务负载均衡:Ribbon 服务声明式客户端:Feign 服务熔断:Hystrix 服务网关: Zuul Eureka: ...
- matlab学习笔记4--多媒体文件的保存和读取
一起来学matlab-matlab学习笔记4 数据导入和导出_2 多媒体文件的保存和读取 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用&g ...
- 【Python学习之二】Python基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.Python的注释及乱码1.单行注释:以#开头 ...
- C#不区分大小写的字符串替换(Replace)函数
在.NET中,不调用C++/CLI,进行字符串替换有好几种方法: 1.最常用的,就是String实例.Replace(),但这个不能忽略大小写. 2.System.Text.Regex(Regular ...
- 【CUDA开发】 Check failed: error == cudaSuccess (8 vs. 0) invalid device function
最近在复现R-CNN一系列的实验时,配置代码环境真是花费了不少时间.由于对MATLAB不熟悉,实验采用的都是github上rbg大神的Python版本.在配置Faster R-CNN时,编译没有问题, ...
- 文件上传速度查询方法(watch工具)
由于业务迁移,需要将大量文件拷贝到目标机器上的/mnt目录,在拷贝过程中,想要查看上传的速度,做法如下:[root@mail01 ~]# du -sh /mnt5.6G /mnt[root@mail0 ...