当前位置: 首页 > news >正文

从零开始学习调用百度地图网页API:二、初始化地图,鼠标交互创建信息窗口

目录

  • 代码
  • 结构
    • head
    • body
    • script
  • 调试

代码

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html, #allmap {width: 100%;height: 100%;overflow: hidden;margin: 0;font-family: "微软雅黑";}ul li {list-style: none;}.btn-wrap {z-index: 999;position: fixed;bottom: 3rem;margin-left: 60rem;padding: 1rem 1rem;border-radius: .25rem;background-color: #fff;box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);}.btn {width: 75px;height: 30px;float: left;background-color: #fff;color: rgba(27, 142, 236, 1);font-size: 14px;border: 1px solid rgba(27, 142, 236, 1);border-radius: 5px;margin: 0 5px;text-align: center;line-height: 30px;}.btn:hover {background-color: rgba(27, 142, 236, 0.8);color: #fff;}</style><script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的ak"></script><title>显示坐标</title>
</head>
<body><div id="allmap"></div><ul class="btn-wrap" style="z-index: 99;"><li class="light btn">绘图</li><li class="night btn">清除</li></ul>
</body>
</html>
<script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");  // 创建Map实例map.centerAndZoom("北京", 15);      // 初始化地图,用城市名设置地图中心点var opts = {width: 20,     // 信息窗口宽度height: 5,     // 信息窗口高度}map.enableScrollWheelZoom();map.addEventListener("click", function (e) {//alert(e.point.lng + ", " + e.point.lat);var infoWindow = new BMap.InfoWindow(e.point.lat.toFixed(3) + ", " + e.point.lng.toFixed(3), opts);  // 创建信息窗口对象map.openInfoWindow(infoWindow, e.point);});</script>

:需要将 你的ak 替换,从百度地图官网注册申请。
脚本中使用BMap创建Map实例,centerAndZoom()初始化地图设置中心点为北京,地图等级15。enableScrollWheelZoom()鼠标滚轮可缩放窗口。addEventListener监听鼠标点击事件,发生后,传递事件e至function(e),执行openInfoWindow,在鼠标点击坐标e.point显示infoWindow,内容为此处的纬度,经度。

在这里插入图片描述

结构

<html>
<head>
头部
</head>
<body>
身体
</body>
</html><script>
脚本
</script>

代码可分为html脚本与javascript脚本两部分,每一部分使用标签来描述标签内部的内容<标签></标签>。html头部使用了CSS (Cascading Style Sheets,层叠样式表),在<style> </style>中使用CSS文本描述了按钮的格式。

参考教程:
菜鸟教程HTML
菜鸟教程JavaScript
菜鸟教程CSS

head

先看头部

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html, #allmap {width: 100%;height: 100%;overflow: hidden;margin: 0;font-family: "微软雅黑";}ul li {list-style: none;}.btn-wrap {z-index: 999;position: fixed;bottom: 3rem;margin-left: 60rem;padding: 1rem 1rem;border-radius: .25rem;background-color: #fff;box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);}.btn {width: 75px;height: 30px;float: left;background-color: #fff;color: rgba(27, 142, 236, 1);font-size: 14px;border: 1px solid rgba(27, 142, 236, 1);border-radius: 5px;margin: 0 5px;text-align: center;line-height: 30px;}.btn:hover {background-color: rgba(27, 142, 236, 0.8);color: #fff;}</style><script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的ak"></script><title>显示坐标</title>

前两行<meta>标签,提供了HTML文档的元数据。content属性定义与http-qquiv或name属性相关的元信息。http-equiv和name属性将content关联道http头部或者名称。
下一行<style>标签,定义文档的样式信息。type属性确定样式表的类型。
CSS语法
CSS语法如上,通过选择器确定对哪个或哪些标签进行格式定义,设置其属性为某值。属性:值; 称为声明,声明间用;分开,最外侧使用大括号括起来。
CSS选择器可以为标签,也可通过标签的id和class进行选择器的确定。

body,html
ul li

选择html元素的标签
body,html 为元素选择器,ul li为后代选择器

#allmap

选择html元素的id
为id选择器

.btn-wrap
.btn
.btn:hover

选择html的class
为类型选择器

菜鸟教程:CSS选择器

body

<body><div id="allmap"></div><ul class="btn-wrap" style="z-index: 99;"><li class="light btn">绘图</li><li class="night btn">清除</li></ul>
</body>

html 标签
div标签:节,标签定义 HTML 文档中的一个分隔区块或者一个区域部分。 id为allmap,在head中通过CSS id选择器确定了其样式,在脚本中通过id进行功能实现。
html div
ul 标签定义无序列表
li 标签定义列表项目
绘图与清除按钮没有设定功能,只在CSS通过类型选择器btn设置了样式。light与night类型没有设置样式。标签定义的不同类型可以用空格分开。

script

<script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");  // 创建Map实例map.centerAndZoom("北京", 15);      // 初始化地图,用城市名设置地图中心点var opts = {width: 20,     // 信息窗口宽度height: 5,     // 信息窗口高度}map.enableScrollWheelZoom();map.addEventListener("click", function (e) {//alert(e.point.lng + ", " + e.point.lat);var infoWindow = new BMap.InfoWindow(e.point.lat.toFixed(3) + ", " + e.point.lng.toFixed(3), opts);  // 创建信息窗口对象map.openInfoWindow(infoWindow, e.point);});</script>

调试

在这里插入图片描述
打开网页按F12打开调试器。打开源代码,打开此html。在function(e)函数,74行左侧左键单击可设置断点,在网页点击可查看事件e具体的结构。

http://www.lryc.cn/news/193108.html

相关文章:

  • Yarn基础入门
  • element picker 时间控件,指定区间和指定月份置灰
  • thinkphp6
  • Android 13.0 USB鼠标右键改成返回键的功能实现
  • 超低延时 TCP/UDP IP核
  • Python与数据库存储
  • RN操作SQLite数据库的包(sqlite-helper.js)及其使用
  • 软件测试学习(四)自动测试和测试工具、缺陷轰炸、外包测试、计划测试工作、编写和跟踪测试用例
  • 【Rust日报】2023-10-12 论文:利用公共信息评估 Rust 代码库
  • 微信小程序入门
  • 【RocketMQ系列二】通过docker部署单机RocketMQ
  • 中缀表达式转后缀表达式
  • Zabbix 使用同一ODBC监控不同版本MySQL
  • Swagger3.0 与spring boot2.7x 整合避免swagger2.0与boot2.7冲突
  • 【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
  • 【面试经典150 | 哈希表】最长连续序列
  • 如何构建安全的App网络通信?
  • Chrome插件精选 — 网页截图插件
  • react+antd封装表格组件2.0
  • 互联网Java工程师面试题·Java 并发编程篇·第八弹
  • 21面向对象描述器
  • 高校教务系统登录页面JS分析——皖西学院
  • 单片机综合小项目
  • docker下的onlyoffice安装(for seafile)
  • 1 两数之和
  • NewStarCTF2023week2-Unserialize?
  • OpenMesh 最优选点策略
  • 服务器内存总量和内存条有差异是什么问题 103.239.244.X
  • WPF DataGrid详细列表手动显示与隐藏
  • Compose 组件 - 分页器 HorizontalPager、VerticalPager