【百度地图API】百度API卫星图使用方法和卫星图对比工具

简介: 原文:【百度地图API】百度API卫星图使用方法和卫星图对比工具百度地图API推出卫星图接口也有一个月啦~   本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具。   一、百度地图API卫星图 调用百度卫星图有两种方式,一是地图类型控件,一是地图底图设置。
原文: 【百度地图API】百度API卫星图使用方法和卫星图对比工具

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

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

 

一、百度地图API卫星图

调用百度卫星图有两种方式,一是地图类型控件,一是地图底图设置。下面分别介绍这两种方法:

 

1、利用控件

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

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

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

 

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

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

 

全部源代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>地图类型控件</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
<div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("container"); // 创建Map实例
var point = new BMap.Point(116.4035,39.915);map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的,因为要使用三维图
map.centerAndZoom(point,15); // 初始化地图,设置中心点坐标和地图级别。

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

 

 

 

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


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);
});

 

 

 

全部源代码:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Map VS Baidu Map</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
<script type="text/javascript">
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', function() {
bdMap.setZoom(ggMap.zoom
+1);
});
}
</script>
</head>
<body onload="initialize()" style="width:100%;height:100%;">
<div id="mapBaidu" style="width:50%;height:100%;float:left;">
<script type="text/javascript">
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();
</script>
</div>
<div id="mapGoogle" style="width:50%;height:100%;float:left;"></div>
</body>
<script type="text/javascript">



</script>
</html>



目录
相关文章
|
2月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
3月前
|
人工智能 安全 测试技术
Apifox对决Apipost:API管理工具的深度较量与未来前瞻
在快节奏的软件开发中,API管理工具的选择直接影响效率与协作。本文对比Apipost与Apifox,从界面设计、核心功能、AI能力、离线支持、团队协作、生态整合及性能表现等维度,深入解析两者差异,帮助团队找到更契合的开发利器。
|
4月前
|
运维 数据可视化 测试技术
从混乱到清晰:API开发追踪工具实用技巧与工具配置完整拆解
API开发追踪工具是提升团队协作效率、实现接口全流程管理的关键。它整合任务看板、文档同步、版本控制与多角色协作,助力前后端及第三方高效对接。本文详解其核心功能、选型建议与落地实践,助你打造透明、规范的API协作体系。
|
3月前
|
前端开发 测试技术 API
企业级API工具的选择:Apipost和Apifox哪个好
Apifox相比Apipost在企业级API协作方面表现更出色,其一体化平台设计有效提升团队协作效率,功能整合度高,支持标准化接口管理,更适合规模化团队和技术协作需求。
327 120
|
4月前
|
人工智能 NoSQL 测试技术
Apipost 与 Apifox:全栈工程师视角下的 API 工具抉择
本文对比了Apipost与Apifox两款API工具在AI能力、数据一致性管理、自动化测试、团队协作、协议支持、数据库支持及离线可用性等多个核心维度的表现。Apipost凭借AI智能化、数据自动同步、全面协议支持及离线功能等优势,在大型项目、高安全场景及多协议调试中表现更出色。而Apifox适合预算有限、小型团队及纯HTTP项目。
88 0
|
22天前
|
人工智能 API 开发工具
还在被复杂 API 调试工具折磨?这款开源神器救我出坑!
小华推荐开源API调试神器Yaak:离线优先、支持多协议、Git集成,告别Postman卡顿烦恼。界面清爽,一键导入,免费开源获8.5k星,10万+技术人已入坑!
137 7
|
21天前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
345 1
|
2月前
|
人工智能 搜索推荐 API
API文档工具谁能胜出:Apifox与Apipost深度对比
Apifox与Apipost功能对比显示,Apifox在自定义域名、页面布局、SEO优化、跨域代理、数据分析、版本管理及权限控制等方面优势明显,更适合对API文档有高要求的企业级用户;而Apipost则侧重基础文档分享,适合轻量级使用场景。两者均集成AI能力,但Apifox应用更深入。
API文档工具谁能胜出:Apifox与Apipost深度对比
|
3月前
|
供应链 安全 数据挖掘
1688电商API接口:赋能电商全链路运营的数字化工具
在数字经济时代,1688电商API接口为企业提供商品管理、订单处理、支付集成、物流跟踪等全场景解决方案,助力企业实现数据互通、流程自动化,提升运营效率与业务增长。
1688电商API接口:赋能电商全链路运营的数字化工具
|
3月前
|
测试技术 API 数据安全/隐私保护
企业API工具效率战:Apipost与Apifox的全面对比
在企业级API工具选型中,Apifox凭借出色的团队协作与研发流程整合能力脱颖而出。相较于专注API测试的Apipost,Apifox定位为“API一体化协作平台”,深度融合文档管理、接口调试、Mock服务与自动化测试,显著提升开发效率与协同质量。其系统性设计、标准化支持、友好交互及稳定服务,助力企业实现高效、规范、可持续的API研发管理。