技术好文共享:百度地图卫星二维

简介: 技术好文共享:百度地图卫星二维

百度地图API推出卫星图接口也有一个月啦~


本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具。


一、百度地图API卫星图


调用百度卫星图有两种方式,一是地图类型控件,一是地图底图设置。下面分别介绍这两种方//代码效果参考:http://www.lyjsj.net.cn/wx/art_24021.html

法:

1、利用控件


使用控件有一大优势,就是地图类型控件上,有百度全部的地图类型,比如二维、三维、卫星等。


而且,只需要一句话,就能简单加上这个控件。


map.addControl(new BMap.MapTypeControl()); //添加地图类型控件


看到下图中,右上角那个控件了麽?这个就是地图类型控件啦~


添加她只需一句话,很简单吧。


全部源代码:


按 Ctrl+C 复制代码


按 Ctrl+C 复制代码


更多关于地图类型控件的知识:(初学者可不看,上面的代码已经足够用啦~)


MapTypeControl是负责切换地图类型的控件,此类继承Control所有功能。


MapTypeControlOptions表示MapTypeControl构造函数的可选参数。它没有构造函数,但可通过对象字面量形式表示(自 1.2 新增)。


MapTypeControlType常量表示MapTypeControl的外观样式(自 1.2 新增)。


下面来看看第二种方法。如果你只需要卫星图,不需要别的地图类型,你就需要下面这种方法了。同样相当简单,也是一句话就搞定的事情~


2、修改地图底图默认设置


var map = new BMap.Map("container",{mapType: BMAP_HYBRID_MAP}); //设置卫星图为底图


二、卫星图对比工具


先来看图。下图中,左边是百度的卫星图,右边是谷歌的卫星图。


大家可以看到,无论是颜色,还是街道数据,都有明显的不同。


当然,如果你学会这些代码,你还可以将其他家API的卫星图拿来对比呀~~


对比工具主要是有以下功能:


1、同时展示百度和谷歌的卫星图


// 百度卫星图底图


var bdMap = new BMap.Map("mapBaidu",{mapType: BMAP_HYBRID_MAP});


//谷歌卫星图底图


var ggMap = new google.maps.Map(document.getElementById("mapGoogle"),{mapTypeId: google.maps.MapTypeId.SATELLITE});


2、拖动谷歌地图,百度地图跟着动(联动效果)


给谷歌地图添加拖拽事件,同理,也可以给百度地图添加。


在这里取了近似值,没有使用坐标转换工具。如果使用的话,应该会更加准确的。(搜索线性转换,或者直接看源代码)


google.maps.event.addListener(ggMap, 'dragend', function() {


blng = ggMap.center.lng() + 0.0065;


blat = ggMap.center.lat() + 0.0060;


bdMap.panTo(new BMap.Point(blng,blat));


});


3、放大缩小谷歌地图,百度地图也跟着放大和缩小


原理同上。谷歌的地图级别比百度小,所以要找一个地图级别的对应关系。大概是


google.maps.event.addListener(ggMap, 'zoom_changed', function() {


bdMap.setZoom(ggMap.zoom+1);


});


全部源代码:


Google Map VS Baidu Map


function initialize() {


var blng;


var blat;


var myOptions = {


zoom: 14,


center: new google.maps.LatLng(39.90564219683827,116.39948),


panControl: false,


zoomControl: false,


scaleControl: false,


mapTypeId: google.maps.MapTypeId.SATELLITE


}


var ggMap = new google.maps.Map(document.getElementById("mapGoogle"),myOptions);


google.maps.event.addListener(ggMap, 'dragend', function() {


blng = ggMap.center.lng() + 0.0065;


blat = ggMap.center.lat() + 0.0060;


bdMap.panTo(new BMap.Point(blng,blat));


});


google.maps.event.addListener(ggMap, 'zoom_changed', //代码效果参考:http://www.lyjsj.net.cn/wz/art_24019.html

function() {

bdMap.setZoom(ggMap.zoom+1);


});


}


var bdMap = new BMap.Map("mapBaidu",{mapType: BMAP_HYBRID_MAP}); // 创建Map实例


       var point = new BMap.Point(116.4035,39.915);map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的,因为要使用三维图


bdMap.centerAndZoom(point,15); // 初始化地图,设置中心点坐标和地图级别。


bdMap.addControl(new BMap.MapTypeControl()); //添加卫星图控件


bdMap.enableScrollWheelZoom();

相关文章
|
机器学习/深度学习 数据采集 算法
残差分析| 学习笔记
快速学习残差分析。
残差分析| 学习笔记
|
数据挖掘 BI
数字化产科管理平台解决方案
数字化产科管理平台旨在解决产科应用痛点,通过建设孕产保健信息系统,实现保健、临床及上级管理系统间的互联互通,打造一体化服务模式。平台涵盖门诊、住院、统计三大模块,实现从建档到产后管理的全生命周期管理,提升高危管理效率,减少人工文书工作,优化资源配置,并提供精准的统计分析功能,助力科研与业务发展。
371 0
数字化产科管理平台解决方案
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
777 6
|
程序员
程序员必知:常见阿拉伯数学符号以及拼写
程序员必知:常见阿拉伯数学符号以及拼写
1132 0
|
JavaScript Android开发 开发者
Mac搭建安卓模拟器(支持M1/M2/M3/M4)
Mac搭建安卓模拟器(支持M1/M2)
12894 50
|
前端开发 JavaScript Java
基于SSM的仓库管理系统
该系统采用SSM整合开发,数据层为MyBatis,mysql数据库,具有完整的业务逻辑。功能包含:仓库管理、分配管理员、供应商维护、客户维护、货物的出入库操作、日志管理、各种信息的批量导入导出操作等。
基于SSM的仓库管理系统
|
Cloud Native Go TensorFlow
如何评估开源项目的活跃度和可持续性?
如何评估开源项目的活跃度和可持续性?
415 0
|
存储 机器学习/深度学习 弹性计算
阿里云gpu云服务器多少钱,gpu云服务器最新收费标准及价格参考
阿里云gpu云服务器多少钱?2023年购买阿里云gpu云服务器最低仅需1500.00元/月起,购买轻量型GPU云服务器最低628.56元/月起。阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。
阿里云gpu云服务器多少钱,gpu云服务器最新收费标准及价格参考
|
小程序 JavaScript
小程序一个页面调用多个号码的手机拨号功能
小程序一个页面调用多个号码的手机拨号功能
405 0
|
算法 数据可视化 前端开发
第三代软件开发-PDF阅读器
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资

热门文章

最新文章