高德地图+HTML+点击事件+自定心信息窗体

代码如下

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
        <title>默认样式信息窗体</title>
        <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
        <style>
            html,
            body,
            #container {
                height: 100%;
                width: 100%;
            }
            .content-window-card {
                position: relative;
                box-shadow: none;
                bottom: 0;
                left: 0;
                /* width: auto; */
                width: 28rem;
                padding: 0;
            }

            .content-window-card p {
                height: 2rem;
            }

            .custom-info {
                border: solid 1px silver;
            }

            div.info-top {
                position: relative;
                background: none repeat scroll 0 0 #F9F9F9;
                border-bottom: 1px solid #CCC;
                border-radius: 5px 5px 0 0;
            }

            div.info-top div {
                display: inline-block;
                color: #333333;
                font-size: 14px;
                font-weight: bold;
                line-height: 31px;
                padding: 0 10px;
            }

            div.info-top img {
                position: absolute;
                top: 10px;
                right: 10px;
                transition-duration: 0.25s;
            }

            div.info-top img:hover {
                box-shadow: 0px 0px 5px #000;
            }

            div.info-middle {
                font-size: 12px;
                padding: 10px 6px;
                line-height: 20px;
            }

            div.info-bottom {
                height: 0px;
                width: 100%;
                clear: both;
                text-align: center;
            }

            div.info-bottom img {
                position: relative;
                z-index: 104;
            }

            span {
                margin-left: 5px;
                font-size: 11px;
            }

            .info-middle img {
                float: left;
                margin-right: 6px;
            }

            .info-span {
                /* margin-left: 35px; */
                font-size: 11px;

            }

            .info-div {
                width: 140px;
                display: inline-block;
                margin-left: 10px;
            }

            .info-img {
                width: 40px;
                height: 40px;
            }

            .info-a-title {
                /* color: #000000; */
                font-size: 16px;
            }
        </style>
    </head>
    <body>
        <div id="container"></div>
        <div class="info">
            点击地图上的点标记,打开所添加的自定义信息窗体
        </div>
          <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您的高德key">
        </script>
        <script type="text/javascript">
            var devInfo = null
            var map = createMap() //1.new 一个map对象
            map.clearMap(); //2.清空Map
            addMarker() //3.创建点标记
            //1创建map对象,
            function createMap() {
                //1.地图初始化时,在地图上添加一个marker标记,鼠标点击marker可弹出自定义的信息窗体
                var mapData = new AMap.Map("container", {
                    resizeEnable: true,
                    center: [115.064965,35.383416], //地图展示中心点位置
                    zoom: 16,
					mapStyle: 'amap://styles/grey' // 设置地图样式为深色模式
                });
                return mapData
            }
            //2添加点标记
            function addMarker() {
                var markerData = [{
                    title: '1号厂区',
                    icon: "img/gc1.png", //点标记图片路径
                    position: [115.065955,35.383416],
                    offset: new AMap.Pixel(-8, -30)
                }, {
                    title: '2号厂区',
                    icon: "img/gc2.png", //点标记图片路径
                    position: [115.067945,35.383416],
                    offset: new AMap.Pixel(-3, -30)
                }, {
                    title: '3号厂区',
                    icon: "img/gc3.png", //点标记图片路径
                    position: [115.068935,35.383416],
                    offset: new AMap.Pixel(-12, -30)
                }]
                var arr = []
                markerData.forEach((item) => {
                    var marker = new AMap.Marker({
                        icon: item.icon, //点标记图片路径
                        position: item.position, //位置
                        offset: item.offset //偏移
                    });
                      arr.push(Object.assign(item, {
                        mapId: marker._amap_id
                    }))
                    marker.setMap(map);
                    // 鼠标点击marker弹出自定义的信息窗体

                    AMap.event.addListener(marker, 'click', function(e) {
                        markerClick(arr, marker)
                    });
							// 添加闪烁特效
					        // setInterval(function() {
					        //     if (marker.getAnimation() === 'AMAP_ANIMATION_NONE') {
					        //         marker.setAnimation('AMAP_ANIMATION_BOUNCE');
					        //     } else {
					        //         marker.setAnimation('AMAP_ANIMATION_NONE');
					        //     }
					        // }, 1000);
							setInterval(function() {
							            if (marker.getAnimation() === 'AMAP_ANIMATION_NONE') {
							                marker.setAnimation('AMAP_ANIMATION_BOUNCE'); // 更换为下落动画效果
							            } else {
							                marker.setAnimation('AMAP_ANIMATION_NONE');
							            }
							        }, 1000);
                })
            }
            //点击标记 获取所点击标记的信息以及窗体要展示的数据,创建信息窗体
            function markerClick(arr, marker) {
                var arrNew = arr.filter(x => x.mapId == marker._amap_id)

                devInfo = arrNew && arrNew[0]
                var infoWindow = createInfoWindow()
                openInfoWindow(infoWindow, marker)
            }
            //构建自定义窗体
            function createInfoWindow() {
                var infoWindowData = new AMap.InfoWindow({
                    isCustom: true, //使用自定义窗体
                    content: getContent(),
                    offset: new AMap.Pixel(16, -45)
                });
                return infoWindowData
            }
            //处理窗体内容
            function getContent() {
                var content = `<div class="custom-info input-card content-window-card">
                <div class="info-top">
                    <div><span>${devInfo.title}</span><span style="font-size:11px; margin-left:20px;color:#F00;">状态:正在运行</span></div><img
                      onclick="closeInfoWindow"  src="https://webapi.amap.com/images/close2.gif">
                </div>
                <div class="info-middle" style="background-color: white;"><img class="info-img" src="img/dev.png"><a
                        class="info-a-title"
                        href="https://ditu.amap.com/detail/B000A8URXB?citycode=110105">XXXXXXXXXXX</a><br>地址:XXXXXXXXXXXXXXXXXXXXXXX<br>
                    <div class="info-div">总用电:5428542° </div><span class="info-span"> 总用气:454575NM<br>
                        <div class="info-div">发酵罐:210个 </div><span class="info-span"> 总用水量:19999111T</span><br>
                        <div class="info-div">工作年限:10年</div> <span class="info-span"> 总产量:27784T</span><br>
                        <div class="info-div">建厂时间:2011.09.08</div> <span class="info-span">建筑面积:1200M3</span>
                    </span>
                </div>
                <div class="info-bottom" style="position: relative; top: 0px; margin: 0px auto;"><img
                        src="https://webapi.amap.com/images/sharp.png"></div>
            </div>`
                return content
            }
            //打开窗体
            function openInfoWindow(infoWindow, marker) {
                debugger
                infoWindow.open(map, marker.getPosition());
            }
            //关闭窗体
            function closeInfoWindow() {
                map.clearInfoWindow();
            }
        </script>
    </body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/586781.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB 字符串

