建立地圖css
var map = new ol.Map({ //設置顯示地圖的視圖 view: new ol.View({ projection:'EPSG:4326',//投影方式 center: [108, 34],//定義初始顯示位置 zoom: 3 //定義地圖顯示層級 }), //建立地圖圖層 layers: [ //建立一個使用Open Street Map地圖源的瓦片圖層 new ol.layer.Tile({ source: new ol.source.OSM() }) ], //讓id爲map的div做爲地圖的容器 target: 'map', //控件初始默認不顯示 controls:ol.control.defaults({ attribution: false, zoom: false }).extend([]) });
地圖添加控件:map.addControl(control)ide
地圖刪除控件:map.removeControl(control)動畫
一、比例尺控件spa
//比例尺控件 let control = new ol.control.ScaleLine({ className:'ol-scale-line',//CSS類名稱,默認'ol-scale-line' units:'metric',//單位,默認'metric' //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }); map.addControl(control) //比例尺單位 let units = { degrees:'degrees',//度 imperial:'imperial',//英制英尺 us:'us',//美製英尺 nautical:'nautical',//海里 metric:'metric',//公制 } //獲取比例尺單位 control.getUnits() //設置比例尺單位 control.setUnits('metric') //該功能用於設置控件的目標元素 control.setTarget(target)
二、全屏控件3d
//全屏控件 let control = new ol.control.FullScreen({ className:'ol-full-screen',//CSS類名稱,ol-full-screen tipLabel:'Toggle full-screen',//鼠標滑入按鈕提示信息,默認'Toggle full-screen' //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(control) //該功能用於設置控件的目標元素 control.setTarget(target)
三、導覽控件code
//導覽控件 let control = new ol.control.ZoomToExtent({ className:'ol-zoom-extent',//CSS類名稱,默認ol-zoom-extent tipLabel:'Fit to extent',//鼠標滑入按鈕提示信息,默認'Fit to extent' label:'E',//用於按鈕的文本,默認爲'E' extent:[108,34,109,35],//縮放的程度。若是未定義,則使用視圖投影的有效性範圍。 //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(control) //該功能用於設置控件的目標元素 control.setTarget(target)
四、概覽(鷹眼)控件orm
//概覽(鷹眼)控件 let Control = new ol.control.OverviewMap({ className:'ol-overviewmap ol-custom-overviewmap',//CSS類名稱,默認'ol-overviewmap' collapsed:false,//控件初始是否摺疊,默認爲true collapseLabel:'«',//摺疊時的按鈕文本,默認爲"«" label:'»',//展開時的按鈕文本,默認爲"»" collapsible:true,//控件是否能夠摺疊,默認爲true tipLabel:'Overview map',//鼠標滑入按鈕提示信息,默認'Overview map' layers:[//概覽圖層 new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ projection:'EPSG:4326',//投影方式 center: [108, 34],//定義初始顯示位置 zoom: 3 //定義地圖顯示層級 }), //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(Control) //該功能用於設置控件的目標元素 Control.setTarget(target)
五、鼠標位置控件blog
//鼠標位置控件 let Control = new ol.control.MousePosition({ className: 'ol-mouse-position', //css名稱,默認'ol-mouse-position' coordinateFormat: function(param){ return ol.coordinate.format(param,'{x}, {y}',6); }, //座標格式 projection: 'EPSG:4326',//投影方式 //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }); map.addControl(Control) //該功能用於設置控件的目標元素 Control.setTarget(target)
六、縮放滑塊控件ip
//縮放滑塊控件 let Control = new ol.control.ZoomSlider({ className:'ol-zoomslider',//CSS類名稱,默認'CSS類名稱' }); map.addControl(Control)
七、縮放控件rem
//縮放控件 let control = new ol.control.Zoom({ className:'ol-zoom',//CSS類名稱,默認ol-zoom zoomInLabel:'+',//放大按鈕文本,默認'+' zoomOutLabel:'-',//縮小按鈕文本,默認'-' zoomInTipLabel:'Zoom in',//放大按鈕提示信息,默認'Zoom in' zoomOutTipLabel:'Zoom out',//縮小按鈕提示信息,默認'Zoom out' delta:1,//每次點擊都會應用縮放比例,默認爲1 //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(control) //該功能用於設置控件的目標元素 zoom_control.setTarget(target)
八、版權控件
//版權控件 let attribution = new ol.control.Attribution({ className:'ol-attribution',//CSS類名稱,默認ol-attribution collapsible:true,//版權按鈕是否能夠摺疊 collapsed:true,//版權按鈕初始化是否摺疊 tipLabel:'Attributions',//按鈕文本提示信息,默認'Attributions' label:'i',//按鈕摺疊時文本,默認'i' collapseLabel:'»'//按鈕展開時文本,默認'»' //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(attribution)
九、旋轉控件
//旋轉控件 let roter = new ol.control.Rotate({ className:'ol-rotate',//CSS類名稱,默認'ol-rotate' label:'⇧',//旋轉按鈕文本,默認爲「⇧」 tipLabel:'Reset rotation',//旋轉按鈕提示信息,默認'Reset rotation' autoHide:false,//旋轉爲0時隱藏控件,默認爲true duration:250,//動畫持續時間,默認250毫秒 //若是要使控件在地圖視口以外呈現,請指定一個目標 //target:document.getElementById('box'), }) map.addControl(roter)