1

我有一个控制器对 Web 服务进行休息调用。它以 KML 文件响应,然后我需要获取响应并将其发送到打开的图层。我知道如何从控制器调用 Web 服务,但是如何在 .js 文件中使用它?

4

1 回答 1

3

稍微调整一下openlayers/KML 示例,其中“grails URL”是您的控制器/动作的 URL,它在响应中返回一些 KML:

var map = new OpenLayers.Map({
    div: "map",
    layers: [
        new OpenLayers.Layer.WMS(
            "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
            {layers: "basic"}
        ),
        new OpenLayers.Layer.Vector("KML", {
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.HTTP({
                url: **<grails URL>**
                format: new OpenLayers.Format.KML({
                    extractStyles: true, 
                    extractAttributes: true,
                    maxDepth: 2
                })
            })
        })
    ],
    center: new OpenLayers.LonLat(-112.169, 36.099),
    zoom: 11
});

显然,您需要根据自己的需要调整其他配置(中心、缩放等)。

于 2012-08-24T06:52:17.137 回答