vue3+高德地图从后端一次请求多个geojson文件
并且后端返回来的是一个链接,通过这个链接下载geojson
引用chatgpt部分指引作答:
要使用 Vue3 和 AMap 加载多个 GeoJSON 文件,您可以使用 fetch 函数向您的后端 API 发出请求,该 API 将返回用于下载 GeoJSON 数据的 URL。 然后,您可以使用高德地图对象的addGeoJSON 方法将GeoJSON 数据添加到地图中。
以下是如何使用 Vue3 和 AMap 加载多个 GeoJSON 文件的示例:
<template>
<div id="map-container"></div>
</template>
<script>
import { onMounted } from 'vue';
import { Map } from 'vue-amap';
export default {
components: { Map },
setup() {
const mapOptions = {
zoom: 10,
center: [116.397428, 39.90923],
};
const addGeoJSONToMap = (url) => {
fetch(url)
.then((response) => response.json())
.then((data) => {
const { features } = data;
if (features && features.length > 0) {
// Add GeoJSON data to map
window.AMap.Map.addGeoJSON(features);
}
});
};
onMounted(() => {
// Load multiple GeoJSON files
const urls = [
'http://example.com/geojson1',
'http://example.com/geojson2',
'http://example.com/geojson3',
];
urls.forEach((url) => addGeoJSONToMap(url));
});
return { mapOptions };
},
};
</script>
在上面的示例中,我们使用 onMounted 钩子在挂载组件时加载 GeoJSON 文件。 我们使用指定的选项创建一个地图组件,并定义一个 addGeoJSONToMap 函数来加载 GeoJSON 数据并使用 addGeoJSON 方法将其添加到地图中。
请注意,您需要将 http://example.com/geojson1
http://example.com/geojson2
和 http://example.com/geojson3
替换为后端 API 返回的实际 URL。