OpenLayers3實(shí)現(xiàn)鼠標(biāo)移動顯示坐標(biāo)
本文實(shí)例為大家分享了OpenLayers3實(shí)現(xiàn)鼠標(biāo)移動顯示坐標(biāo)的具體代碼,供大家參考,具體內(nèi)容如下
1. 前言
鼠標(biāo)移動顯示坐標(biāo),OpenLayers 3 框架提供了鼠標(biāo)移動顯示坐標(biāo)的控件(ol.control.MousePosition),默認(rèn)顯示在地圖的右上角,其樣式可以自定義。在這個例子中,我們通過前面的加載 OSM 加載瓦片圖層,實(shí)現(xiàn)在地圖容器的左下角顯示坐標(biāo)點(diǎn)的信息。
2. 實(shí)現(xiàn)思路
(1)新建一個網(wǎng)頁,參考前面的加載 OSM 瓦片地圖,實(shí)現(xiàn)加載瓦片地圖。
(2)在地圖容器中新建一個 div 用于顯示坐標(biāo)信息,并設(shè)置其樣式,通過設(shè)置 z-index 讓其顯示到地圖上面。
(3)實(shí)例化一個鼠標(biāo)位置控件(ol.control.MousePosition),可以根基實(shí)際的需求設(shè)置其,參數(shù),例如坐標(biāo)系(projection)、坐標(biāo)值的顯示格式(coordinateFormat)、關(guān)聯(lián)顯示鼠標(biāo)位置坐標(biāo)點(diǎn)的目標(biāo)容器(target)等。
(4)在地圖容器中加載到地圖容器中??梢栽趯?shí)例化地圖容器 Map 的代碼中,通過設(shè)置 controlas 參數(shù)加載鼠標(biāo)位置控件,也可以調(diào)用 map 對象的 addControl 方法加載控件。
3. 實(shí)現(xiàn)代碼如下:
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠標(biāo)移動顯示坐標(biāo)信息</title>
<link rel="stylesheet" href="css/bootstrap.min.css" >
<link rel="stylesheet" href="css/ol.css" >
<link rel="stylesheet" href="css/ZoomSlider.css" >
<script src="js/ol.js"></script>
<script src="js/MousePosition.js"></script>
<style>
#map {
width: 100%;
height: 100%;
position: absolute;
}
#mouse-position {
float: left;
position: absolute;
bottom: 5px;
width: 200px;
height: 20px;
/* 將z-index設(shè)置為顯示在地圖上層 */
z-index: 2000;
}
/* 顯示鼠標(biāo)信息的自定義樣式設(shè)置 */
.custom-mouse-position {
color: red;
font-size: 16px;
font-family: "微軟雅黑";
}
</style>
</head>
<body onload="init()">
<div id="map">
<div id="mouse-position"></div>
</div>
</body>
</html>
代碼解析:
在地圖容器中創(chuàng)建一個 div 用于顯示坐標(biāo)信息,并設(shè)置其樣式,這個 div 層是是鼠標(biāo)位置控件的最外層容器,它所包含的內(nèi)層為鼠標(biāo)信息文本標(biāo)簽,默認(rèn)類名為 ol-mouse-position,可以自行定義。例如我們修改了他的字體大小以及顏色等。
js代碼:
function init() {
// 實(shí)例化鼠標(biāo)位置控件
var mousePositionControl = new ol.control.MousePosition({
coordinateFormat: ol.coordinate.createStringXY(4), //坐標(biāo)格式
projection: 'EPSG:4326', //地圖投影坐標(biāo)系
className: 'custom-mouse-position', //坐標(biāo)信息顯示樣式
// 顯示鼠標(biāo)位置信息的目標(biāo)容器
target: document.getElementById('mouse-position'),
undefinedHTML: ' ' //未定義坐標(biāo)的標(biāo)記
});
// 實(shí)例化Map對象加載地圖
var map = new ol.Map({
target: 'map', //地圖容器div的id
layers: [ //地圖容器加載的圖層
new ol.layer.Tile({ //加載瓦片圖層數(shù)據(jù)
source: new ol.source.OSM() //數(shù)據(jù)源,加載OSM數(shù)據(jù)
})
],
view: new ol.View({
center: [102, 35],
zoom: 3
}),
// 加載控件到地圖容器中
// 加載鼠標(biāo)位置控件
controls: ol.control.defaults().extend([mousePositionControl])
});
}
代碼解析
(1)coordinateFormat:坐標(biāo)值的顯示格式。
(2)projection:投影坐標(biāo)系,將當(dāng)前鼠標(biāo)位置的坐標(biāo)點(diǎn)設(shè)置為當(dāng)前坐標(biāo)系下的相應(yīng)值進(jìn)行顯示。
(3)target:關(guān)聯(lián)顯示其坐標(biāo)點(diǎn)信息的目標(biāo)容器,即最外層容器元素,就是我們創(chuàng)建的 id 為mouse-position 的 div 元素。
(4)className:坐標(biāo)信息采用的顯示樣式的類名即坐標(biāo)值文本的樣式類名,就是我們自定義的樣式類名 custom-mouse-position 。
實(shí)現(xiàn)效果如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript?中AJAX的圖書管理代碼實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了AJAX的圖書管理代碼實(shí)例,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼倒計時60s
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼后倒計時60s,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
JS實(shí)現(xiàn)的簡單表單驗(yàn)證功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的簡單表單驗(yàn)證功能,涉及javascript針對表單提交內(nèi)容的獲取、判斷、焦點(diǎn)設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
JavaScript進(jìn)階之前端文件上傳和下載示例詳解
這篇文章主要為大家介紹了JavaScript進(jìn)階之前端文件上傳和下載示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
JS獲取input[file]的值并顯示在頁面的實(shí)現(xiàn)方法
下面小編就為大家分享一篇JS獲取input[file]的值并顯示在頁面的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
javascript數(shù)字?jǐn)?shù)組去重復(fù)項的實(shí)現(xiàn)代碼
console.log 不支持ie,下面的代碼需要在火狐中測試,不然會有問題。2010-12-12
使用JavaScript?+?HTML5?Canvas實(shí)現(xiàn)互動愛心雨完整代碼
canvas是HTML5中推出的新功能,可以在頁面上生成一個畫布,使用js可以在畫布上繪制一些圖形,這篇文章主要介紹了使用JavaScript?+?HTML5?Canvas實(shí)現(xiàn)互動愛心雨的相關(guān)資料,需要的朋友可以參考下2025-03-03

