Ext与天地图的结合问题
来源:互联网 发布:多益网络 概念股 编辑:程序博客网 时间:2024/05/03 21:30
在将天地图加入到控件中时出现以下问题:
一:Tmap无法直接渲染到Panel中,因为TMap的构造方法中需要给定容器对象,而根据API只能是DIV对象那个,试了直接给panel的id,无法实现:
最后使用panel的html属性实现:
Ext.define('mappanel', {
extend: 'Ext.panel.Panel',
initComponent: function () {
Ext.apply(this, {
id: 'mappanel',
title: 'map',
html: "<iframe src='innerMap.html' width='100%' height='100%'></iframe>",
});
this.callParent(arguments);
}
})
当中的src指向定义好了Tmap的页面;
innerMap.html
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript" src="http://api.tianditu.com/js/maps.js"> </script> <script> function onLoad() { var config = { projection: "EPSG:4326" } //初始化地图 map = new TMap("mapDiv", config); //设置地图中心和缩放度 map.centerAndZoom(new TLngLat(103.84069, 36.06731), 16); //设置双击放大 map.enableDoubleClickZoom(); //设置滚轮缩放 map.enableHandleMouseScroll(); //设置视野区域 //map.setBounds(new TBounds(90.00000,30.00000,105.00000,40.00000)); //启用连续缩放 map.enableContinuousZoom(); //设置地图类型为卫星图 //map.setMapType(TMAP_SATELLITE_MAP); //向量图 //map.setMapType(TMAP_NORMAL_MAP); //混合图 map.setMapType(TMAP_HYBRID_MAP); //*******************************************平移缩放控件******************************************************************** var config = { type: "TMAP_NAVIGATION_CONTROL_LARGE", //缩放平移的显示类型 anchor: "TMAP_ANCHOR_TOP_LEFT", //缩放平移控件显示的位置 offset: [20, 0], //缩放平移控件的偏移值 showZoomInfo: true //是否显示级别提示信息,true表示显示,false表示隐藏。 }; //创建缩放平移控件对象 control = new TNavigationControl(config); //添加缩放平移控件 map.addControl(control); //**************************************************比例尺控件************************************************************* //创建比例尺控件对象 var scale = new TScaleControl(); //添加比例尺控件 map.addControl(scale); //******************************************************鹰眼控件********************************************************* var config = { anchor: "TMAP_ANCHOR_BOTTOM_RIGHT",//设置鹰眼位置,"TMAP_ANCHOR_TOP_LEFT"表示左上,"TMAP_ANCHOR_TOP_RIGHT"表示右上,"TMAP_ANCHOR_BOTTOM_LEFT"表示左下,"TMAP_ANCHOR_BOTTOM_RIGHT"表示右下,"TMAP_ANCHOR_LEFT"表示左边,"TMAP_ANCHOR_TOP"表示上边,"TMAP_ANCHOR_RIGHT"表示右边,"TMAP_ANCHOR_BOTTOM"表示下边,"TMAP_ANCHOR_OFFSET"表示自定义位置,默认值为"TMAP_ANCHOR_BOTTOM_RIGHT" size: new TSize(180, 120),//鹰眼显示的大小 isOpen: true//鹰眼是否打开,true表示打开,false表示关闭,默认为关闭 }; //创建鹰眼控件对象 overviewMap = new TOverviewMapControl(config); //添加鹰眼控件 map.addControl(overviewMap); //************************************************地图类型控件*************************************************************** //创建地图类型控件对象 var control = new TMapTypeControl(); //将地图类型控件添加到地图上 map.addControl(control); //设置地图类型控件在地图上显示的位置,默认为在右侧,注:将控件加载到map之后再做此配置 control.setLeft(100); control.setTop(10); } </script></head><body onload="onLoad()"> <div id="mapDiv" style="position:absolute;left:0; top:0px; width:100%; height:100%"></div></body></html>
二:,根据上述方法却无法拿到map对象进行操作(我尝试了很久没有拿到,水平有限),最后解决方法是在panel的html中定义一个div,然后将map渲染到div中,这里要注意的map渲染的时机,必须是在整个panel布局完成后,否则会报错:然后可以通过window.map拿到map对象进行操作;
Ext.define('mappanel', {
extend: 'Ext.panel.Panel',
initComponent: function () {
Ext.apply(this, {
id: 'mappanel',
title: 'map',
//items:map,
//html: "<iframe src='../html/innerMap.html' width='100%' height='100%'></iframe>",
html: "<div id='mapDiv' style='position:absolute;left:0;top:0px;width:100%;height:100%'></div>",
listeners: {
afterlayout: function () {
onLoad();
}
}
});
this.callParent(arguments);
}
});
function onLoad() {
var config = {
projection: "EPSG:4326"
}
//初始化地图
map = new TMap("mapDiv", config);
//设置地图中心和缩放度
map.centerAndZoom(new TLngLat(103.84069, 36.06731), 16);
//设置双击放大
map.enableDoubleClickZoom();
//设置滚轮缩放
map.enableHandleMouseScroll();
//设置视野区域
//map.setBounds(new TBounds(90.00000,30.00000,105.00000,40.00000));
//启用连续缩放
//map.enableContinuousZoom();
//设置地图类型为卫星图
//map.setMapType(TMAP_SATELLITE_MAP);
//向量图
map.setMapType(TMAP_NORMAL_MAP);
//混合图
//map.setMapType(TMAP_HYBRID_MAP);
}
- Ext与天地图的结合问题
- 天地图与谷歌的对比及偏移问题
- 关于Ext与fusioncharts的结合
- ext与struts2结合
- FCKEditor与ext结合使用
- EXT.NET与Echart结合
- 几篇Ext与Struts结合开发的文章
- 天地图按照官方教程闪退的问题
- 天地图离线瓦片的打包与发布(GeoServer)
- Ext消息框与html结合(1)
- Ext消息框与html结合(2)
- setImageDrawable与setImageResource的天地之别
- Ext与现有项目的结合(一)-完全封装已有的HTML元素使之成为Ext的组件
- 关于birt与webwork结合的问题
- 关于ipython与shell结合的问题
- hibernate与dwr的结合问题
- structs与ajax结合的问题
- structs与ajax结合的问题
- 翻译mos(文档 ID 273121.1) 不使用trace 找到绑定变量的值
- log4j日志文件路径设置
- 如何点击链接直接跳转到app store指定应用下载页面
- Linux下的iwpriv、iwlist、iwconfig
- 项目开发规范
- Ext与天地图的结合问题
- html加强
- bzoj 1185: [HNOI2007]最小矩形覆盖 旋转卡壳
- Git图形化界面客户端大汇总
- 自定义控件-下拉刷新和上拉加载的listView
- STRING转WCHAR 和WCHAR 转STRING
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- iprobe安装文档
- 获取数据库的key值