十四、地图

《视觉SLAM十四讲精品总结》10.4: 添加局部地图 0.3版本的VO仍受两帧间匹配的局限性影响,一旦视频序列的某帧丢失,导致后面匹配失败。 将VO匹配到的特征点放到地图中,并将当前帧与地图点进行匹配,计算和地图之间位姿。每一帧为地图贡献一些信息,比如添加新的特征点或更新旧特征点的位置估计。地图中的特征点一般都是使用世界坐标,所以当前帧到来时,匹配它和地图之间运动关系可以直接得到Tcw。 这样做的好处就是,维护一个不断更新的地图,只要地图正确,即... 阅读详情

目前很多地图服务商提供了面向Javascript的地图服务,如百度、Google、MapABC、微软等,其开发方式都大同小异。下面以百度地图为例来说明这一过程,我们以前面自定义组件的知识为基础,通过自定义一个MyMapPanel来显示和管理地图。

首先新建一个MapTest.html网页,其内容如下:

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01//EN">

<html>

<head>

   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8; user-scalable=no">

   <title>地图</title>

   <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css"/>

    <scripttype="text/javascript"src="bootstrap.js"></script>

    <script type="text/javascript"src="http://api.map.baidu.com/api?v=1.3"></script>

    <script type="text/javascript"src="MapTest.js"></script>

</head>

<body>

<div id="myDiv"width="100%" height="100%" />

</body>

</html>

由于要采用百度地图,所以添加脚本引用,目前百度地图提供的版本为1.3,其对应地址为http://api.map.baidu.com/api?v=1.3。具体地址可以参考百度地图API(http://dev.baidu.com/wiki/static/index.htm)。

然后新建一个用于自定义组件的js文件MyMapPanel.js,其内容如下:

/* 地图显示面板 */

Ext.define('XZY.MyMapPanel',{

    extend:'Ext.panel.Panel',  //继承的组件

    alias:'widget.mymappanel',    

   requires: ['Ext.window.MessageBox'],

   title:'地图组件',    //标题

   centerX:116.404,    //地图中心经度,自定义变量

   centerY:39.915,     //地图中心纬度,自定义变量

   height:600,         //高度

   autoScroll :true,   //自动滑动

   map:null,          //地图对象,自定义变量

   initComponent : function(){ //初始化组件函数          

       this.callParent();   //返回至父容器中,这句是必须的        

    },

    initialMap:function(){  //初始化地图   

        this.map = new BMap.Map(this.body.dom);//创建地图

       var point = new BMap.Point(this.centerX, this.centerY);// 创建点坐标   

       this.map.centerAndZoom(point, 15);//缩放至该中心

    },

   centerAt:function(centerX,centerY){  //移动至指定中心

       this.centerX=centerX;

       this.centerY=centerY;

       var point = new BMap.Point(this.centerX, this.centerY);// 创建点坐标   

       this.map.setCenter(point);//缩放至该中心

    },

   mapZoomIn:function(){ //地图放大

       this.map.zoomIn();//地图放大一级

    },

   mapZoomOut:function(){ //地图缩小

       this.map.zoomOut();//地图缩小一级

    },

   items:[

       ToolWin = Ext.create('Ext.Window',{ //定义一个工具窗体

       title:'工具', //窗体标题

       closable:false,      //不能关闭

       collapsible:true,

       width:200,          //宽度

       height:350,         //高度

       layout:'absolute',  //布局

       x:5,

       y:30,

       items:[   //包含的对象

              Ext.create('Ext.Button',{

              text:'放大', 

                x:5,

                y:5,

              icon:'images/zoomIn_16.png', //图标文件路径

              listeners:{

                  'click':function(){

                     this.ownerCt.ownerCt.mapZoomIn();

                  }

              }}),

              Ext.create('Ext.Button',{

              text:'缩小', 

              x:5,

                y:35,

              icon:'images/zoomOut_16.png', //图标文件路径           

              listeners:{

                  'click':function(){

                      this.ownerCt.ownerCt.mapZoomOut();

                  }

              }})]           

       }).show()  //显示该Window窗体

    ]

});

