首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT-OpenLayers和OpenLayers.Format.WMSCapabilities

GWT-OpenLayers和OpenLayers.Format.WMSCapabilities
EN

Stack Overflow用户
提问于 2013-05-10 02:07:49
回答 1查看 533关注 0票数 0

我正在使用OpenLayers的Google Web Toolkit包装器。我正在尝试将WMS图层添加到地图中,但我需要解析功能文档才能获得可用的图层名称。我看到一个WMSCapabilities类在OpenLayers http://dev.openlayers.org/releases/OpenLayers-2.12/doc/apidocs/files/OpenLayers/Format/WMSCapabilities-js.html中可用,但是我似乎找不到它的实现。这个功能是否还不可用,或者它是否隐藏在某个地方,没有文档记录?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 03:55:53

我仍然不知道GWT实现是否可用,但是用Java包装原生javascript代码实际上相当容易。以下是我的解决方案:

代码语言:javascript
复制
import com.google.gwt.core.client.JsArrayString;

native JsArrayString getLayerNames(String capDoc) /*-{
    var toReturn = [];
    var parser = new $wnd.OpenLayers.Format.WMSCapabilities();
    var doc = parser.read(capDoc);
    for (var i in doc.capability["layers"]) {
        toReturn.push(doc.capability["layers"][i].name);
    }
    return toReturn;
}-*/;

然后,您可以使用以下命令访问它们:

代码语言:javascript
复制
JsArrayString layers = getLayerNames(getMyCapabilitiesDocumentAsString());
for (int i = 0; i < layers.length(); i++) {
    Window.alert("A layer name is " + layers.get(i));
}

变量doc是一个javascript数组,包含功能文档的全部内容,因此可以访问的不仅仅是层名称;只需提取所需内容即可。此外,创建一个解析器可能比每次调用方法时创建一个新解析器更好,但这是一个不同的练习;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16468208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档