热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

百度地图API推出卫星图接口也有一个月啦~本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具。一、百度地图API卫星图调用百度卫星图有两种

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

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

 

一、百度地图API卫星图

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

 

1、利用控件

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

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

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

 

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

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

 

全部源代码:

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

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

 

 

 

更多关于地图类型控件的知识&#xff1a;&#xff08;初学者可不看&#xff0c;上面的代码已经足够用啦~&#xff09;


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


MapTypeControlOptions表示MapTypeControl构造函数的可选参数。它没有构造函数&#xff0c;但可通过对象字面量形式表示&#xff08;自 1.2 新增&#xff09;。

 

MapTypeControlType常量表示MapTypeControl的外观样式&#xff08;自 1.2 新增&#xff09;。

 

 

 


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

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

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



 

 

二、卫星图对比工具

先来看图。下图中&#xff0c;左边是百度的卫星图&#xff0c;右边是谷歌的卫星图。

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

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

 

对比工具主要是有以下功能&#xff1a;

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

// 百度卫星图底图
var bdMap &#61; new BMap.Map("mapBaidu",{mapType: BMAP_HYBRID_MAP});


//谷歌卫星图底图
var ggMap &#61; new google.maps.Map(document.getElementById("mapGoogle"),{mapTypeId: google.maps.MapTypeId.SATELLITE});



2、拖动谷歌地图&#xff0c;百度地图跟着动&#xff08;联动效果&#xff09;

给谷歌地图添加拖拽事件&#xff0c;同理&#xff0c;也可以给百度地图添加。

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

google.maps.event.addListener(ggMap, &#39;dragend&#39;, function() {
blng &#61; ggMap.center.lng() &#43; 0.0065;
blat &#61; ggMap.center.lat() &#43; 0.0060;
bdMap.panTo(new BMap.Point(blng,blat));
});



3、放大缩小谷歌地图&#xff0c;百度地图也跟着放大和缩小

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

google.maps.event.addListener(ggMap, &#39;zoom_changed&#39;, function() {
bdMap.setZoom(ggMap.zoom&#43;1);
});

 

 

 

全部源代码&#xff1a;

DOCTYPE html>
<html>
<head>
<meta name&#61;"viewport" content&#61;"initial-scale&#61;1.0, user-scalable&#61;no" />
<meta http-equiv&#61;"content-type" content&#61;"text/html; charset&#61;UTF-8"/>
<title>Google Map VS Baidu Maptitle>
<link href&#61;"http://code.google.com/apis/maps/documentation/Javascript/examples/default.css" rel&#61;"stylesheet" type&#61;"text/css" />
<script type&#61;"text/Javascript" src&#61;"http://maps.googleapis.com/maps/api/js?sensor&#61;false">script>
<script type&#61;"text/Javascript" src&#61;"http://api.map.baidu.com/api?v&#61;1.2">script>
<script type&#61;"text/Javascript">
function initialize() {
var blng;
var blat;
var myOptions &#61; {
zoom:
14,
center:
new google.maps.LatLng(39.90564219683827,116.39948),
panControl:
false,
zoomControl:
false,
scaleControl:
false,
mapTypeId: google.maps.MapTypeId.SATELLITE
}
var ggMap &#61; new google.maps.Map(document.getElementById("mapGoogle"),myOptions);

google.maps.event.addListener(ggMap,
&#39;dragend&#39;, function() {
blng
&#61; ggMap.center.lng() &#43; 0.0065;
blat
&#61; ggMap.center.lat() &#43; 0.0060;
bdMap.panTo(
new BMap.Point(blng,blat));
});
google.maps.event.addListener(ggMap,
&#39;zoom_changed&#39;, function() {
bdMap.setZoom(ggMap.zoom
&#43;1);
});
}
script>
head>
<body onload&#61;"initialize()" style&#61;"width:100%;height:100%;">
<div id&#61;"mapBaidu" style&#61;"width:50%;height:100%;float:left;">
<script type&#61;"text/Javascript">
var bdMap &#61; new BMap.Map("mapBaidu",{mapType: BMAP_HYBRID_MAP}); // 创建Map实例
       var point &#61; new BMap.Point(116.4035,39.915);map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的,因为要使用三维图

bdMap.centerAndZoom(point,
15); // 初始化地图,设置中心点坐标和地图级别。
bdMap.addControl(new BMap.MapTypeControl()); //添加卫星图控件
bdMap.enableScrollWheelZoom();
script>
div>
<div id&#61;"mapGoogle" style&#61;"width:50%;height:100%;float:left;">div>
body>
<script type&#61;"text/Javascript">



script>
html>




转载于:https://www.cnblogs.com/milkmap/archive/2011/12/01/2270970.html


推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
author-avatar
阳光无限好1981
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有