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

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

百度地图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();

相关文章
|
Java 定位技术 API
标准坐标系与火星坐标系(高德)百度坐标系之间互转
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。
3848 0
|
6月前
|
安全 定位技术 数据安全/隐私保护
GIS开发:国内互联网地图的坐标系
导航电子地图公开前需按《导航电子地图安全处理技术基本要求》进行空间位置技术处理,由官方指定机构统一实施。国内地图如高德、腾讯及谷歌中国采用GCJ02坐标系,百度则使用二次加密的BD09坐标系。这些坐标系基于WGS84(全球通用坐标系)进行了加密偏移以确保安全。设备获取的WGS84坐标需转换至相应坐标系以正确显示。开源工具如`coordtransform`可用于坐标转换,而天地图提供的在线切片未做偏移,可直接匹配WGS84坐标。
151 0
|
8月前
|
算法 Java 定位技术
心得经验总结:标准坐标系与火星坐标系(高德)百度坐标系之间互转
心得经验总结:标准坐标系与火星坐标系(高德)百度坐标系之间互转
96 1
技术好文共享:辅助角公式的几何意义
技术好文共享:辅助角公式的几何意义
|
数据可视化 JavaScript 定位技术
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
623 0
|
定位技术
无须任何数据,六十秒快速制作三维影像图用以作为城市空间格局分析的底图
无须任何数据,六十秒快速制作三维影像图用以作为城市空间格局分析的底图
138 0
Threejs实现宇宙中地球动态展示和卫星绕地运动
Threejs实现宇宙中地球动态展示和卫星绕地运动
1093 0
Google Earth Engine——地球科学激光测高系统(GLAS)的空间激光雷达数据(2005年)和辅助地理空间数据融合的全球树木高度数据集
Google Earth Engine——地球科学激光测高系统(GLAS)的空间激光雷达数据(2005年)和辅助地理空间数据融合的全球树木高度数据集
242 0
Google Earth Engine——地球科学激光测高系统(GLAS)的空间激光雷达数据(2005年)和辅助地理空间数据融合的全球树木高度数据集
|
编解码 定位技术
Google Earth Engine——300米的空间分辨率提供了2010年地面和地下生物质碳密度的时间一致性和统一的全球地图,地面生物量地图整合了针对土地覆盖的木质、草原、耕地和苔原生物量的遥感
Google Earth Engine——300米的空间分辨率提供了2010年地面和地下生物质碳密度的时间一致性和统一的全球地图,地面生物量地图整合了针对土地覆盖的木质、草原、耕地和苔原生物量的遥感
271 0
Google Earth Engine——300米的空间分辨率提供了2010年地面和地下生物质碳密度的时间一致性和统一的全球地图,地面生物量地图整合了针对土地覆盖的木质、草原、耕地和苔原生物量的遥感
|
算法 前端开发 Java
地图建筑群的光影效果原理和应用实践
高德开放平台在2020年初推出了AMap JSAPI 2.0版本,现在版本已经稳定下来。在JSAPI 2.0版本中我们采用了新的渲染管线,在每个渲染流程中都针对性的进行了性能优化。
434 0
地图建筑群的光影效果原理和应用实践