地图开发实战案例:高德地图的标注、信息窗口的实战实例

简介: 地图开发实战案例:高德地图的标注、信息窗口的实战实例

引入外部文件

<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=ca11d9894383ee611ed5c6696"></script>
<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>


CSS样式表:弹出窗

 html,
        body,
        #container {
            width: 100%;
            height: 100%;
        }
        .content-window-card {
            position: relative;
            box-shadow: none;
            bottom: 0;
            left: 0;
            width: auto;
            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;
        }


加载地图

  var map = new AMap.Map('container', {
        resizeEnable: true,
        zoom: 13,
        mapStyle: 'amap://styles/light',
        center: [116.397428, 39.90923]
    });
    var maskerIn = new AMap.Marker({
        position: [116.397428, 39.90923],
        map: map
    })
    //地图中心效果;
    setTimeout(function () {
        //map.setCenter([121.54816, 29.807034]);//设置地图中心点
        map.remove(maskerIn);
        map.panTo([121.54816, 29.807034]);
        var marker = new AMap.Marker({
            position: [121.54816, 29.807034],
            map: map
        })
        //鼠标点击marker弹出自定义的信息窗体
        AMap.event.addListener(marker, 'click', function () {
            infoWindow.open(map, marker.getPosition());
        });
    }, 3000);
    //实例化信息窗体
    var title = '宁波商会<span style="font-size:11px;color:#F00;">漏刻有时数据可视化中心</span>',
            content = [];
    content.push("地址:浙江宁波市鄞州区泰康中路558号");
    content.push("电话:0577-55665673");
    content.push("<a href='https://ditu.amap.com/detail/B000A8URXB?citycode=315200'>详细信息</a>");
    var infoWindow = new AMap.InfoWindow({
        isCustom: true,  //使用自定义窗体
        content: createInfoWindow(title, content.join("<br/>")),
        offset: new AMap.Pixel(16, -45)
    });
    //构建自定义信息窗体
    function createInfoWindow(title, content) {
        var info = document.createElement("div");
        info.className = "custom-info input-card content-window-card";
        //可以通过下面的方式修改自定义窗体的宽高
        //info.style.width = "400px";
        // 定义顶部标题
        var top = document.createElement("div");
        var titleD = document.createElement("div");
        var closeX = document.createElement("img");
        top.className = "info-top";
        titleD.innerHTML = title;
        closeX.src = "https://webapi.amap.com/images/close2.gif";
        closeX.onclick = closeInfoWindow;
        top.appendChild(titleD);
        top.appendChild(closeX);
        info.appendChild(top);
        // 定义中部内容
        var middle = document.createElement("div");
        middle.className = "info-middle";
        middle.style.backgroundColor = 'white';
        middle.innerHTML = content;
        info.appendChild(middle);
        // 定义底部内容
        var bottom = document.createElement("div");
        bottom.className = "info-bottom";
        bottom.style.position = 'relative';
        bottom.style.top = '0px';
        bottom.style.margin = '0 auto';
        var sharp = document.createElement("img");
        sharp.src = "https://webapi.amap.com/images/sharp.png";
        bottom.appendChild(sharp);
        info.appendChild(bottom);
        return info;
    }
    //关闭信息窗体
    function closeInfoWindow() {
        map.clearInfoWindow();
    }


Done!

相关文章
|
定位技术
高德地图进阶开发实战案例(3):标注、信息弹窗和清除覆盖物
高德地图进阶开发实战案例(3):标注、信息弹窗和清除覆盖物
159 0
|
6月前
|
存储 JavaScript 小程序
高德地图实现点聚合功能的详细步骤加截取地图图片 (附源码)
高德地图实现点聚合功能的详细步骤加截取地图图片 (附源码)
124 0
|
数据可视化 前端开发 搜索推荐
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
281 0
|
定位技术
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
高德地图进阶开发实战案例(6):添加自定义图片覆盖物图层获取可视范围经纬度的解决方案
312 0
|
6月前
|
IDE 定位技术 开发工具
百度地图如何创建一个属于自己的地图,附加到项目中?
百度地图如何创建一个属于自己的地图,附加到项目中?
114 0
|
搜索推荐 数据可视化 JavaScript
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
209 1
|
小程序 定位技术
微信小程序如何实现地图多点标注
微信小程序如何实现地图多点标注
785 0
|
JavaScript 数据可视化 搜索推荐
高德地图开发实战案例:使用Loca数据源展示海量点标注(海量点、自定义分类图标、聚合、信息提示、3D控件)
高德地图开发实战案例:使用Loca数据源展示海量点标注(海量点、自定义分类图标、聚合、信息提示、3D控件)
615 0
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
148 0
|
定位技术
百度地图开发实战案例:展示当前定位多少千米内的POI(兴趣点)
百度地图开发实战案例:展示当前定位多少千米内的POI(兴趣点)
100 0