前端学习openLayers配合vue3(图层中心点的偏移)

有了上一步的学习,我们知道了如何创建一个地图,现在我们来尝试更改一下图层的中心点

关键代码

  let view = map.getView();//获取视图层
  let center = view.getCenter();
  //表示当前中心点的位置,调增经纬度就可以进行位置的便宜,下移,左移右移也同理
  console.log(center);//[经度,纬度]
center[1] -= 0.1;
  view.setCenter(center);//设置中心点位置
  map.render();//重新渲染地图

完整代码

复制代码
<script setup>
import { onMounted, reactive, ref } from "vue";
import { Map, View } from "ol";
import TileLayer from "ol/layer/Tile";
import { XYZ } from "ol/source";
import { fromLonLat } from "ol/proj";
defineProps({
  msg: String,
});
let map = reactive("");
let view = reactive("");
onMounted(() => {
  initMap();
});
let initMap = () => {
  (view = new View({
    center:[114.305469,30.592876],
    // center: fromLonLat([114.08, 30.59]),
    zoom: 10,
    projection:'EPSG:4326'
  })),
    (map = new Map({
      target: "map", //挂载视图的容器
      layers: [
        new TileLayer({
          source: new XYZ({
            url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
            wrapX: false,
          }),
        }), //图层
      ],

      //视图
      view: view,
    }));
};
let up = () => {
  let view = map.getView();//获取视图层
  let center = view.getCenter();
  //表示当前中心点的位置,调增经纬度就可以进行位置的便宜,下移,左移右移也同理
  console.log(center);
  center[1] -= 0.1;
  view.setCenter(center);//设置中心点位置
  map.render();//重新渲染地图
};
</script>

<template>
//在页面上展示对应的按钮 <div id="map"> <div class="btns"> <div @click="up">上移</div> <div>下移</div> <div>左移</div> <div>右移</div> </div> </div> </template> <style scoped> .btns { display: flex; position: fixed; left: 20px; bottom: 20px; z-index: 999; } .btns div { width: 100px; height: 40px; display: flex; justify-content: center; align-items: center; cursor: pointer; } .read-the-docs { color: #888; } #map { margin: 0; width: 100vw; height: 100vh; } </style>
复制代码

 

posted @   blackAge  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2024-01-03 大文件上传(分片上传)
点击右上角即可分享
微信分享提示