• 地图网点布局


    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                #allmap {
                     600px;
                    height: 560px;
                    float: left;
                }
                
                ul {
                     500px;
                    height: auto;
                    float: right;
                }
                
                li {
                     100%;
                    height: auto;
                    line-height: 20px;
                }
            </style>
    
        </head>
    
        <body>
            <div class="sale_map" id="allmap"></div>
            <ul class="sale_mapcon">
                <li>A点</li>
                <li>B点</li>
                <li>C点</li>
                <li>D点</li>
            </ul>
            
    
    
        </body>
        <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=Cu63HGWRYkNRRPmy3SurQmOO"></script>
        <script type="text/javascript">
            
            //        //销售网点地图信息,
            var jdata = {
                "map": [{
                    "x": 121.24621,
                    "y": 31.379862,
                    "info": "<div class='clearfix infocon'><div class='infof'><h2>A点</h2><h3>地址:A点地址</h3><h4>服务电话:<span>A点电话</span></h4></div></div>"
                }, {
                    "x": 121.442113,
                    "y": 31.183306,
                    "info": "<div class='clearfix infocon'><div class='infof'><h2>B点</h2><h3>地址:B点地址</h3><h4>服务电话:<span>B点电话</span></h4></div></div>"
                }, {
                    "x": 121.558102,
                    "y": 31.221761,
                    "info": "<div class='clearfix infocon'><div class='infof'><h2>C点</h2><h3>地址:C点地址</h3><h4>服务电话:<span>C点电话</span></h4></div></div>"
                }, {
                    "x": 121.20496,
                    "y": 31.040158,
                    "info": "<div class='clearfix infocon'><div class='infof'><h2>D点</h2><h3>地址:D点地址</h3><h4>服务电话:<span>D点电话</span></h4></div></div>"
                }]
            };
            allmap(jdata);
            console.log(this.jdata.map)
            function allmap(jdata) {
                // 百度地图API功能
                var data = [];
                for(i = 0; i < jdata["map"].length; i++) {
                    var da = [jdata["map"][i].x, jdata["map"][i].y, jdata["map"][i].info];
                    data.push(da);
                }
                var x = jdata["map"][0].x;
                var y = jdata["map"][0].y;
                map = new BMap.Map("allmap");
                map.centerAndZoom(new BMap.Point(x, y), 10);
                var data_info = data;
                var opts = {
                     360, // 信息窗口宽度
                    height: 90, // 信息窗口高度
                    title: "", // 信息窗口标题
                    enableMessage: true //设置允许信息窗发送短息
                };
                for(var i = 0; i < data_info.length; i++) {
                    var marker = new BMap.Marker(new BMap.Point(data_info[i][0], data_info[i][1])); // 创建标注
                    var content = data_info[i][2];
                    map.addOverlay(marker); // 将标注添加到地图中
    
                    addClickHandler(content, marker, i);
                }
                map.enableScrollWheelZoom(true);
    
                function openInfo(content, e) {
                    var p = e.target;
                    var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
                    var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象 
                    map.openInfoWindow(infoWindow, point); //开启信息窗口
                }
    
                function addClickHandler(content, marker, abc) {
                    //1. 坐标点鼠标移入移除效果
                    marker.addEventListener("mouseover", function(e) {
                        var label = new BMap.Label(abc, {
                            offset: new BMap.Size(25, -5)
                        });
                        label.setStyle({
                             "60px",
                            color: '#fff',
                            background: '#c0191f',
                            border: '1px solid "#c0191f"',
                            borderRadius: "5px",
                            textAlign: "center",
                            height: "26px",
                            lineHeight: "26px"
                        });
                        marker.setLabel(label);
    
                    });
                    marker.addEventListener("mouseout", function(e) {
                        var label = this.getLabel();
                        label.setContent(""); //设置标签内容为空
                        label.setStyle({
                            border: "none",
                             "0px",
                            padding: "0px"
                        }); //设置标签边框宽度为0
                    });
    
                    //2.坐标点点击效果
                    marker.addEventListener("click", function(e) {
                        openInfo(content, e);
                        //获取marker的位置
                        var p = marker.getPosition();
                        map.centerAndZoom(new BMap.Point(p.lng, p.lat), 16);
                        for(j = 0; j < data.length; j++) {
                            if(data[j][0] == p.lng) {
                                $('.sale_mapcon li').eq(j).addClass("on").siblings().removeClass("on");
                            }
    
                        }
                    });
    
                }
                //导航点击效果
                $('.sale_mapcon li').on('click', function(e) {
                    var cindex = $(this).index();
                    $(this).addClass("on").siblings().removeClass("on");
                    var x = data[cindex][0]; //x
                    var y = data[cindex][1]; //y
                    var point = new BMap.Point(x, y);
                    map.centerAndZoom(new BMap.Point(x, y), 16);
                    var infoWindow = new BMap.InfoWindow(data[cindex][2], opts); // 创建信息窗口对象 
                    map.openInfoWindow(infoWindow, point); //开启信息窗口
                });
    
            }
        </script>
    
    </html>
  • 相关阅读:
    querySelectorAll和getElementsByClassName获取元素的区别
    移动端的点透事件
    formidable处理node.js的post请求
    Node中流的概念
    关于Node.js中的路径问题
    前端设计模式——原型模式
    JavaScript中的循环和闭包
    为什么给函数表达式添加函数名
    作为一个初学者如何简单地理解闭包
    JS的with关键字到底是什么?
  • 原文地址:https://www.cnblogs.com/520yh/p/12505524.html
Copyright © 2020-2023  润新知