使用 Leaftejs 和 vuejs 进行图层控制

Posted

技术标签:

【中文标题】使用 Leaftejs 和 vuejs 进行图层控制【英文标题】:Layer control using leaftejs and vuejs 【发布时间】:2020-11-05 02:32:41 【问题描述】:

大家我是 NESAC(ISRO) 的初级开发人员。 我正在使用 vue JS 和 Leaflet JS 开发一个项目。所以我的任务是:-

    使用 Leaflet JS,我必须在屏幕上呈现地图。

    在渲染地图上的“n”个特定位置设置标记。

    创建一个带有各种实体复选框的侧边栏,例如城市、餐馆、公园等。

    开发一个 Vue 应用程序,我在 components 文件夹上创建不同的组件,以便我的所有组件都通过 App.vue 文件并在 index.html 上呈现,即我的浏览器。

    而且,现在我必须创建一个图层控制函数,这样我的每个实体都会得到不同的反应。例如。如果我点击侧边栏的餐厅复选框,那么我所有的餐厅传单标记都应该显示在屏幕上,但每个实体应该有不同的反应性。

Github Link.

【问题讨论】:

没有人会给你解决方案。请阅读how-to-ask first 我很抱歉我的提问方式。我是堆栈溢出的新手。这是我的第一个问题。你能帮我解决这个问题吗? @GrzegorzT。 在这里,我们针对某个问题提出具体问题。我们不会写出要求解决方案的问题列表 :) 例如,我已经有一些代码,但有些代码不起作用。你展示代码,最好是一些工作示例,社区会帮助你。就像在工作中的生活一样,您不会同时处理所有事情,而只处理一件事;)将这个问题列表分解为几个单独的线程。您正在处理未显示的地图,使用此问题和代码创建一个线程等。@RUP25 我对vue不太了解,但是我做了一组简单的例子说明如何在纯js中使用传单leaflet-examples祝你好运;) 【参考方案1】:

您可以为此使用 npm 包 - Vue2Leaflet

这里是文档:https://vue2-leaflet.netlify.app

以及带有 Vue.js 和传单的简单地图:

<template>

  <div style="height: 350px;">
    <div class="info" style="height: 15%">
      <span>Center:  center </span>
      <span>Zoom:  zoom </span>
      <span>Bounds:  bounds </span>
    </div>
    <l-map
      style="height: 80%; width: 100%"
      :zoom="zoom"
      :center="center"
      @update:zoom="zoomUpdated"
      @update:center="centerUpdated"
      @update:bounds="boundsUpdated"
    >
      <l-tile-layer :url="url"></l-tile-layer>
    </l-map>
  </div>
</template>

<script>
import LMap, LTileLayer from 'vue2-leaflet';

export default 
  components: 
    LMap,
    LTileLayer,
  ,
  data () 
    return 
      url: 'https://s.tile.openstreetmap.org/z/x/y.png',
      zoom: 3,
      center: [47.413220, -1.219482],
      bounds: null
    ;
  ,
  methods: 
    zoomUpdated (zoom) 
      this.zoom = zoom;
    ,
    centerUpdated (center) 
      this.center = center;
    ,
    boundsUpdated (bounds) 
      this.bounds = bounds;
    
  

</script>

它只是一个传单的包装器,您可以通过以下方式完全访问所有传单功能:

mounted() 
    this.$nextTick(() => 
      this.map = this.$refs.map.mapObject;
    );

我认为这对你来说是一个好的开始。

【讨论】:

以上是关于使用 Leaftejs 和 vuejs 进行图层控制的主要内容,如果未能解决你的问题,请参考以下文章

在R中使用栅格图层进行矩阵变换

分离 PDF 文件中的图层

在Arcmap中如何创建地图图层

怎么在手机中对CAD图纸进行图层和布局管理?

arcgis如何快速看空图层

ArcGIS应用(二十三)矢量图层要素分割方法(基于属性和空间分割)