百度地图API学习

常用技术

1.创建地图: var map = new BMap.Map("divid");

2.创建坐标点:var point = new BMap.Point("经度","纬度");

3.设置视图中心点:map.centerAndZoom(point,size);

4.激活滚轮调整大小功能:map.enableScrollWheelZoom();

5.添加控件:map.addControl(new BMap.Xxx());

6.添加覆盖物:map.addOverlay();

控件介绍

1.NavigationControl:缩放地图的控件,默认在左上角;

2.OverviewMapControl:地图的缩略图的控件,默认在右下方;

3.ScaleControl:地图显示比例的控件,默认在左下方;

4.MapTypeControl:地图类型控件,默认在右上方;

map.addControl()方法添加控件;

覆盖物介绍

覆盖物就是覆盖在地图上的某个事物;

1.标注:Marker

(1)在point处添加标注:var marker = new BMap.Marker(point);

(2)添加覆盖物:map.addOverlay(marker);

(3)激活标注的拖拽功能:marker.enableDragging();

(4)为标注添加事件:marker.addEventListener("名称",function(){

//点击标注后的事件

});

(5)删除覆盖物:map.removeOverlay(marker);

(6)销毁标注:marker.dispose();

2.信息窗口:InfoWindow

(1)在某个特定的位置创建一个信息窗口:var infowindow = new BMap.InfoWindow("内容",{width:250,height:100,title:"hello"});

(2)在地图中央打开信息窗口:map.openInfoWindow(infoWindow,map.getCenter());

3.折线:Polyline

(1)var polyline = new BMap.Polyline([new BMap.Point(X1,Y1),new BMap.Point(X2,Y2),new BMap.Point(X3,Y3)],{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});

(2)map.addOverlay(polyline);

原文件

<!DOCTYPE html>
<html>
    <head>
        <title>关于我们</title>
        <meta charset="utf-8"/>        
        <link rel="stylesheet" type="text/css" href="css/common.css">
        <link rel="stylesheet" type="text/css" href="css/wy.css">
    </head>
    <body>
        <div id="header"></div>

<div class="content">
            <!-- <img src="images/map.png"> -->
            <div class="cont-map" id="dituContent"></div>
        </div>

</body>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/common.js"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
    <script type="text/javascript">
        //创建和初始化地图函数:
    function initMap(){
        createMap();//创建地图
        setMapEvent();//设置地图事件
        addMapControl();//向地图添加控件
        addMarker();//向地图中添加marker
    }
    
    //创建地图函数:
    function createMap(){
        var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
        var point = new BMap.Point(120.112582,30.33892);//定义一个中心点坐标
        map.centerAndZoom(point,17);//设定地图的中心点和坐标并将地图显示在地图容器中
        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:"泰嘉园A座15层",content:"杭州安存网络科技有限公司",point:"120.112672|30.339052",isOpen:0,icon:{w:21,h:21,l:0,t:0,x:6,lb:5}}
         ];
    //创建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://app.baidu.com/map/images/us_mk_icon.png", 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>
</html>

时间: 2024-10-19 06:44:21

百度地图API学习的相关文章

百度地图API学习之路(1)

由于实习工作需要,现在接触百度地图的API 一切按照百度官网的配置 如果中途出现copy官网配置还显示错误的话,例如AndroidManifest.xml里面的     <uses-permission android:name="android.permission.GET_ACCOUNTS"/>     <uses-permission android:name="android.permission.USE_CREDENTIALS"/>

百度地图API学习之路(2)

(1)手势设定在 UiSettings 里面 UiSettings mUiSettings = mBaiduMap.getUiSettings();      mUiSettings.setZoomGesturesEnabled(true); //启用缩放手势      mUiSettings.setScrollGesturesEnabled(true); //启用平移手势      mUiSettings.setRotateGesturesEnabled(false); //关闭旋转手势   

百度地图API学习之路(3)

(1)SDK提供的缩放比例,大概是指每厘米长度在实际中的距离. (2)获取设备的物理尺寸     DisplayMetrics dm = new DisplayMetrics();     getWindowManager().getDefaultDisplay().getMetrics(dm);     double x = Math.pow(dm.widthPixels/dm.xdpi,2);     double y = Math.pow(dm.heightPixels/dm.ydpi,2

百度地图API学习总结

常用技术 1.创建地图: var map = new BMap.Map("divid"); 2.创建坐标点:var point = new BMap.Point("经度","纬度"); 3.设置视图中心点:map.centerAndZoom(point,size); 4.激活滚轮调整大小功能:map.enableScrollWheelZoom(); 5.添加控件:map.addControl(new BMap.Xxx()); 6.添加覆盖物:ma

【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

原文:[百度地图API]小学生找哥哥--小学生没钱打车,所以此为公交查询功能 任务描述: 有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥.他身上钱很少,只够坐公交的.所以,百度地图API快帮帮他吧! 如何实现: 把地图中心定在魏公村,在视野范围内搜索小学. 搜索完毕后,点击出现的红色标注,在输入框中输入北京邮电大学,然后查询,即可得到公交路线图. 图示: 运行代码,点击这里. 点击公交按钮需要做的查询工作. 在这里,请大家一定注意,所有公交查询,只创建一次对象.不然会有很大的内存消耗哦~

【百度地图API】建立全国银行位置查询系统(一)——如何创建地图

原文:[百度地图API]建立全国银行位置查询系统(一)--如何创建地图 <摘要>你将在第一章中学会以下知识: 如何创建一个网页文件 怎样利用百度地图API建立一张2D地图,以及3D地图 如何添加对地图进行鼠标和键盘操作的功能 ------------------------------------------------------------------------------------------------------------------- 一.创建网页文件 粘贴以下代码至记事本中

【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件

原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨.鹰眼.比例尺.2D3D转换控件.版权控件. ----------------------------------------------------------------------------------------------------------------- 一.安装配置notepad++ 为什么

【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------------------------------------------------------------------------------------------------------- 哇,好久没有上来了.主要是因为最近工作繁忙,加上休息时间被各种排练.社团活动占满,导致木有更新此博客.

【百度地图API】情人节求爱大作战——添加标注功能

原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA的爱意吧! 如何实现: 给地图增加一个事件监听,addEventListener: 当鼠标点击地图时,首先获取改点坐标,其次在改点坐标处增加一个红色标注. 图示: 运行代码,请点击这里. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr