百度地图JavaScript API开发GIS服务

百度地图JavaScript API是由JavaScript语言编写的应用程序接口,支持HTTP和HTTPS,免费对外开放。在使用前,需先申请密钥(ak)才可使用。主要分为两种类型的版本:
①JavaScript API GL(使用了WebGL对地图、覆盖物等进行渲染,支持3D视角展示地图);
②JavaScript API(最新的为v3.0,主要支持2D平面地图,接口使用无次数限制)。

一、申请密钥

在这里插入图片描述

  • 进入控制台左侧的【应用管理】→【我的应用】,点击创建应用,填写表单中的应用名称、应用类型、IP白名单即可。这里创建两个应用,应用类型分别为“服务端”和“浏览器端”,Reference白名单填写“*”;IP白名单填写“0.0.0.0/0”。页面上对此有明确说明。
    在这里插入图片描述
    (ps:创建应用之前,需要完善个人信息,通过百度地图开发者认证)
    在这里插入图片描述
    在配置Referer白名单时,只需要将Referer中的域名部分填写就进去就可以了。如部署在本地的项目,Referer则为localhost;运行在服务器中的项目,则需要填写对应服务器的IP或者域名。——如何配置百度地图应用访问白名单百度地图AK鉴权说明与白名单设置方法

( 创建完成后,即可得到对应的AK,这里需要注意:因新系统升级,自公告之日起,“服务端AK”不再支持浏览器端使用;在浏览器端使用,请选择“浏览器端AK”,例如JavaScript API只支持浏览器类型AK。)
在这里插入图片描述


二、使用BaiduMap JavaScript API

我们可以在官网主页的导航栏选择【开发文档】→【JavaScript API】,自行进行学习,进行HTMl网页地图的设计与配置。

2.1 网页框架

实现一个最简单的显示出百度地图的网页代码(这里使用的是Map2.0版本的API):

<!DOCTYPE html>
<html>
	<head>
		<!-- <meta charset="utf-8"> -->
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
		<title>BaiduMap_Hello</title>
		<style type="text/css">  
		    html{height:100%}    
		    body{height:100%;margin:0px;padding:0px}    
		    #container{height:100%}    
		</style>
		 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥(浏览器端)">
		 </script>
	</head>
	<body>
		<div id="container"></div>
		<script type="text/javascript">
			var map = new BMap.Map("container");
			var point = new BMap.Point(116.404, 39.915);
			map.centerAndZoom(point,30);
		</script>
	</body>
</html>

运行上面代码结果图:
在这里插入图片描述

这里需要注意,如果直接安装官网示例来写,可能会出现运行结果为空白的情况,是由于引用百度地图API文件版本类型引用方式的问题。解决:

 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥">
//v2.0版本的引用方式:src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"
//v1.4版本及以前版本的引用方式:src="http://api.map.baidu.com/api?v=1.4&key=您的密钥&callback=initialize"
 </script>

2.2 添加控件

官网学习:https://lbsyun.baidu.com/index.php?title=jspopularGL/guide/widget
在这里插入图片描述

map.addControl(new BMap.MapTypeControl());// 添加地图类型切换控件 
map.addControl(new BMap.ScaleControl());// 添加比例尺控件
map.addControl(new BMap.CityListControl());	//添加城市选择列表控件
map.addControl(new BMap.ZoomControl());// 添加缩放控件

2.2 实现3D显示

需要使用WebGL版本的地图API,其引用方式如下:

<script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=你的密钥"></script>

GL版命名空间为BMapGL,示例:const map = new BMapGL.Map(‘container’);

// GL版命名空间为BMapGL
// 按住鼠标右键,修改倾斜角和角度
var map = new BMapGL.Map("container");// 创建Map实例
map.centerAndZoom(new BMapGL.Point(112.92, 27.91), 19); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true);//开启鼠标滚轮缩放
map.setHeading(64.5);
map.setTilt(73);

在这里插入图片描述

2.3 个性化地图

https://lbsyun.baidu.com/index.php?title=jspopularGL/guide/custom
个性化地图,顾名思义用户可对地图进行个性化配置。通过该服务,允许用户将传统默认的地图样式按需配置,自由控制地图元素显隐及对应的元素样式。
用户可以通过个性化地图样式编辑器,按需编辑地图的底图样式,再按相应应用端的功能要求,将样式应用在JavaScript API和地图SDK中。


在这里插入图片描述
在这里插入图片描述

map.setMapStyleV2({     
  styleId: '73bcfca1ca6693eec2bb63e2d666af4d'
});

2.3使用开源库

https://lbs.baidu.com/index.php?title=jspopular3.0/openlibrary

👇
“百度地图JavaScript开源库,是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库,帮助开发者快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、区域限制设置、几何运算、实时交通、检索与公交驾车查询、鼠标绘制工具等功能。”

鼠标绘制工具条库 的 类参考http://api.map.baidu.com/library/DrawingManager/1.4/docs/symbols/BMapLib.DrawingManager.html
https://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/mouse2draw

