zoukankan      html  css  js  c++  java
  • 百度地图API:百度地图上循环显示标注点。使用闭包循环加载点击事件

    本文记录:百度地图上循环显示标注点marker。使用立即执行函数和闭包循环加载点击事件显示信息窗口显示该标注点的更多信息。


    最近一个项目也要用到地图功能,公司内部的项目,就去研究了一下百度地图的API。 感觉跟天地图的API还是有很多的相似之处。 基本的使用方式 是差不太多的。不过百度地图反应要比天地图快不少。 而且现在来用百度地图,以前用天地图时候的一些问题也有了更清晰的解释。


    1.准备数据。点的信息。

    [javascript] view plain copy
    1. var points = [  
    2. {"lng":116,"lat":40,"url":"http://www.baidu.com","id":50,"name":"p1"},  
    3. {"lng":117,"lat":31,"url":"http://www.taobao.com","id":2,"name":"p2"},  
    4. {"lng":116,"lat":34,"url":"http://www.google.com","id":3,"name":"p3"}  
    5. ]  

    2.加载地图。中心点和显示级别默认中国。

    [javascript] view plain copy
    1. var map = new BMap.Map("container");   
    2. map.centerAndZoom(new BMap.Point(103.388611,35.563611), 5);//设置中心点和显示级别。中国。  
    3. map.enableScrollWheelZoom();//滚轮放大缩小。  

    3.循环显示标注点marker。使用立即执行函数和闭包循环加载点击事件显示信息窗口显示该标注点的更多信息。

    [javascript] view plain copy
    1. function addMarker(points){  // 创建图标对象     
    2.   
    3.     // 创建标注对象并添加到地图     
    4.     for(var i = 0,pointsLen = points.length;i <pointsLen;i++){  
    5.         var point = new BMap.Point(points[i].lng,points[i].lat);      
    6.         var  marker = new BMap.Marker(point);     
    7.         map.addOverlay(marker);   
    8.         //给标注点添加点击事件。使用立即执行函数和闭包  
    9.         (function() {  
    10.             var thePoint = points[i];  
    11.             marker.addEventListener("click",function(){  
    12.                 showInfo(this,thePoint);  
    13.             });  
    14.         })();  
    15.   
    16.     }  
    17.   
    18. }    

    4.点击显示标注点markers的信息窗口。

    [javascript] view plain copy
    1. //显示信息窗口,显示标注点的信息。  
    2. function showInfo(thisMaker,point){  
    3.     var sContent =  
    4.     '<ul style="margin:0 0 5px 0;padding:0.2em 0">'  
    5.     +'<li style="line-height: 26px;font-size: 15px;">'  
    6.     +'<span style=" 50px;display: inline-block;">id:</span>' + point.id + '</li>'  
    7.     +'<li style="line-height: 26px;font-size: 15px;">'  
    8.     +'<span style=" 50px;display: inline-block;">名称:</span>' + point.name + '</li>'  
    9.     +'<li style="line-height: 26px;font-size: 15px;"><span style=" 50px;display: inline-block;">查看:</span><a href="'+point.url+'">详情</a></li>'  
    10.     +'</ul>';  
    11.     var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象  
    12.     thisMaker.openInfoWindow(infoWindow);   //图片加载完毕重绘infowindow  
    13.    }  


    效果图:



    这里只是点击显示信息窗口,其实悬停显示窗口,鼠标滑过显示窗口。

    或者点击 跳转什么的。都是可以做的,差别不大。

  • 相关阅读:
    Java生鲜电商平台-微服务架构利弊分析(生鲜小程序/APP)
    实用---eclipse中的代码提示功能
    实验---数据结构中字符串的匹配问题
    实验---实现两个指数递减多项式的和与积
    实验----Java的二维数组的应用及杨辉三角的编写
    你也想成为白帽子么?推荐一份网络安全书单!
    互联网公司的敏捷开发是怎么回事?这一份软件工程书单送给你!
    曾经我也有一个做游戏的梦想,这几本游戏开发的书籍推荐给为未来的游戏工程师
    如何做好Linux服务器运维,你可能需要这一份运维工程师书单!
    如何做好Linux服务器运维,你可能需要这一份运维工程师书单!
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317768.html
Copyright © 2011-2022 走看看