以上代码与前面创建自定义组件的过程基本一致,只是增加了四个自定义函数:initialMap(用于初始化地图)、centerAt(用于指定地图中心)、mapZoomIn(放大地图)和mapZoomOut(缩小地图)。如果有其他需要,还可以添加更加丰富的函数,在此不继续进行扩展。另外在自定义的组件MyMapPanel中的items配置项里面添加了一个Window窗体,并在该窗体里面添加了两个按钮,分别用于放大地图和缩小地图,同时设置了按钮的图标(在images文件夹中添加两个图片文件zoomIn_16.png和zoomOut_16.png)。

最后,新建一个MapTest.js文件,并在里面创建一个自定义的MyMapPanel对象,如下:

Ext.Loader.setConfig({enabled: true});//允许设置参数

Ext.Loader.setPath('XZY', '');  //设置路径

 

Ext.onReady(function(){

    var tempMapPanel = Ext.create('XZY.MyMapPanel',{

       renderTo:myDiv

    });

    tempMapPanel.initialMap();//初始化地图

});

保存这三个文件(MapTest.html、MyMapPanel.js和MapTest.js),浏览网页MapTest.html,其结果如下图所示:

通过点击“放大”和“缩小”按钮即可实现地图的放大和缩小。更多丰富的地图功能请参看地图服务商发布的API。

值得注意的是,如果采用手机的GPS设备来采集坐标,其坐标系默认是WGS1984,而国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密,百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。最简单的方式就是根据GPS实测的坐标和地图上坐标进行比较,获取其经纬度方向的差值。如用手机GPS测得的坐标为:111.28485852、30.70940625,但是在地图上该位置的坐标为:111.29694176、30.712093,其在经度方向差值为0.01208324,纬度方向差值为:0.00268675,那么在地图开发中加上这个差值用来校正GPS的偏差。



ArcGIS Pro SDK (十四)地图探索 2 地图图层 【代码】ArcGIS Pro SDK (十四)地图探索 2 地图图层。 阅读详情

相关推荐

ArcGIS Pro SDK (十四)地图探索 1 地图视图

【代码】ArcGIS Pro SDK (十四)地图探索 1 地图视图。

Winemonk 760

天地图-第二篇-地图的基本操作

天地图-地图的基本操作

cherry_vicent的专栏 1203

ArcGIS Pro SDK (十四)地图探索 4 书签

【代码】ArcGIS Pro SDK (十四)地图探索 4 书签。

Winemonk 566

220.map2-百度地图api使用

Layout中添加MapView控件用于展示地图 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android

augfun的博客 1079

ArcMap ZoomIn(add-in)插件制作(VS2010 +ArcObject10.2) C++

vs2010 + arcobject10.2版本 C++ 开发的ATL项目生成的dll文件以及源码 具体开发流程可以参见我的博客 主要是官方文档太坑了。。

配置权重_高盛都在用的资产配置模型,BL贝叶斯框架改进Markowitz

前面我们说到,markoviz的均值-方差模型,第一次,用数学的方式严格证明了投资组合存在最优的权重,但它的学术意义大于实战。主要原因有两个:1,人们很难有效的预测期望收益率;2,最优资产组合配置对输入非常敏感,结果往往难以被人理解。还有就是在投资中,定量只是完成初步构建,同步的定性判断依然非常重要:第一,投资者的认知偏好:倾向于关注他们认为被低估,但有发展潜力或者可以确定相对交易价值的小部分股票...

weixin_39892309的博客 715

vue-baidu-map的使用(二)——关于自定义控件以及控制标注是否显示问题

首先我们引入vue-baidu-map地图,可以参考:https://blog.youkuaiyun.com/qq_39009348/article/details/90070142,里面有详细的vue-baidu-map的基本使用方法。 需求:如果我们需要自定义一个控件区域,并且在该控件区域控制我们的某些标注是否显示,以及搜索详细地址,该如何做呢? 首先我们引入自定义控件: 在<baidu-m...

花落微凉梦清幽的博客 4452

避坑指南:RFSoC数据转换器多片同步配置的7个致命错误

