您好,我面临这个错误,l.geoJson.ajax 不是函数。我不明白为什么我会遇到这个错误。我在某处读到我们必须将
leaflet.ajax.min.js
文件放在根目录中,但它仍然不起作用。有人可以向我解释一下我做错了什么吗?这是js代码:
map = L.map('hmap',{center: [53.15, -6.7],zoom: 10});
// OSM Baselayer
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);
var kildareStyle = {
"fillColor": "#CC9933",
"color": "#000000",
"weight": 2,
"fillOpacity": 0.2
};
var pointStyle = {
radius: 8,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
};
var kildare = new L.geoJson.ajax('assets/kildare.geojson', {style:kildareStyle}).addTo(map);
// var points = new L.GeoJSON.AJAX('assets/kildare.geojson').addTo(map);
var heat = L.heatLayer(heat_points, {radius:12,blur:25,maxZoom:11}).addTo(map);
有人可以向我解释一下我做错了什么吗?
此答案适用于那些尝试使用
leaflet-ajax
实现网络应用程序的人。
我创建了这个问题https://github.com/calvinmetcalf/leaflet-ajax/issues/60 - 最好检查一下,看看是否有比我聪明的人发布了更好的答案。我在那里写了这个:
我找不到任何有关如何让此插件在 https://www.npmjs.com/package/react-leaflet(即 React 或任何 WebApp)项目中工作的信息。我必须执行以下操作 - 哦,它也是一个 Typescript 项目,但在解决这个问题之后,似乎我不需要修改
tsConfig.ts
,尽管理论上以下更改将在 IDE 中有所帮助。然而,尽管指定了一个目录,我看不到正在创建的类型目录,也看不到正在生成的 .d.ts
文件(此类目录和文件在此更改之前已经存在)。也许这仅适用于本地 .js
文件,而不是 node_modules
中的文件:
// tsConfig.ts
"compilerOptions": {
...
"emitDeclarationOnly": true,
"declarationDir": "./types",
}
// App.tsx
import "./init"; // necessary to have a definition for global
import "leaflet-ajax";
import L, {
...
} from "leaflet";
import {
MapContainer,
...
} from "react-leaflet";
//init.js
window.global ||= window;
我不确定是否有更好的方法来实现这一点,尽管一方面,在使用 Typescript 时拥有一个
.d.ts
文件(例如 @types/leaflet-ajax
)会很有帮助。
如果有更好的方法请告诉我们。如果没有,您可以将此信息添加到自述文件中吗?
一定要看看https://github.com/calvinmetcalf/leaflet-ajax/issues/60看看是否有更好的答案。