JavaScript嵌入百度地图API的最详细方法

作者:痴月熊 时间:2023-04-12 14:33:03 

先看效果图

JavaScript嵌入百度地图API的最详细方法

一、申请成为百度开发者,获得使用地图API接口的权限,获取(AK)码。

1.打开百度地图开放平台

打开网址:http://lbsyun.baidu.com/ 找到首页导航栏的 开发文档

JavaScript嵌入百度地图API的最详细方法

2.然后找到 开发文档 下面的 Web开发 中的 JavaScript API 并打开

JavaScript嵌入百度地图API的最详细方法

打开之后找到 开发指南 并打开,然后找到账号和获取密钥并打开

JavaScript嵌入百度地图API的最详细方法

3.然后进行申请账号申请成为百度开发者 的操作 这过程中需要邮箱进行验证

JavaScript嵌入百度地图API的最详细方法

创建账号完成之后 打开 获取服务密钥(AK)
应用类型选择 浏览器端

JavaScript嵌入百度地图API的最详细方法

4.应用名称根据自己的需要 启用服务 全选 白名单 设置 * 这样全域都可以访问到 安全等级低 仅用于上线版本之前 然后提交

JavaScript嵌入百度地图API的最详细方法

5.提交完成之后 这些设置信息可以在 应用管理 我的应用 中查看

JavaScript嵌入百度地图API的最详细方法

准备工作已经完成 在使用中只需要将(AK)码 (即密钥)写入代码中即可

(AK):7uXqh0qF1FNg7qgwriDofp2Ft3hxGcFb

二、实现首图效果(可以参考开发者指南)

1. 根据Hello World 手册操作

JavaScript嵌入百度地图API的最详细方法

2. 将代码块写入Demo中

将生成的ak的值复制进来

JavaScript嵌入百度地图API的最详细方法

将地图的块元素放到要显示的区域

JavaScript嵌入百度地图API的最详细方法

将js部分写入

JavaScript嵌入百度地图API的最详细方法


<!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>Hello, World</title>
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥">
</script>
</head>

<body>
<div id="container"></div>
<script type="text/javascript">
var map = new BMapGL.Map("container");
// 创建地图实例
var point = new BMapGL.Point(116.404, 39.915);
// 创建点坐标
map.centerAndZoom(point, 15);
// 初始化地图,设置中心点坐标和地图级别
</script>
</body>
</html>

完成之后 打开页面

JavaScript嵌入百度地图API的最详细方法

3. 开启鼠标滚轮缩放

地图的鼠标滚轮缩放默认是关闭的,需要配置开启。


map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放

4. 添加标注 并且通过标注获取当前位置经纬度

JavaScript嵌入百度地图API的最详细方法

创建标注


var marker = new BMap.Marker(point);        // 创建标注    
map.addOverlay(marker);                     // 将标注添加到地图中

定义标注图标


function addMarker(point, index){  // 创建图标对象  
   var myIcon = new BMap.Icon("markers.jpg", new BMap.Size(23, 25), {    
       // 指定定位位置。  
       // 当标注显示在地图上时,其所指向的地理位置距离图标左上    
       // 角各偏移10像素和25像素。您可以看到在本例中该位置即是  
       // 图标中央下端的尖角位置。    
       anchor: new BMap.Size(10, 25),    
       // 设置图片偏移。  
       // 当您需要从一幅较大的图片中截取某部分作为标注图标时,您  
       // 需要指定大图的偏移位置,此做法与css sprites技术类似。    
       imageOffset: new BMap.Size(0, 0 - index * 25)   // 设置图片偏移    
   });      
   // 创建标注对象并添加到地图  
   var marker = new BMap.Marker(point, {icon: myIcon});    
   map.addOverlay(marker);    
}

点击标注获取当前经纬度


marker.addEventListener("click", function(){    
   alert("当前位置:" + e.point.lng + ", " + e.point.lat);    
});

JavaScript嵌入百度地图API的最详细方法

通过缩放地图 标记自己所在的位置 获取经纬度 写入代码中