<!--加载鼠标绘制工具-->
<script type="text/javascript" src="https://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
<link rel="stylesheet" href="https://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
<!--加载检索信息窗口-->
<script type="text/javascript" src="//api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.js"></script>
<link rel="stylesheet" href="//api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.css" />
    var overlays = [];
	var overlaycomplete = function(e){
        overlays.push(e.overlay);
    };
    var styleOptions = {
        strokeColor:"red",    //边线颜色。
        fillColor:"red",      //填充颜色。当参数为空时,圆形将没有填充效果。
        strokeWeight: 3,       //边线的宽度,以像素为单位。
        strokeOpacity: 0.8,	   //边线透明度,取值范围0 - 1。
        fillOpacity: 0.6,      //填充的透明度,取值范围0 - 1。
        strokeStyle: 'solid' //边线的样式,solid或dashed。
    }
    //实例化鼠标绘制工具
    var drawingManager = new BMapLib.DrawingManager(map, {
        isOpen: false, //是否开启绘制模式
        enableDrawingTool: true, //是否显示工具栏
        drawingToolOptions: {
            anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
            offset: new BMap.Size(5, 5), //偏离值
        },
        circleOptions: styleOptions, //圆的样式
        polylineOptions: styleOptions, //线的样式
        polygonOptions: styleOptions, //多边形的样式
        rectangleOptions: styleOptions //矩形的样式
    });  
	 //添加鼠标绘制工具监听事件,用于获取绘制结果
    drawingManager.addEventListener('overlaycomplete', overlaycomplete);
    function clearAll() {
		for(var i = 0; i < overlays.length; i++){
            map.removeOverlay(overlays[i]);
        }
        overlays.length = 0   
    }

官网demo:https://lbsyun.baidu.com/jsdemo/demo/f0_7.htm

三、使用百度地图Web服务API

上面用到的JavaScript API都是在用户的浏览器端进行的,不涉及与百度服务器的通信。

两种使用方式:

1. 通过百度提供的API直接调用

百度地图开发平台提供了部分常用的地图服务的直接调用接口,比如搜索附近兴趣点、路线规划等。 具体包括:

  • LocalSearch
  • TransitRoute
  • DrivingRoute
  • WalkingRoute
  • Geocoder
  • LocalCity
  • TrafficControl

LocalSearch 检索POI示例 https://lbs.baidu.com/index.php?title=jspopular3.0/guide/search

var map = new BMap.Map("container");      
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);      
var local = new BMap.LocalSearch(map, {      
    renderOptions:{map: map}      
});      
local.search("天安门");

在这里插入图片描述

2. 提供使用HTTP接口调用服务

https://lbsyun.baidu.com/index.php?title=webapi
在这里插入图片描述
👆
“百度地图Web服务API为开发者提供http/https接口,即开发者通过http/https形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。” 这些API一般都用在服务器端的开发上,使用这些API就需要用到我们之前申请的服务器端的应用类型的AK密钥
开发者可以通过地址传递参数的方式,向百度服务器发起请求,得到返回的指定的信息。

行政区划区域检索 示例:

https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&output=json&ak=您的ak //GET请求

在这里插入图片描述


other:

地理信息可视化开源库:http://mapv.baidu.com/gallery.html
在这里插入图片描述

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>百度地图JavaScript API是一种基于JavaScript语言的地图开发接口,可以帮助开发者在自己的网站或应用中嵌入百度地图,并实现各种地图功能,如地图展示、地图搜索、地图标注、地图路线规划等。百度地图JavaScript API提供了丰富的API接口和开发文档,方便开发者进行开发和调试。 <h3>回答2:</h3><br/>百度地图是一个基于Web的地图服务,提供包括卫星影像、交通状况、街景等丰富的地图信息。百度地图javascript API是一种基于javascript语言的地图开发接口,可用于在网页上实现地图的显示、交互和功能扩展。 使用百度地图javascript API可以轻松地在网页上嵌入地图,实现地图的显示和基本的交互功能,如平移、缩放、拖动等。此外,API还支持添加自定义标记、信息窗口、折线、面等功能,使用户可以根据自己的需求对地图进行扩展。 百度地图javascript API具有较低的学习曲线,简单易懂,适合初学者快速上手。同时,API还提供了大量的示例代码和文档,帮助用户更好地理解和使用其功能。 除此之外,百度地图javascript API还支持地理编码、路线规划、公交查询等服务,使用户可以在自己的网页中添加这些功能,提高网站的实用性和交互性。 总之,百度地图javascript API是一款功能强大、易用性高的地图开发工具,可满足各种网站对地图显示和交互的需求,是Web开发人员必备的工具之一。 <h3>回答3:</h3><br/>百度地图API 是一个为开发者提供的基于JavaScript的开放式编程接口。它允许开发者在自己的Web页面上,集成百度地图的功能和数据。 百度地图API 主要分为两个部分: - 前端Javascript API:以JavaScript编写的前端API,提供了各种地图展示和交互的功能,包括地图显示、缩放、拖拽、标记、覆盖物、路线规划等。 - 后端Web服务API:提供了各种地图数据,包括地理编码、IP定位、地点查询、路线规划、短途驾车、公交、移动端云检索、位置数据上传等功能。 使用百度地图API,可以将地图、标记、路线规划、位置查询等集成到自己的网站上,实现更加丰富的地图功能和交互体验。同时,API能够提供更加准确和详细的地理数据,帮助开发者更好的理解地理位置和地域特征,为用户提供更精准的地图服务。 与其他地图API相比,百度地图API具有简单、易使用、灵活、稳定等特点。而且,在中国许多城市的地图覆盖率上,百度地图API也是当之无愧的领先地位。百度地图API使用广泛,已被众多品牌、政府机构、开发者社区、企业与互联网相关公司所使用,成为开发在线地图应用的一个重要的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值