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. ...
随机推荐
- epoll 或者 kqueue 的原理是什么?
来自知乎:http://www.zhihu.com/question/20122137 epoll 或者 kqueue 的原理是什么? 为什么epoll和kqueue可以用基于事件的方式,单线程的实现 ...
- MySQL事务部分回滚-回滚到指定保存点
我们可以在mysql事务处理过程中定义保存点(SAVEPOINT),然后回滚到指定的保存点前的状态. 定义保存点,以及回滚到指定保存点前状态的语法如下. 定义保存点---SAVEPOINT 保存点名; ...
- rabbitmq - 消息接收,解析xml格式数据时异常:ERROR not well-formed (invalid token): line 4, column 46
ERROR alsv odoo.addons.cus_alsv.utils.alsv_about_mq.get_data_from_mq: parse_xml_data_from_mq: not we ...
- 使用协方差矩阵的特征向量PCA来处理数据降维
取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.data ...
- [Design Patterns] 02. Structural Patterns - Facade Pattern
前言 参考资源 史上最全设计模式导学目录(完整版) 只把常用的五星的掌握即可. 外观模式-Facade Pattern[学习难度:★☆☆☆☆,使用频率:★★★★★] 深入浅出外观模式(一):外观模式概 ...
- 转 全新多媒体共享器Ipush推送|Miracast WIFI无线同屏推送
http://www.52bjw.cn/product-info/5767857.html 操作指南及注意事项 (draft) miracast和dlna/airplay分别工作在wifi direc ...
- TWA那些事儿
一.参考学习 https://developer.android.google.cn/studio/ https://juejin.im/post/5cf50755e51d455d850d3aa7
- Centos7安装图形界面桌面
查看是否存在图形安装包.如果包含GNOME Desktop,则说明已存在. yum grouplist 安装图形化包 yum groupinstall "GNOME Desktop" ...
- golang高级用法总结
sync.WaitGroup add() done() wait() 相当于计数器,done会减一,wait会等待所有线程都执行完才执行下面代码 sync.pool 用来封装连接池
- Kubernetes 配置管理 Dashboard(十三)
目录 一.安装配置 1.1 下载 镜像 1.2.安装 1.3.修改 NodePort 二.配置授权 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户 ...