本文深入剖析了在配置RFSoC多片同步功能时,工程师最常遇到的七个致命错误。从Tile 0的强制启用、时钟域与SYSREF时序,到跨代器件兼容性、电源序列以及动态重配置的陷阱,文章结合实战经验,提供了从原理到调试的完整RF数据转换器配置指南,旨在帮助开发者高效构建相位一致的大规模射频采样系统。

weixin_28452161的博客 533

百度地图开发(三)之地图控制 + 定位

转载请注明出处:     前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码。     接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能。     百度地图提供的关于地图的操作主要有:单击、双击、长按、缩放、旋转、俯视等。 地图控制     我们现在已经知道,想要显示一个地图,只需要在xml文件中添加一个MapView控件即可,但

crazy_jack 9万+

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

13、离散时间系统建模与分析

本文系统介绍了离散时间系统的建模与分析方法,涵盖连续时间模型的离散化过程、系统稳定性判断准则、输入输出模型转换方法以及有限脉冲响应和阶跃响应模型的应用。通过多个示例详细展示了不同系统在离散化过程中的特性变化,并探讨了采样间隔对系统动态特性的影响。此外,文章还分析了时间延迟的处理方法,并总结了关键知识点及操作步骤,为离散时间系统的实际应用提供了理论基础和实践指导。

2w3e4r5t6y的博客 188

藏在地图中的二十四节气