MATLAB 字符串 在MATLAB中创建字符串非常简单。实际上&#xff0c;我们已经使用了很多次。例如&#xff0c;您在命令提示符下键入以下内容- 示例 my_string ‘(cainiaojc.com)’ MATLAB将执行上述语句并返回以下结果 my_string (cainiaojc.com) MATLAB将所有变量视为数组&a…

Macos安装OrbStack

什么是OrbStack OrbStack 是一种在 macOS 上运行容器和 Linux 机器的快速、轻便和简单方法。它是 Docker Desktop 和 WSL 的超强替代品&#xff0c;所有这些都在一个易于使用的应用程序中。 在Macos M系列芯片上&#xff0c;经常遇到docker镜像不兼容的问题&#xff0c;此时使…

【初识Redis】

初识Redis Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存数据库&#xff0c;它提供了一个高性能的键值存储系统&#xff0c;并且支持多种数据结构&#xff0c;包括字符串、哈希、列表、集合和有序集合等。Redis的特点包括&#xff1a; 内存存储&…

[C语言]典型例题:小蚂蚁爬橡皮筋、买汽水问题、导致单词块、菱形打印……

1、小蚂蚁爬橡皮筋问题 假设橡皮筋长4m&#xff0c;小蚂蚁从一端爬向另一端每天爬1m&#xff0c;且每爬了1m&#xff0c;橡皮筋会立马拉伸4m&#xff0c;在理想条件下&#xff0c;小蚂蚁需要爬多少天可以到达橡皮筋的另一端&#xff1f; 不仔细想&#xff0c;我们很可能认为小蚂…

2023年蓝桥杯C++A组第三题:更小的数(双指针解法)

题目描述 小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串&#xff0c;下标从 0 到 n − 1&#xff0c;你可以将其视作是一个具有 n 位的十进制数字 num&#xff0c;小蓝可以从 num 中选出一段连续的子串并将子串进行反转&#xff0c;最多反转一次。小蓝想要将选出的…

JavaEE 初阶篇-深入了解网络原理中传输层的端口号与 UDP 协议报文格式

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 端口号概述 1.1 端口号的作用 1.2 端口号不能重复被多个进程绑定 2.0 传输层协议 - UDP 2.1 UDP 的特性 2.2 UDP 的报文格式 1.0 端口号概述 端口号是计算机网络中…

多线程事务怎么回滚