JavaScript嵌入百度地图API的最详细方法

JavaScript嵌入百度地图API的最详细方法

现在已经定位到当前位置

JavaScript嵌入百度地图API的最详细方法

此时基本的引入地图已经完成

5. 启用信息窗口

JavaScript嵌入百度地图API的最详细方法

信息窗口是地图上方浮动显示的HTML内容,可直接在地图上的任意位置打开,也可以在标注对象上打开(此时信息窗口的坐标与标注的坐标一致)。

注意:同一时刻地图上只能有一个信息窗口处于打开状态。


var opts = {    
   width : 250,     // 信息窗口宽度    
   height: 100,     // 信息窗口高度    
   title : "Hello"  // 信息窗口标题  
}    
var infoWindow = new BMap.InfoWindow("World", opts);  // 创建信息窗口对象    
map.openInfoWindow(infoWindow, map.getCenter());      // 打开信息窗口

此时页面效果

JavaScript嵌入百度地图API的最详细方法

6. 自定义信息窗口


var opts = {
       width: 280,     // 信息窗口宽度    
       height:120,     // 信息窗口高度    
       title: ""  // 信息窗口标题  
   }
   var content  =
   "<h6>信息大厦</h6>" +
   "<img style='float:right;margin:4px' id='imgDemo' src='./1.jpg' white='100px' height='80px' title='信息大厦' />" +
   "<p style='font-size:12px' >郑州信息大厦位于郑州市花园路143号。 郑州信息大楼由楷林公司投资承建。大楼总建筑面积101,235平方米,楼高80米,地上28层,地下2层。</p>"

var infoWindow = new BMap.InfoWindow(content, opts);  // 创建信息窗口对象    
   map.openInfoWindow(infoWindow, map.getCenter());      // 打开信息窗口

页面效果已经完成

JavaScript嵌入百度地图API的最详细方法

三、去除地图左下角logo标志级文字

去除之前的

去掉文字,只需要在添加css即可


.BMap_cpyCtrl {
   display:none;
}

去掉地图logo,只需添加css


.anchorBL{
   display:none;
}

四、更多功能

查看百度地图开发者手册,

来源:https://blog.csdn.net/qq_52071830/article/details/115621679

标签:js,百度地图,API
0
投稿

猜你喜欢

  • Java中计算时间差的方法

    2023-11-15 10:35:44
  • java实现数组中的逆序对

    2021-12-07 16:36:24
  • 浅谈单例模式和线程安全问题

    2023-11-25 06:27:34
  • Android快速实现发送邮件实例

    2022-06-10 03:39:48
  • C++实现经典24点纸牌益智游戏

    2023-04-22 01:05:02
  • java 获取当前路径下的所有xml文档的方法

    2021-08-08 13:54:29
  • 详解Struts2中json 相互引用死循环解决办法

    2022-09-08 04:04:46
  • java基础之数组常用操作总结(必看篇)

    2022-12-09 03:32:17
  • Android代码实现新年贺卡动画示例详解

    2022-09-11 00:28:49
  • 基于Spring Boot使用JpaRepository删除数据时的注意事项

    2023-04-03 09:05:39
  • javaweb前端向后端传值的几种方式总结(附代码)

    2022-04-28 09:21:29
  • Idea springboot如何实现批量启动微服务

    2022-09-08 09:04:07
  • 深入解析C#编程中struct所定义的结构

    2022-03-01 12:43:08
  • IntelliJ IDEA 2017.1.4 x64配置步骤(介绍)

    2022-02-25 13:48:48
  • 浅析C# 装箱和拆箱

    2022-02-06 17:43:27
  • springboot 实战:异常与重定向问题

    2022-03-06 15:44:54
  • Spring4整合Hibernate5详细步骤

    2022-03-15 16:53:07
  • Java中自动生成构造方法详解

    2023-06-21 14:17:44
  • C#基于Sockets类实现TCP通讯

    2023-03-22 05:08:30
  • Java之线程编程的4种方法实现案例讲解

    2021-11-18 18:40:46
  • asp之家 软件编程 m.aspxhome.com