我正在开发一个角度的应用程序,它使用传单地图来显示一些图层,我试图使用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"
答案 0 :(得分:2)
Leaflet的Typed Definition指定geoJSON
factory接受GeoJSON Object(spec)作为第一个参数。
作为第一个参数传递的对象是Point
类型Geometry Object(spec),它扩展了GeoJSON对象。因此,您应该通过明确将对象声明为testBuf.putDouble(0*sizeOfDouble, 1.0);
testBuf.putDouble(1*sizeOfDouble, 2.0);
testBuf.putDouble(2*sizeOfDouble, 3.0);
testBuf.putDouble(3*sizeOfDouble, 4.0);
for (int i = 0; i < numberOfDoubles; ++i) {
System.out.println("testBuf[" + i + "]: " + testBuf.getDouble(sizeOfDouble*i));
}
来表现良好:
geojson.Point
JavaScript中的Leaflet实际上是accepts more types作为L.geoJSON
factory的第一个参数:
FeatureCollection
,Feature
或Geometry object)