<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具" />
    <meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图" />
    <title>百度地图API自定义地图</title>
    <!--引用百度地图API-->
    <style type="text/css">
        html, body {
            margin: 0;
            padding: 0;
        }

        .iw_poi_title {
            color: #CC5522;
            font-size: 14px;
            font-weight: bold;
            overflow: hidden;
            padding-right: 13px;
            white-space: nowrap;
        }

        .iw_poi_content {
            font: 12px arial,sans-serif;
            overflow: visible;
            padding-top: 4px;
            white-space: -moz-pre-wrap;
            word-wrap: break-word;
        }
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=7iv4GTjmEoRMLNLWIGQHDb4qFIFKsWYc"></script>
    <!--调用地图的-->
    <!--加载鼠标绘制工具  js css-->
    <script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
    <link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
</head>

<body style="margin:10px">
    <!--百度地图容器-->
    <div style="width: 697px; height: 550px; border: #ccc solid 1px;" id="dituContent"></div>
    <div style="width: 100px; height: 100px; border: #ccc solid 1px;" id="Div1"></div>
</body>
<script type="text/javascript">
    //创建和初始化地图函数:
    function initMap() {
        createMap();//创建地图
        setMapEvent();//设置地图事件
        addMapControl();//向地图添加控件
    }

    //创建地图函数:
    function createMap() {
        var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
        var point = new BMap.Point(116.395645, 39.929986);//定义一个中心点坐标
        map.centerAndZoom(point, 12);//设定地图的中心点和坐标并将地图显示在地图容器中【12位缩放级别  最大18】
        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 marker = new BMap.Marker(new BMap.Point("116.395645", "40.929986"));//设置标记的位置
        map.addOverlay(marker);
        var infoWindow = new BMap.InfoWindow('<p style="color: #bf0008;font-size:14px;">阿萨德</p><p>地址:阿萨德撒</p><p>电话:阿萨德</p><p>传真:阿萨德</p>');//标记显示信息
        marker.addEventListener("click", function () {//打开标记的事件【mouseover 】
            this.openInfoWindow(infoWindow);
        });
        marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
        //marker.openInfoWindow(infoWindow);//在地图上打开信息窗口【定位到次标记】
        //添加标记结束

        //根据Ip定位城市位置开始
        //function myFun(result) {
        //    var cityName = result.name;
        //    map.setCenter(cityName);
        //    alert("当前定位城市:" + cityName);
        //}
        //var myCity = new BMap.LocalCity();
        //myCity.get(myFun);
        //根据Ip定位城市位置结束


        //根据浏览器定位开始
        //var geolocation = new BMap.Geolocation();
        //geolocation.getCurrentPosition(function (r) {
        //    if (this.getStatus() == BMAP_STATUS_SUCCESS) {
        //        var mk = new BMap.Marker(r.point);
        //        map.addOverlay(mk);
        //        map.panTo(r.point);
        //        alert('您的位置:' + r.point.lng + ',' + r.point.lat);
        //    }
        //    else {
        //        alert('failed' + this.getStatus());
        //    }
        //}, { enableHighAccuracy: true })
        //根据浏览器定位结束

        //规划步行路线开始
        //var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true } });
        //walking.search("山东省临沂市沂南县马牧池乡东波池南岭", "山东省临沂市沂南县马牧池乡");//输入起始位置 跟结束位置
        //规划步行路线结束


        //设置点的新图标  开始
        var pt = new BMap.Point(116.417, 39.909);
        var myIcon = new BMap.Icon("img/zx1.png", new BMap.Size(30, 20));//size的值和图片大小近似       
        var marker2 = new BMap.Marker(pt, { icon: myIcon });  // 创建标注
        //为新图标设置提示信息
        var infoWindowNew = new BMap.InfoWindow('<p style="color: #bf0008;font-size:14px;">阿萨德</p><p>地址:阿萨德撒</p><p>电话:阿萨德</p><p>传真:阿萨德</p>');//标记显示信息
        marker2.addEventListener("click", function () {//打开标记的事件【mouseover 】
            this.openInfoWindow(infoWindowNew);
        });
        map.addOverlay(marker2);
        //设置点的新图标  结束

        //在地图上设直线   开始
        //var polyline = new BMap.Polyline([
        //new BMap.Point(116.399, 39.9513),
        //new BMap.Point(116.412, 39.9513),
        //new BMap.Point(116.433, 39.9513),
        //new BMap.Point(116.433, 40.000),
        //], { strokeColor: "red", strokeWeight: 2, strokeOpacity: 1 });   //创建折线
        //map.addOverlay(polyline);   //增加折线
        //在地图上设直线   结束



        //在地图上绘制多边形  开始【引入js css】
        var overlays = [];
        //绘制完成调用的事件
        var overlaycomplete = function (e) {          
            overlays.push(e.overlay);
            //获取绘制图形的坐标
            var path = e.overlay.getPath();//Array<Point> 返回多边型的点数组
            for (var i = 0; i < path.length; i++) {
                alert("lng:" + path[i].lng + "\n lat:" + path[i].lat);
            }
        };
        //定义绘制的样式
        var styleOptions = {
            strokeColor: "red",    //边线颜色。
            fillColor: "",      //填充颜色。当参数为空时,圆形将没有填充效果。
            strokeWeight: 3,       //边线的宽度,以像素为单位。
            strokeOpacity: 0.8,	   //边线透明度,取值范围0 - 1。
            fillOpacity: 0.6,      //填充的透明度,取值范围0 - 1。
            strokeStyle: 'solid' //边线的样式,solid或dashed。
        }
        //实例化鼠标绘制工具
        var drawingManager = new BMapLib.DrawingManager(map, {
            isOpen: false, //是否开启绘制模式
            enableDrawingTool: true, //是否显示工具栏
            drawingToolOptions: {
                anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
                offset: new BMap.Size(5, 5), //偏离值
            },
            circleOptions: styleOptions, //圆的样式
            polylineOptions: styleOptions, //线的样式
            polygonOptions: styleOptions, //多边形的样式
            rectangleOptions: styleOptions //矩形的样式
        });

        //添加鼠标绘制工具监听事件,用于获取绘制结果
        drawingManager.addEventListener('overlaycomplete', overlaycomplete);
        //清除绘制的图形事件
        function clearAll() {
            for (var i = 0; i < overlays.length; i++) {
                map.removeOverlay(overlays[i]);              
            }
            overlays.length = 0;
        }
      
        //在地图上绘制多边形结束

        //获取坐标点
        //map.addEventListener("click", function (e) {
        //    alert(e.point.lng + "--" + e.point.lat);
        //});


        //添加 事件
        //function addClick() {
        //    map.addEventListener("click", showInfo);
        //}
        ////注销事件
        //function removeClick() {
        //    map.removeEventListener("click", showInfo);
        //}


    }
    initMap();//创建和初始化地图
</script>
</html>