无法创建 GeoJSON 层

Unable to create GeoJSON layer

我正在 angular 中开发一个应用程序,它使用 leaflet map 来显示一些图层,我正在尝试使用 GeoJSON,但我无法创建 L.geoJSON 图层。我正在尝试添加一个点,我发现的每一个资源都告诉我创建这个结构:

import { geoJSON } from 'leaflet';

geoJSON({
    type: "Point",
    coordinates: [lat,long]
});

但是当我为应用程序提供服务时出现此错误:

Argument of type '{ type: "Point"; coordinates: number[]; }' is not assignable to parameter of type 'GeoJsonObject'.
Object literal may only specify known properties, and 'coordinates' does not exist in type 'GeoJsonObject'.

type 之外唯一的 属性 是 bbox?

我确定我做错了什么,但我真的不明白是什么。

正在使用

"leaflet": "^1.3.1"
"@types/leaflet": "^1.2.5"
"@asymmetrik/ngx-leaflet": "^3.0.2"

Leaflet 的类型化定义指定 geoJSON factory accepts a GeoJSON Object (spec) 作为第一个参数。

您作为第一个参数传递的对象是 Point type Geometry Object (spec),它扩展了 GeoJSON 对象。因此,您只需 明确地 将您的对象声明为 geojson.Point:

就可以了
import { geoJSON } from 'leaflet';
import * as geojson from 'geojson';

geoJSON(<geojson.Point>{
    type: "Point",
    coordinates: [lng, lat] // Note that in GeoJSON, order is [LONG, LAT]
});

传单在JavaScript实际accepts more types as 1st parameter of L.geoJSON工厂: