在Vue中使用Supermap For Leaflet相关问题

在Vue中使用Supermap For Leaflet相关问题

在使用超图封装的leaflet时,尤其是在vue中使用,会有诸多问题,下面是在开发中遇到的问题以及解决思路。

导入问题

在引入时,官网的引入方式最新版为局部引入,存在一定问题(可能为个人原因),这时需要切换引入方式,对于其封装leaflet,
首先安装其官网配置好相关参数,这里仅提供引入方式修改
如下代码:
引入时需要注意全局引入以及局部引入

一下引入方式都试试

import L from '@supermap/iclient-leaflet/node_modules/leaflet'
import { GetFeaturesByGeometryParameters } from '@supermap/iclient-leaflet'
import '@supermap/iclient-leaflet/dist/iclient-leaflet.js'
import '@supermap/iclient-leaflet/dist/iclient-leaflet.css'

样式文件可以在 index.html 中引入
这样,就引入成功了,但其函数,开头为小写,如Tianditulayertianditulayer

默认 icon 无法找到问题

在使用过程中,发现 vue 中修改图标似乎存在问题,同时默认图标似乎无法找到位置,于是修改引入方式

在使用 Leaflet 进行 Vue2 开发时,如果出现找不到 marker-icon-2x.png 的错误,通常是由于引用的 Leaflet 样式文件中使用了相对路径,而这些图片文件的路径无法正确地解析。要解决这个问题,您可以尝试以下方法:

  1. 在您的 Vue2 项目中安装 Leaflet 的 CSS 文件。您可以通过 NPM 或 Yarn 来安装:

    csharpCopy codenpm install leaflet
    或
    yarn add leaflet
    
  2. 在您的 Vue2 项目中的 public 文件夹下创建一个名为 leaflet 的文件夹,并将以下文件从 Leaflet 的安装目录中复制到该文件夹中:

    bashCopy codeleaflet.css
    images/marker-icon.png
    images/marker-icon-2x.png
    images/marker-shadow.png
    

    注意:这里的 images 文件夹必须放在 leaflet 文件夹中,而不能直接放在 public 文件夹下。

  3. 在您的 Vue2 项目中的 index.html 文件中,将 Leaflet 样式文件的引用路径从相对路径改为绝对路径:

    htmlCopy code
    <link rel="stylesheet" href="/leaflet/leaflet.css">
    

    注意:这里的 / 表示项目根目录,具体路径应该根据您的项目结构进行调整。

  4. 在您的 Vue2 项目中,在需要使用 Leaflet 的组件中,按照 Leaflet 的文档进行初始化和使用。在使用 Marker 时,可以直接使用默认的图标,不需要再设置图标路径:

    javascriptCopy codeimport L from 'leaflet';
    
    export default {
      mounted() {
        const map = L.map('map').setView([51.505, -0.09], 13);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
          attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',
          maxZoom: 18,
        }).addTo(map);
        L.marker([51.5, -0.09]).addTo(map);
      },
    };
    

这样,您应该就可以成功地在 Vue2 中使用 Leaflet,并且不再出现找不到 marker-icon-2x.png 的错误了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雲墨知秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值