1、背景介绍 1&#xff0c;最近有一个大数据量插入的操作入库的业务场景&#xff0c;需要先做一些其他修改操作&#xff0c;然后在执行插入操作&#xff0c;由于插入数据可能会很多&#xff0c;用到多线程去拆分数据并行处理来提高响应时间&#xff0c;如果有一个线程执行失败…

【算法小白周赛1A】分析 - 题解与代码

题目链接&#xff1a;https://www.starrycoding.com/problem/155 题目描述 小可可最近在学数学运算&#xff01;他希望考考你&#xff0c;给你两个整数 A , B A,B A,B&#xff0c;询问 A B A\times B AB 是否是偶数。 注意&#xff0c;可能存在前导 0 0 0&#xff0c;比如…

面试题-Redis篇

什么是 Redis? Redis 是完全开源免费的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点&#xff1a; Redis 支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&#xff0c;重启的时 …

【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、回调函数二、快速排序(Qsort)2.1 Qsort参数部分介绍2.2 不…

【Flutter】极光推送配置流程(小米厂商通道) 章二

前言 继【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 并且&#xff0c;我大概率不会去修改第一篇文章的内容。 随着我自己在配置公司的项目的同时&#xff0c;我希望一直更新这个推送系列文章。 在章一配置完后&#xff0c;也是出现了一些问题&#xff0c;所以本…

【第1章】spring-mvc搭建

文章目录 前言一、准备二、搭建1.搭建2.项目结构 三、第一个Servlet程序1. jsp2. servlet3. 启动 总结 前言 Java已经进入了飞速发展的阶段&#xff0c;spring-mvc也发生了巨大的变化&#xff0c;最让人无法忍受的就是javax.servlet.* 变成了jakarta.servlet.* ps:虽然使用起来…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用

在数字化和智能化的浪潮中&#xff0c;GIS&#xff08;地理信息系统&#xff09;和GPT&#xff08;生成式预训练模型&#xff09;的结合正日益成为推动科研、城市规划、环境监测等领域发展的关键技术。GIS以其强大的空间数据处理、先进的空间分析工具、灵活的地图制作与可视化能…

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数课后实验 Lab5

问题预览/关键词 二分类问题的训练集&#xff08;多特征&#xff09;绘制训练集数据的散点图自定义plot_data() Python实现逻辑回归的成本函数自定义sigmoid() 调用成本函数不同的w&#xff0c;b&#xff0c;绘制逻辑回归模型的决策边界验证哪条决策边界效果好总结 二分类问题的…

精通GDBus:Linux IPC的现代C接口

目录标题 1. GDBus介绍2. GDBus的优点3. 安装GDBus4. 使用GDBus连接到D-Bus总线实现D-Bus服务调用D-Bus方法发送和接收信号 5. 总结 在Linux环境下&#xff0c;不同的程序需要通过某种方式进行通信和协同工作。GDBus是GLib库的一部分&#xff0c;提供了一个基于GObject系统的、…

中科驭数受邀成为移动云智能芯片开放实验室首批成员企业

4月28日至29日&#xff0c;2024中国移动算力网络大会在苏州举行。大会以“算力网络点亮AI新时代”为主题&#xff0c;全面展示了中国移动最新算力网络成果与能力。中科驭数作为移动云智能芯片开放实验室首批合作伙伴&#xff0c;受邀参加入驻仪式&#xff0c;中科驭数高级副总裁…

OpenCV的图像矩(64)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV如何为等值线创建边界旋转框和椭圆(63) 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; Image Moments&#xff08;图像矩&#xff09;是 OpenCV 库中的一个…

C语言----函数

1.函数的概念 函数&#xff1a;founction c语言的程序代码都是函数组成的 c语言中的函数就是一个完成某项特定的任务的一段代码&#xff0c;这段代码有特殊的写法和调用方法 c语言中我们一般见到两种函数&#xff1a; .库函数 .自定义函数 2.库函数 有对应的头文件 #i…

Python | Leetcode Python题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; class Solution:def getPermutation(self, n: int, k: int) -> str:factorial [1]for i in range(1, n):factorial.append(factorial[-1] * i)k - 1ans list()valid [1] * (n 1)for i in range(1, n 1):order k // factorial[n - …

大数据分析与内存计算学习笔记

一、Scala编程初级实践 1.计算级数&#xff1a; 请用脚本的方式编程计算并输出下列级数的前n项之和Sn&#xff0c;直到Sn刚好大于或等于q为止&#xff0c;其中q为大于0的整数&#xff0c;其值通过键盘输入。&#xff08;不使用脚本执行方式可写Java代码转换成Scala代码执行&a…
最新文章