Openlayers實(shí)現(xiàn)地圖的基本操作
本文實(shí)例為大家分享了Openlayers實(shí)現(xiàn)地圖基本操作的具體代碼,供大家參考,具體內(nèi)容如下
1、新建一個(gè)html頁(yè)面,引入ol.js和ol.css文件,然后在body中創(chuàng)建一個(gè)Div標(biāo)簽和4個(gè)Button按鈕,用來實(shí)現(xiàn)地圖的放大、縮小、平移等功能;
2、代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="../lib/ol/ol.js"></script>
<link href="../css/ol.css" rel="stylesheet" />
<style type="text/css">
#menu
{
float : left;
position : absolute;
bottom : 10px;
font-size : 20px;
z-index : 2000;
}
</style>
<script type="text/javascript">
window.onload = function () {
//實(shí)例化map對(duì)象并加載地圖
var map = new ol.Map({
//存放地圖目標(biāo)容器
target: 'map',
//加載圖層
layers: [
//新建一個(gè)瓦片地圖圖層
new ol.layer.Tile({
//瓦片地圖數(shù)據(jù)源
source: new ol.source.OSM()
})
],
//初始化視圖
view: new ol.View({
//視圖中心點(diǎn)坐標(biāo)
center: [12550000, 3680000],
//縮放等級(jí)
zoom: 8,
//最小縮放等級(jí)
minZoom: 6,
//最大縮放等級(jí)
maxZoom: 12,
//地圖旋轉(zhuǎn)30度
rotation: Math.PI/6
})
});
//獲取地圖的初始化信息
var view = map.getView();
var zoom = view.getZoom();
var center = view.getCenter();
var rotation = view.getRotation();
//地圖縮小
document.getElementById("zoom-out").onclick = function () {
//獲取地圖當(dāng)前視圖
var view = map.getView();
//獲取地圖當(dāng)前縮放等級(jí)
var zoom = view.getZoom();
//每單擊一次地圖的縮放等級(jí)減一,以實(shí)現(xiàn)地圖縮小
view.setZoom(zoom - 1);
};
//地圖放大
document.getElementById("zoom-in").onclick = function () {
//獲取地圖當(dāng)前視圖
var view = map.getView();
//獲取地圖當(dāng)前縮放等級(jí)
var zoom = view.getZoom();
//每單擊一次地圖的縮放等級(jí)加一,以實(shí)現(xiàn)地圖放大
view.setZoom(zoom + 1);
};
//地圖平移
document.getElementById("panto").onclick = function () {
//獲取地圖當(dāng)前視圖
var view = map.getView();
//指定要平移到的位置的坐標(biāo)
var position = ol.proj.fromLonLat([115.2341, 32.4652]);
//重設(shè)地圖中心點(diǎn),實(shí)現(xiàn)平移
view.setCenter(position);
};
//地圖重置
document.getElementById("restore").onclick = function () {
//重置中心點(diǎn)位置為初始化位置
view.setCenter(center);
//重置旋轉(zhuǎn)角度為初始化角度
view.setRotation(rotation);
//重置縮放等級(jí)為初始化縮放等級(jí)
view.setZoom(zoom);
};
}
</script>
</head>
<body>
<div id="map">
<div id="menu">
<button id="zoom-out">縮小</button>
<button id="zoom-in">放大</button>
<button id="panto">平移至...</button>
<button id="restore">重置</button>
</div>
</div>
</body>
</html>
3、運(yùn)行結(jié)果
初始化界面

單擊縮小按鈕,實(shí)現(xiàn)地圖縮小

單擊放大按鈕,實(shí)現(xiàn)地圖放大

單擊平移至按鈕,地圖平移到指定的位置(阜陽(yáng)附近)

單擊地圖右上角的箭頭按鈕,使地圖無旋轉(zhuǎn)


單擊重置按鈕,地圖回到初始狀態(tài)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Openlayers實(shí)現(xiàn)地圖全屏顯示
- Openlayers學(xué)習(xí)之地圖比例尺控件
- OpenLayers3實(shí)現(xiàn)地圖鷹眼以及地圖比例尺的添加
- OpenLayers3實(shí)現(xiàn)對(duì)地圖的基本操作
- OpenLayers3實(shí)現(xiàn)地圖顯示功能
- openlayers實(shí)現(xiàn)地圖彈窗
- openlayers實(shí)現(xiàn)地圖測(cè)距測(cè)面
- vue-openlayers實(shí)現(xiàn)地圖坐標(biāo)彈框效果
- 使用OpenLayers3 添加地圖鼠標(biāo)右鍵菜單
- Openlayers繪制地圖標(biāo)注
相關(guān)文章
如何判斷鼠標(biāo)是否在DIV的區(qū)域內(nèi)
通過mouseover,mouseout來觸發(fā)事件,才判斷鼠標(biāo)是否在該區(qū)域。 但是這種方法的局限性就是,必須要觸發(fā)mouseover,或mouseout,mouseleave事件才能知道2013-11-11
js實(shí)現(xiàn)正則匹配中文標(biāo)點(diǎn)符號(hào)的方法
這篇文章主要介紹了js實(shí)現(xiàn)正則匹配中文標(biāo)點(diǎn)符號(hào)的方法,涉及JavaScript正則匹配與判定的簡(jiǎn)單使用技巧,需要的朋友可以參考下2015-12-12
javascript之典型高階函數(shù)應(yīng)用介紹二
在前一篇文章javascript之典型高階函數(shù)中主要實(shí)現(xiàn)了幾個(gè)典型的functional函數(shù),文章最后也提出了疑問,為啥那樣的實(shí)現(xiàn)與F#之類的函數(shù)式語(yǔ)言“不太一樣”呢?今天來試試更“函數(shù)式”的實(shí)現(xiàn)2013-01-01
面試判斷元素是否在可視區(qū)域中IntersectionObserver詳解
這篇文章主要為大家介紹了判斷元素是否在可視區(qū)域中IntersectionObserver面試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

