如何从地理服务器请求 WFS 服务并将 geojson 数据加载为铯中的图层?
How to request WFS service from geoserver and load geojson data as a layer in cesium?
我是铯的新手。如何从 geoserver 动态加载 geojson 数据并将其加载到 cesium ?如果您愿意分享代码或分步过程
Cesium 目前不支持通过某种“WFSProvider”直接加载 GeoJSON。话虽这么说,Cesium 团队显然在未来的某个时候 plans to support WFS 3.0。
目前,您需要手动向 GeoJSON 的 WFS 服务器发出 HTTP 请求,并使用 Cesium.GeoJsonDataSource class 将其加载到 Cesium 中。这是一个例子:
想法是您在某处 运行 有一个 WFS 服务器。一旦你有了一个你可以访问的 WFS 服务器,你就可以写一些 JavaScript 来发出对 GeoJSON 的请求:
const geoJsonPromise = fetch('http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=namespace:featuretype').then(res => res.json());
以上代码将 return WFS 响应包裹在 JavaScript Promise 中。从这里,您可以执行类似...
const viewer = new Cesium.viewer('cesiumContainer');
geoJsonPromise.then(geoJson =>
viewer.dataSources.add(
Cesium.GeoJsonDataSource.load(
geoJson,
{ fill: Cesium.Color.PINK }
)
)
);
您还可以创建自己的“WFSProvider”,或者更准确地说,“WFSDataSource”class,以更通用的方式包装上述功能(可以支持更多数据格式)并将其抽象化。
我是铯的新手。如何从 geoserver 动态加载 geojson 数据并将其加载到 cesium ?如果您愿意分享代码或分步过程
Cesium 目前不支持通过某种“WFSProvider”直接加载 GeoJSON。话虽这么说,Cesium 团队显然在未来的某个时候 plans to support WFS 3.0。
目前,您需要手动向 GeoJSON 的 WFS 服务器发出 HTTP 请求,并使用 Cesium.GeoJsonDataSource class 将其加载到 Cesium 中。这是一个例子:
想法是您在某处 运行 有一个 WFS 服务器。一旦你有了一个你可以访问的 WFS 服务器,你就可以写一些 JavaScript 来发出对 GeoJSON 的请求:
const geoJsonPromise = fetch('http://example.com/geoserver/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=namespace:featuretype').then(res => res.json());
以上代码将 return WFS 响应包裹在 JavaScript Promise 中。从这里,您可以执行类似...
const viewer = new Cesium.viewer('cesiumContainer');
geoJsonPromise.then(geoJson =>
viewer.dataSources.add(
Cesium.GeoJsonDataSource.load(
geoJson,
{ fill: Cesium.Color.PINK }
)
)
);
您还可以创建自己的“WFSProvider”,或者更准确地说,“WFSDataSource”class,以更通用的方式包装上述功能(可以支持更多数据格式)并将其抽象化。