您的位置:首页 > 教育 > 培训 > 宁波城乡建设网_吉林智能网站建设企业_如何快速推广自己的品牌_百度权重10的网站

宁波城乡建设网_吉林智能网站建设企业_如何快速推广自己的品牌_百度权重10的网站

2025/1/4 11:00:08 来源:https://blog.csdn.net/supermapsupport/article/details/144767352  浏览:    关键词:宁波城乡建设网_吉林智能网站建设企业_如何快速推广自己的品牌_百度权重10的网站
宁波城乡建设网_吉林智能网站建设企业_如何快速推广自己的品牌_百度权重10的网站

作者:刘大

前言

在使用iClient for MapboxGL/MapLibreGL项目开发中,往往会对接非EPSG:3857坐标系的地图,由于默认不支持,因此需引入mapboxgl-enhance/maplibre-gl-enhance扩展包。
在使用Vue等其他框架,通过npm包下载iClient包时,mapboxgl-enhance/maplibre-gl-enhance 没有npm包,应该如何引入使用呢?
本篇文章以iClient for MapboxGL为例,给大家讲解下。

使用指南

一、Vite打包环境

1.构建Vite+Vue3+iClient for MapboxGL的工程

由于之前有文章已经介绍过了,这里就直接贴出主要步骤,不详细阐述了
第一步:根据模板创建

npm create vite supermap-mapboxgl-app --template vue

第二步:下载iClient for MapboxGL

npm install @supermapgis/iclient-mapboxgl

第三步:加载EPSG:4326坐标系的地图和数据

<script setup>
import { ref, onMounted } from 'vue'
import mapboxgl from 'mapbox-gl'
onMounted(() => {mapboxgl.supermap.initMap('https://iserver.supermap.io/iserver/services/map-world/rest/maps/World').then(function (result) {var map = result.mapmap.addControl(new mapboxgl.NavigationControl(), 'top-left')})
})
</script>

此时,我们直接npm run dev运行,会有以下报错,无法显示
报错.png

2.设置externals外部扩展

第一步:Vite设置externals,需要下载vite-plugin-externals

npm i vite-plugin-externals -D

第二步:单独下载mapboxgl-enhance.js并在index.html里面引入
可通过http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2842下载iClient完整包获取

<body><div id="app"></div><script type="module" src="/src/main.js"></script><script type="text/javascript" src="/public/mapboxgl/mapbox-gl-enhance.js"></script>
</body>

第三步:在vite.config.js里面设置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteExternalsPlugin } from 'vite-plugin-externals'
export default defineConfig({plugins: [vue(),viteExternalsPlugin({'mapbox-gl': 'mapboxgl'})],
})

二、webpack打包环境

以上是Vite环境下得设置,若你使用得webpack打包,由于webpack已内置externals,在配置里面直接设置externals即可

方式一:index.html引入enhance.js 并添加externals

若使用VUE CLI构建的工程,需要在vue.config.js添加如下配置

module.exports={configureWebpack:{externals: {'mapbox-gl': 'mapboxgl'}}
}

反之,非Vue工程或自行构建的Vue工程,则在webpack.config.js里面设置

module.exports={externals: {'mapbox-gl': 'mapboxgl'}
}
方式二:externals直接设置为enhance.js的相对路径,无需在index.html引入
module.exports={configureWebpack:{externals: {'mapbox-gl': {root: 'mapboxgl',commonjs: '../../mapboxgl-enhance.js', //相对路径commonjs2: '../../mapboxgl-enhance.js',amd: '../../mapboxgl-enhance.js'}}}
}

至此 就成功引入mapboxgl-enhance扩展包了。
如果你使用的是iClient for MapLibreGL,那么和上面一样配置,下载 maplibre-gl-enhance.js引入,externals配置只需对应修改为’maplibre-gl‘,以webapck为例

module.exports={externals: {'maplibre-gl':'maplibregl'}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com