首页 / 浏览问题 / 三维GIS / 问题详情
Cesium.Geocoder未提供geocoderServices
95EXP 2020年07月27日

Cesium.Geocoder在Cesium API (https://www.cesium.com/docs/cesiumjs-ref-doc/Geocoder.html) 提供了geocoderServices让我们可以指定自己的一到多个geocoder服务。

而在iClient3D的在Cesium API (http://support.supermap.com.cn:8090/webgl/Build/Documentation/Geocoder.html)中,貌似这换成了url,文档中也未提及指定这个url后会如何带入查询参数、响应的格式是怎样

1个回答

1,545EXP 2020年07月27日
您好,我不太理解您指定url的意思,方便的话能把代码私信发给我吗我帮您确认一下。

按Cesium API(https://www.cesium.com/docs/cesiumjs-ref-doc/Geocoder.html),在options的参数中指定我封装的geocoderServices数组就可以让Geocoder来访问我的geocoding service。

按iClient3D的API(http://support.supermap.com.cn:8090/webgl/Build/Documentation/Geocoder.html)在options的参数中有个url似乎可以指定来访问我的geocoding service,但实际上不起任何作用,依然是http://www.supermapol.com/iserver/services/localsearch/rest/searchdatas/China/poiinfos.jsonp?keywords=。可以假定iClient3D源码中的Geocoder.js和GeocoderViewModel.js与Cesium 1.37是不同实现。

创建的Geocoder的部分代码:

        var options = {
            url: "http://localhost:/geocoder",
            container : container,
            geocoderServices: services,
            scene: scene,
            viewer: viewer

        };
        new Cesium.Geocoder(options);

您好这个Url是用作访问BingMaps的路径,不是访问geocoding service的路径,目前GeocoderService接口只能通过外部服务访问地理编码,暂不支持自行封装地理编码服务,很抱歉给您带来的不便。

解决方案可不可以是:

  1. 将这个功能需求的实现加入到新版本
  2. 提供iClient3D的源码,用户做相应的修改后,自行Make Build
您好您提出的解决方案可行性不太高,因为加入这个功能不仅需要修改webgl包中的cesium.js,里面牵扯的东西会很多,这个问题我会尽快上报需求。
...