1

openLayers マップを作成し、ポップアップを実装したいと考えています。私はいくつかのグーグルが設立したリソースに従っています: http://lists.osgeo.org/pipermail/openlayers-users//2011-August/021680.html

コードは次のとおりです。

<script type="text/javascript">
   var map;
   var osm;
   var layer;
   var info;
   function init() {
         var bounds = new OpenLayers.Bounds(
                1160036.31025726, 7444371.48007091,
                1160792.70130936, 7444966.36493288
                );
         map = new OpenLayers.Map("map", {
                maxExtent: bounds,
 });
     osm =new OpenLayers.Layer.OSM({visibility: true});
     layer = new OpenLayers.Layer.WMS(
                "Working Field", "http://localhost:8080/geoserver/layer/wms",
                {
                layers: 'layer:layer',
                transparent: true,
                isBaseLayer: false
                },
                {
                sphericalMercator: true,                        
                opacity: 0.5
                }
            );


          map.addLayers([osm,layer]);
          map.zoomToExtent(bounds);
   info = new OpenLayers.Control.WMSGetFeatureInfo({
            url: "http://localhost:8080/geoserver/wms",
            //layerUrls: 'http://localhost:8080/geoserver/layer/wms',
    title: 'Identify features by clicking',
            layers: [acm],
    queryVisible: true,
    infoFormat: 'text/html',
    maxFeatures: 1,
    eventListeners: {
        getfeatureinfo: function(event) {
            if (event.text.indexOf("<table class=\"featureInfo\">") != -1){
                popup = new OpenLayers.Popup.FramedCloud(
                    "chicken", 
                    map.getLonLatFromPixel(event.xy),
                    null,
                    event.text,
                    null,
                    true
                ), {
                    autoSize: false,
                    maxSize: new OpenLayers.Size(5,5)
                };
                map.addPopup(popup);
            }
        }
    }
});
map.addControl(info);
  }
 </script>

何が間違っているかについての手がかりは役に立ちます。ありがとう!

4

1 に答える 1

0

実際のレイヤー:[acm]は定義されていません。もう1つ、次のような情報コントロールをアクティブにする必要があります。

info.activate();
于 2012-07-05T07:56:11.900 に答える