openlayers初始化方法

一、前置准备

  1. ‌基础要求‌:掌握HTML、CSS、JavaScript基础语法,熟悉VS Code等代码编辑器的基本操作。
  2. ‌环境引入‌:提供两种主流引入方式,按需选择即可。
  • ‌CDN直接引入‌:无需本地安装依赖,适合快速验证demo
ini 复制代码
html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol/ol.css">
<script src="https://cdn.jsdelivr.net/npm/ol/ol.js"></script>
  • ‌npm安装‌:适合现代前端工程化项目
css 复制代码
bash
npm install ol

二、核心基础概念

OpenLayers的所有功能都围绕6个核心组件展开,理解后可快速搭建各类地图场景:

  • ‌Map(地图容器) ‌:所有图层、控件、交互的挂载载体,是地图初始化的核心入口。
  • ‌View(视图) ‌:控制地图的显示状态,包含中心点坐标、缩放级别、投影坐标系三大核心配置。
  • ‌Layer(图层) ‌:类似PS的图层概念,支持多图层叠加显示,分为瓦片图层、矢量图层等类型。
  • ‌Source(数据源) ‌:定义图层的数据来源,支持OSM、高德瓦片、GeoJSON等多种格式。
  • ‌Control(控件) ‌:地图自带的交互组件,比如缩放按钮、比例尺、全屏控件等。
  • ‌Interaction(交互) ‌:实现用户与地图的拖拽、缩放、绘制等操作能力。

三、第一个基础地图示例

完整可运行的最简地图代码,直接复制到HTML文件中即可打开查看效果:

xml 复制代码
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol/ol.css">
  <style>
    #map {
      width: 100%;
      height: 500px;
    }
  </style>
</head>
<body>
  <div id="map"></div>
  <script>
    // 初始化地图
    const map = new ol.Map({
      target: 'map', // 绑定页面的DOM容器
      layers: [
        // 添加OSM开源底图
        new ol.layer.Tile({
          source: new ol.source.OSM()
        })
      ],
      view: new ol.View({
        // 将经纬度转换为Web墨卡托投影坐标
        center: ol.proj.fromLonLat([116.404, 39.915]),
        zoom: 10 // 初始缩放级别
      })
    })
  </script>
</body>
</html>

四、常用基础操作

  1. ‌切换投影坐标系‌
  • 常用的两种投影:EPSG:4326(WGS84经纬度坐标系)、EPSG:3857(Web墨卡托投影,网页地图通用)
  • 坐标转换示例:
javascript 复制代码
javascript
import { fromLonLat, toLonLat } from 'ol/proj'
// 把GPS经纬度转为Web墨卡托坐标
const webPoint = fromLonLat([116.4, 39.9])
// 把Web墨卡托坐标转回GPS经纬度
const gpsPoint = toLonLat(webPoint)
  1. ‌添加自定义标记点 ‌
    通过矢量图层添加点位标记,支持自定义图标样式:
php 复制代码
javascript
// 创建矢量图层
const vectorLayer = new ol.layer.Vector({
  source: new ol.source.Vector()
})
map.addLayer(vectorLayer)

// 创建标记点要素
const pointFeature = new ol.Feature({
  geometry: new ol.geom.Point(fromLonLat([116.404, 39.915]))
})
vectorLayer.getSource().addFeature(pointFeature)
  1. ‌绑定地图点击事件 ‌
    监听用户点击地图的操作,获取点击位置的要素信息:
javascript 复制代码
javascript
map.on('click', (evt) => {
  map.forEachFeatureAtPixel(evt.pixel, (feature) => {
    console.log('点击的要素属性:', feature.getProperties())
  })
})
相关推荐
迅猛龙办公室5 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
小狼154545 小时前
浏览器扩展脚本为什么有时候不生效:注入时机、iframe 和单页路由,多多开票助手
前端·chrome
じòぴé南冸じょうげん5 小时前
油猴脚本突然发现变成灰色了,无法使用?页面不生效?刷新页面没反应?
前端
Csvn7 小时前
组合式 API(Composition API)
前端
火柴就是我8 小时前
Android 打包报错 25.0.3
android·前端
BD_Marathon8 小时前
消息对象中字段的说明
java·前端·python
八荒启·交互动画8 小时前
Web特效025—用 Canvas 2D 做Web特效的定义与边界:这支画笔能做到哪一步
前端·webgl·网页特效·八荒启-交互动画·八荒启
Ai-_Man8 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
excel9 小时前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒10 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端