webgis系统

先上效果图

在这里插入图片描述

使用 OpenLayers 和 Vue 构建重庆行政区划地图

在本文中,我们将介绍如何使用 OpenLayers 和 Vue 构建一个重庆行政区划地图,并展示区域相关信息。通过点击地图上的行政区划区域,可以高亮显示该区域,并更新表格中的数据。本文将详细讲解实现这一功能的各个方法。

功能解析

初始化地图和加载GeoJSON

我们首先在 mounted 生命周期钩子中调用 initMaploadGeoJSON 方法来初始化地图并加载重庆的行政区划数据。

mounted() {
   
  this.initMap();
  this.loadGeoJSON();
}

initMap 方法
initMap 方法用于初始化地图,并设置地图的中心和缩放级别。我们在这里定义了地图的投影、中心位置和缩放级别,并监听了地图的点击事件。

initMap() {
   
  this.map = new Map({
   
    target: 'map',
    layers: [],
    view: new View({
   
      projection: 'EPSG:4326',
      center: [108, 30.2],
      zoom: 8,
    }),
  });
  this.map.on('singleclick', this.handleMapClick);
}

loadGeoJSON 方法
loadGeoJSON 方法用于加载重庆的行政区划 GeoJSON 数据,并初始化两个图层:一个用于显示行政区划,一个用于显示红色的点。加载完成后,调用 addPoints 和 fetchAndAddNames 方法来添加点和区域名称。

loadGeoJSON() {
   
  const vectorSource = new VectorSource({
   
    url: 'https://geo.datav.aliyun.com/areas_v3/bound/500000_full.json',
    format: new GeoJSON(),
  });

  this.vectorLayer = new VectorLayer({
   
    source: vectorSource,
    style: this.styleFunction,
  });
  this.map.addLayer(this.vectorLayer);

  const pointSource = new VectorSource();
  this
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值