Openlayers實現(xiàn)地圖的基本操作
本文實例為大家分享了Openlayers實現(xiàn)地圖基本操作的具體代碼,供大家參考,具體內(nèi)容如下
1、新建一個html頁面,引入ol.js和ol.css文件,然后在body中創(chuàng)建一個Div標簽和4個Button按鈕,用來實現(xiàn)地圖的放大、縮小、平移等功能;
2、代碼實現(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 () {
//實例化map對象并加載地圖
var map = new ol.Map({
//存放地圖目標容器
target: 'map',
//加載圖層
layers: [
//新建一個瓦片地圖圖層
new ol.layer.Tile({
//瓦片地圖數(shù)據(jù)源
source: new ol.source.OSM()
})
],
//初始化視圖
view: new ol.View({
//視圖中心點坐標
center: [12550000, 3680000],
//縮放等級
zoom: 8,
//最小縮放等級
minZoom: 6,
//最大縮放等級
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)前縮放等級
var zoom = view.getZoom();
//每單擊一次地圖的縮放等級減一,以實現(xiàn)地圖縮小
view.setZoom(zoom - 1);
};
//地圖放大
document.getElementById("zoom-in").onclick = function () {
//獲取地圖當(dāng)前視圖
var view = map.getView();
//獲取地圖當(dāng)前縮放等級
var zoom = view.getZoom();
//每單擊一次地圖的縮放等級加一,以實現(xiàn)地圖放大
view.setZoom(zoom + 1);
};
//地圖平移
document.getElementById("panto").onclick = function () {
//獲取地圖當(dāng)前視圖
var view = map.getView();
//指定要平移到的位置的坐標
var position = ol.proj.fromLonLat([115.2341, 32.4652]);
//重設(shè)地圖中心點,實現(xiàn)平移
view.setCenter(position);
};
//地圖重置
document.getElementById("restore").onclick = function () {
//重置中心點位置為初始化位置
view.setCenter(center);
//重置旋轉(zhuǎn)角度為初始化角度
view.setRotation(rotation);
//重置縮放等級為初始化縮放等級
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、運行結(jié)果
初始化界面

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

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

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

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


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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript之典型高階函數(shù)應(yīng)用介紹二
在前一篇文章javascript之典型高階函數(shù)中主要實現(xiàn)了幾個典型的functional函數(shù),文章最后也提出了疑問,為啥那樣的實現(xiàn)與F#之類的函數(shù)式語言“不太一樣”呢?今天來試試更“函數(shù)式”的實現(xiàn)2013-01-01
面試判斷元素是否在可視區(qū)域中IntersectionObserver詳解
這篇文章主要為大家介紹了判斷元素是否在可視區(qū)域中IntersectionObserver面試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03