MapDesign 今日春分,我们就先从春分说起。 春分,是二十四节气中的第四个节气。春分时,太阳黄经为0度,太阳的位置在赤道上方,几乎直射赤道,全球各地昼夜等长。“春分者,阴阳相半也。故昼夜均而寒暑平”。 小编从中国气象数据网(网址:http://data.cma.cn/)下载了“中国地面观测气象站点”数据以及全国的“中国地面累年值日值数据集(1981-2010年)”,在SuperMap...

SuperMap技术控 1699

【数字IC设计】芯片设计中的RDC

在芯片设计中,RDC是的缩写,类似于CDC(clock domain crossing),由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以在出问题的时候只复位有错误逻辑的模块,而使其它模块保持正常工作。

qq_40268672的博客 2185

时光有节,岁月有气,用 CodeBuddy + 地图 MCP 构建二十四节气

二十四节气是中国古代农耕社会根据太阳在黄道上的位置变化划分的24个时间节点,不仅为农事活动提供科学依据,还融入了饮食、习俗、节庆等文化元素,形成了独特的时间美学。2016年,二十四节气被列入联合国教科文组织非物质文化遗产名录,成为全球共享的文化财富。为了让这一传统智慧融入现代生活,可以利用科技工具如CodeBuddy制作“二十四节气速查表”,通过日历视图、天气API等功能,实时查询节气信息、气候特点及相关习俗,使节气文化以数字化形式传承。这种结合传统与现代的方式,不仅让节气更贴近生活,也增强了人们对自然的感

1207

OpenHarmony 显示Display驱动全栈解析:DisplayLayer + Gralloc + Gfx 三位一体,打造高性能图形底座

OpenHarmony Display显示驱动模块是系统图形渲染和显示功能的基础组件,负责管理显示设备、图层渲染、内存分配等核心功能。该模块采用HDI(Hardware Driver Interface)设计架构,为上层图形服务提供统一的显示能力接口,实现了显示设备的初始化、图层管理、内存分配与映射、硬件加速等关键功能。DisplayLayer:负责显示图层的管理, 包括图层创建、显示属性设置、图层填充及刷新等操作;

m0_67505153的博客 315

晶体管-二极管三极管MOS管选型参数总结

二极管三极管和MOS管,是电路中常用的控制电流电压的基本电子元器件。电路世界中晶体管的选型,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对二极管三极管和MOS管的选型参数进行详细介绍并总结。

fydar的博客 884

中图杯获奖作品计算机组,“中图杯”第十四届环境地图大赛召开 地图慧成指定制图软件...

2017年“中图杯”第十四届中国青少年环境地图大赛开赛,你准备好了么?为了让青少年了解地图,学习地图,爱护环境,保护地球,这样的地图大赛是非常有意义的,每一届的比赛都受到非常多的中小学的支持与重视,也得到了广大青少年学生积极的参与,主办方也从中评选出了很多非常优秀的地图作品。在今年的大赛中分有计算机制图组别,要求参赛者使用制图软件进行地图制作,地图慧依旧是大赛指定的官方制图软件之一,同时与百度地图...

weixin_35215225的博客 1389

8、对比 LightGBM、XGBoost 和深度学习

本文对比了LightGBM、XGBoost和深度学习模型(特别是TabTransformer)在处理表格数据时的性能差异。从模型复杂度、数据准备、训练时间、准确性和适用场景等方面进行分析,重点探讨了三者在人口普查收入预测任务中的表现。文章详细介绍了XGBoost与LightGBM的核心特性与区别,深入讲解了TabTransformer的架构与实现,并涵盖了分类特征编码、缺失值处理和类别不平衡等关键数据预处理技术,为选择合适的表格数据建模方法提供了实践指导。

julia4scientist的博客 120

从《视觉SLAM十四讲》出发,一文读懂拓扑地图与语义地图的现在与未来

本文深入探讨了《视觉SLAM十四讲》中的拓扑地图与语义地图技术,解析了它们在机器人学和空间认知中的革命性应用。从数学图论到深度学习,文章详细介绍了这两种地图表示方法的技术原理、前沿进展及在服务机器人、AR/VR等场景中的产业化前景,为开发者提供了实用的入门指南和未来展望。

weixin_33509203的博客 330

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

gma视角的历史地图集2:北宋宣和二十四路

北宋宣和六年(1124年)的行政区划延续了北宋末年的“路—府/州/军/监—县”三级体系。此时,北宋在收复部分燕云地区后,行政区划达到极盛,共设24路,下辖38府、254州、63军、4监,以及众多县、镇、寨等。

weixin_42155937的博客 2133

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

「 SLAM lesson-2.2 」建图、度量地图、拓扑地图

结合高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。 1.建图 地图是对环境的描述,但这个描述并不是固定的,需要视SLAM的应用而定。地图大体上可以分为:2D栅格地图、拓扑地图、3D点云地图和网格地图。对于家用的扫地机器人,这种主要在低矮平面里运动的机器人,只需要一个二维的地图,标记哪里能通过,哪里存在障碍物,就够它在一定范围内......

Robot_Starscream的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenLayers教程十四:多源数据加载之离线瓦片地图

本文转载自:http://weilin.me/ol3-primer/ch05/05-04.html 其实离线瓦片地图和在线瓦片地图是一样的原理,都是瓦片。只是离线瓦片地图存储在本地,而且它的存取方式,可以由开发者自己来定义,而在线瓦片地图则不一定。在不理解原理的情况下,很多人拥有了离线瓦片,却不知道如何加载,所以这里单独来讲解。 示例的瓦片就只有一张。如果放大或者缩小,...

不睡觉的怪叔叔的博客 2321

CSS 与 地图可视化 变色注记 (十四)

css

haibalai2009的博客 133

Android 天气APP(二十四)地图天气(上)自动定位和地图点击定位

上一篇:Android 天气APP(二十三)增加灾害预警、优化主页面UI 前言 之前也看过和风天气自己做的APP,主页面的地图点击之后,定位到某一个点,然后查看这个地方的天气,实际思路还是通过区县来查询天气的,只不过,加上了地图就比较的直观,看起来也会觉得很上档次,所以我也决定做一个这样的功能。 这篇文章实现的效果图如下: 正文 说到地图就想到了百度地图,当然你要是想用高德地图也是可以的,对接就可以了,我这里就不介绍了,还记得在第一篇文章的时候,就注册了百度地图开放平台的账号,并且申请了应用的key用于定

晨曦 1万+

【slam十四讲第二版】【课本例题代码向】【第十二讲~建图】【实践:单目稠密重建】【RGBD-稠密建图】【从点云重建网格】【octomap的安装】【实践:八叉树地图】

视觉SLAM十四讲 第二版》笔记及课后习题(第十二讲)本工程采用的数据集是使用REMODE的测试数据集。它提供了一架无人集采集的单目俯视图像,共有200张,同时提供了每张图像的真实位姿数据集自取:链接:提取码: rpow。.......................................

qq_45954434的博客 1765
上一篇: 十三、自定义组件
下一篇: 拨打电话
大侠肖
博客等级 码龄19年 419粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值