OpenLayer實(shí)現(xiàn)自定義坐標(biāo)點(diǎn)的繪制
實(shí)現(xiàn)步驟
引入相應(yīng)的庫
import 'ol/ol.css';
import Map from 'ol/Map';
import OSM from 'ol/source/OSM';
import TileLayer from 'ol/layer/Tile';
import View from 'ol/View';
import Projection from 'ol/proj/Projection';
import ImageLayer from 'ol/layer/Image'
import Static from 'ol/source/ImageStatic'
import { getCenter } from 'ol/extent'
import Feature from 'ol/Feature'
import VectorSource from 'ol/source/Vector'
import { Circle as CircleStyle, Style, Fill, Stroke } from 'ol/style'
import { Heatmap as HeatmapLayer } from "ol/layer";
import VectorLyr from 'ol/layer/Vector'
import { Overlay } from 'ol'
import { Polygon, Point } from "ol/geom";
import { fromLonLat } from "ol/proj";
import Modify from 'ol/interaction/Modify';
import Draw from 'ol/interaction/Draw';
import Snap from 'ol/interaction/Snap';
import MousePosition from 'ol/control/MousePosition'
import * as olCoordinate from 'ol/coordinate'
import FullScreen from 'ol/control/FullScreen'
import Text from 'ol/style/Text'
繪制自定義圖標(biāo)
// 添加標(biāo)簽
addTag() {
let src = require('../../../assets/ceshi.png')
var element = document.createElement('div')
element.className = 'point_icon'
var p = document.createElement('p')
var img = document.createElement('img')
img.setAttribute('id', '123')
var div = document.createElement('div')
element.appendChild(p)
element.appendChild(img)
element.appendChild(div)
// debugger
img.style.width = '25px'
img.style.height = '25px'
img.src = src
div.style.marginTop = '0px'
div.innerText = '123'
div.style.fontWeight = 'bold'
div.style.fontSize = '12px'
var pointOverlay = new Overlay({
id: '123',
stopEvent: false,
element: element,
positioning: 'center-center'
})
this.map.addOverlay(pointOverlay)
// debugger
pointOverlay.setPosition([50, 30])
},
獲取當(dāng)前地圖所有圖層
let overlays = this.map.getOverlays()
判斷重新繪制圖標(biāo)位置
setPosition() {
let overlays = this.map.getOverlays()
if (overlays.array_ && overlays.array_.length > 0) {
for (let i = 0; i < overlays.array_.length; i++) {
if (overlays.array_[i].element.children[0].children[1] !== undefined) {
let name = overlays.array_[i].element.children[0].children[1].attributes['id'].value
if (name=== '123') {
haveOverlay = true
overlays.array_[i].setPosition([116, 67])
}
}
}
}
},效果展示

到此這篇關(guān)于OpenLayer實(shí)現(xiàn)自定義坐標(biāo)點(diǎn)的繪制的文章就介紹到這了,更多相關(guān)OpenLayer自定義坐標(biāo)點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS區(qū)分Object與Aarry的六種方法總結(jié)
下面小編就為大家?guī)硪黄狫S區(qū)分Object與Aarry的六種方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
JAVASCRIPT模式窗口中下載文件無法接收iframe的流
模式窗口中下載文件,有時(shí)在下載時(shí)發(fā)現(xiàn)服務(wù)器無法接收iframe的流,因?yàn)樵谀J酱翱谥袥]有觸發(fā)iframe的src重新定向事件2013-10-10
JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴的效果實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)通過鍵盤彈鋼琴效果的相關(guān)資料,通過JS代碼實(shí)現(xiàn)了鋼琴鍵盤的交互效果,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
js簡單實(shí)現(xiàn)自動(dòng)生成表格功能示例
這篇文章主要介紹了js簡單實(shí)現(xiàn)自動(dòng)生成表格功能,結(jié)合實(shí)例形式分析了JavaScript針對(duì)數(shù)組元素遍歷與頁面元素動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-06-06
ES6新特性八:async函數(shù)用法實(shí)例詳解
這篇文章主要介紹了ES6新特性八:async函數(shù)用法,結(jié)合實(shí)例形式分析了async函數(shù)的功能、原理、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-04-04

