我正在尝试使用 Cesium javascript 库在 dart 中加载 WMS 地图。我可以使用以下代码从 .html 文件中加载正确的地图:
<script>
var widget = new Cesium.CesiumWidget('cesiumContainer', {
imageryProvider : new Cesium.WebMapServiceImageryProvider({
url: "http://10.1.10.74:8080/geoserver/wms",
layers : 'planet_osm_roads,planet_osm_polygon,planet_osm_line,planet_osm_point'
})
});
</script>
但是,当我尝试从 .dart 文件中加载它时,CesiumWidget 似乎回退并使用默认的 BingMapsImageryProvider 而不是 WebMapService 提供程序。这是我在 .dart 中使用的代码
void main() {
final ces_widget = context['Cesium']['CesiumWidget'];
final wms = context['Cesium']['WebMapServiceImageryProvider'];
String url = "http://10.1.10.74:8080/geoserver/wms";
var provider = new JsObject(wms, [url, 'planet_osm_roads,planet_osm_polygon,planet_osm_line,planet_osm_point']);
if(provider['ready'] == true) {
var widget = new JsObject(ces_widget, ['cesiumContainer', {'imageryProvider' : provider}]);
}
}
除了 tileHeight、tileWidth 和 ready 之外,provider 的所有属性都为空。有谁知道为什么没有创建 WMS 提供程序?
Cesium Widget 正在创建并正在加载地图,它只是从默认的 Bing Provider 加载。