我应该如何迁移现有的 Leaflet 脚本以将 kml 文件上传到 React-Leaflet 中的 运行
How should I migrate an existing Leaflet script to upload kml files to run in React-Leaflet
我想知道如何将下面的 javascript 代码(插件)迁移到 React 中的 运行。它允许在 html 中将 kml 文件上传到传单 运行ning 但在 React-Leaflet
中不起作用
https://www.npmjs.com/package/leaflet-filelayer
我已经在使用一个版本的 Leaflet for React,但它没有允许在地图上上传 kml 文件的对象...
感谢指导
创建一个自定义组件,您将在安装后加载传单文件图层库并将其与 togeojson
库一起导入。
因此安装并导入这两个库
import togeojson from 'togeojson'
import fileLayer from 'leaflet-filelayer'
调用fileLayer(null, L, togeojson)
可以使用L.Control.fileLayerLoad
(Source)
然后创建你在官方库中看到的组件并将逻辑放在useEffect下
...imports
fileLayer(null, L, togeojson);
...
export default function LeafletFileLayer() {
const map = useMap();
useEffect(() => {
const control = L.Control.fileLayerLoad({
fitBounds: true,
layerOptions: {
style: style,
pointToLayer: function (data, latlng) {
return L.circleMarker(latlng, { style: style });
}
}
});
control.addTo(map);
control.loader.on("data:loaded", function (e) {
var layer = e.layer;
console.log(layer);
});
}, [map]);
return null;
}
这样使用
<MapContainer ...>
...
<LeafletFileLayer />
</MapContainer>
我在沙箱上上传了来自官方传单网站的 geojson 和一个 kml 以便能够对其进行测试。您必须先下载它们。
我想知道如何将下面的 javascript 代码(插件)迁移到 React 中的 运行。它允许在 html 中将 kml 文件上传到传单 运行ning 但在 React-Leaflet
中不起作用https://www.npmjs.com/package/leaflet-filelayer
我已经在使用一个版本的 Leaflet for React,但它没有允许在地图上上传 kml 文件的对象...
感谢指导
创建一个自定义组件,您将在安装后加载传单文件图层库并将其与 togeojson
库一起导入。
因此安装并导入这两个库
import togeojson from 'togeojson'
import fileLayer from 'leaflet-filelayer'
调用fileLayer(null, L, togeojson)
可以使用L.Control.fileLayerLoad
(Source)
然后创建你在官方库中看到的组件并将逻辑放在useEffect下
...imports
fileLayer(null, L, togeojson);
...
export default function LeafletFileLayer() {
const map = useMap();
useEffect(() => {
const control = L.Control.fileLayerLoad({
fitBounds: true,
layerOptions: {
style: style,
pointToLayer: function (data, latlng) {
return L.circleMarker(latlng, { style: style });
}
}
});
control.addTo(map);
control.loader.on("data:loaded", function (e) {
var layer = e.layer;
console.log(layer);
});
}, [map]);
return null;
}
这样使用
<MapContainer ...>
...
<LeafletFileLayer />
</MapContainer>
我在沙箱上上传了来自官方传单网站的 geojson 和一个 kml 以便能够对其进行测试。您必须先下载它们。