zoukankan      html  css  js  c++  java
  • 网页基于百度地图定位

    一、前言

      在做网站时,客户的需求是需要在网站上显示该公司的地理位置。基于此需求我使用百度地图实现的地图如下。

    二、实现地图效果

      

    三、使用html+css+js 的代码如下

      

    <!DOCTYPE HTML>
    <html>
    
    <head>
        <title>测试使用百度地图定位</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
        <script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>
    </head>
    
    <body>
    
        <div class="about_top">
            <div class="container">
                <div class="about" style="padding-top:1em;">
                    <h3>联系我们</h3>
                    <div class="map">
                        <div id="container" style="100%;;min-height:600px;"></div>
                    </div>
                    <div class="contact zxx-contact">
                        <div class="col-md-6 contact_left">
                            
                            <p>电话:0000-5555555 | 88888888</p>
                            <p>地址:贵州省贵阳市花溪区贵州大学北校区</p>
                        </div>
                        <div class="col-md-6 contact_left">
                                <p>传真:0859-5555555</p>
                                <p>电子邮件:1123195494@qq.com</p>
                            </div>
    
                        <div class="clearfix"> </div>
                    </div>
                </div>
                <div class="copy" style="margin-top:20px;">
                    <p>Copyright &copy; 2019-2020 幸福摩天轮</p>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            //创建和初始化地图函数:
            function initMap() {
                createMap(); //创建地图
                setMapEvent(); //设置地图事件
                addMapControl(); //向地图添加控件
                addMarker(); //向地图中添加marker
            }
    
            //创建地图函数:
            function createMap() {
                var map = new BMap.Map("container"); //在百度地图容器中创建一个地图
                var point = new BMap.Point(106.6706,26.451518); //定义一个中心点坐标
                map.centerAndZoom(point, 16); //设定地图的中心点和坐标并将地图显示在地图容器中
                window.map = map; //将map变量存储在全局
            }
    
            //地图事件设置函数:
            function setMapEvent() {
                map.enableDragging(); //启用地图拖拽事件,默认启用(可不写)
                map.enableScrollWheelZoom(); //启用地图滚轮放大缩小
                map.enableDoubleClickZoom(); //启用鼠标双击放大,默认启用(可不写)
                map.enableKeyboard(); //启用键盘上下左右键移动地图
            }
    
            //地图控件添加函数:
            function addMapControl() {
                //向地图中添加缩放控件
                var ctrl_nav = new BMap.NavigationControl({
                    anchor: BMAP_ANCHOR_TOP_LEFT,
                    type: BMAP_NAVIGATION_CONTROL_LARGE
                });
                map.addControl(ctrl_nav);
                //向地图中添加缩略图控件
                var ctrl_ove = new BMap.OverviewMapControl({
                    anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
                    isOpen: 1
                });
                map.addControl(ctrl_ove);
                //向地图中添加比例尺控件
                var ctrl_sca = new BMap.ScaleControl({
                    anchor: BMAP_ANCHOR_BOTTOM_LEFT
                });
                map.addControl(ctrl_sca);
            }
    
            //标注点数组
            var markerArr = [{
                title: "&nbsp;贵州比特软件有限公司&nbsp;",
                content: "单位地址:贵州省贵阳市花溪区贵州大学北校区<br/>电话:0000-888888&nbsp;0000-000000&nbsp;<br/>传真:0851-888888&nbsp;<br/>电子邮件:1123195494@qq.com",
                point: "106.6706|26.451518",
                isOpen: 0,
                icon: {
                    w: 23,
                    h: 25,
                    l: 0,
                    t: 21,
                    x: 9,
                    lb: 12
                }
            }];
            //创建marker
            function addMarker() {
                for (var i = 0; i < markerArr.length; i++) {
                    var json = markerArr[i];
                    var p0 = json.point.split("|")[0];
                    var p1 = json.point.split("|")[1];
                    var point = new BMap.Point(p0, p1);
                    var iconImg = createIcon(json.icon);
                    var marker = new BMap.Marker(point, {
                        icon: iconImg
                    });
                    var iw = createInfoWindow(i);
                    var label = new BMap.Label(json.title, {
                        "offset": new BMap.Size(json.icon.lb - json.icon.x + 10, -20)
                    });
                    marker.setLabel(label);
                    map.addOverlay(marker);
                    label.setStyle({
                        borderColor: "#808080",
                        color: "#333",
                        cursor: "pointer"
                    });
    
                    (function () {
                        var index = i;
                        var _iw = createInfoWindow(i);
                        var _marker = marker;
                        _marker.addEventListener("click", function () {
                            this.openInfoWindow(_iw);
                        });
                        _iw.addEventListener("open", function () {
                            _marker.getLabel().hide();
                        })
                        _iw.addEventListener("close", function () {
                            _marker.getLabel().show();
                        })
                        label.addEventListener("click", function () {
                            _marker.openInfoWindow(_iw);
                        })
                        if (!!json.isOpen) {
                            label.hide();
                            _marker.openInfoWindow(_iw);
                        }
                    })()
                }
            }
            //创建InfoWindow
            function createInfoWindow(i) {
                var json = markerArr[i];
                var iw = new BMap.InfoWindow("<b class='iw_poi_title' title='" + json.title + "'>" + json.title +
                    "</b><div class='iw_poi_content'>" + json.content + "</div>");
                return iw;
            }
            //创建一个Icon
            function createIcon(json) {
                var icon = new BMap.Icon("http://map.baidu.com/image/us_cursor.gif", new BMap.Size(json.w, json.h), {
                    imageOffset: new BMap.Size(-json.l, -json.t),
                    infoWindowOffset: new BMap.Size(json.lb + 5, 1),
                    offset: new BMap.Size(json.x, json.h)
                })
                return icon;
            }
    
            initMap(); //创建和初始化地图
        </script>
    </body>
    
    </html>
  • 相关阅读:
    33.数组声明方式(var构造函数) 、检测数组类型、数组的属性(封装好的就一个length)、数组的方法
    31.this指向(写出调用链,找最近对象) this的默认绑定 隐式绑定 显示绑定(call(绑定对象) apply(绑定对象) 当括号内没放绑定对象的时候恢复默认绑定) bind
    31.
    30.函数作用域链 (GO AO 也叫词法作用域链)、 调用栈、调用栈涉及this绑定
    29.包装类(构造函数) 包装类作用及调用栈
    916. Word Subsets
    246. Strobogrammatic Number
    445. Add Two Numbers II
    2. Add Two Numbers
    341. Flatten Nested List Iterator
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/10808957.html
Copyright © 2011-2022 走看看