3

さて、私がこのコードをテストしているとき

var map;
            function mapInit(element){
              map = new OpenLayers.Map(element);
              var osm = new OpenLayers.Layer.OSM(); 
              var vectors = new OpenLayers.Layer.Vector("Vector Layer", {renderers: renderer});  
              var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
              renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;         
              map.addLayers([osm, vectors]);
              map.zoomToMaxExtent();
              var add =  new OpenLayers.Control.DrawFeature(vectors,OpenLayers.Handler.Point, {
                  featureAdded: getInfoFeature,
                  multi: false
              });
              map.addControl(add);
              add.activate();
            } 
            function getInfoFeature(event){
                var coords = event.lonlat;
                console.log(coords);

            }

            mapInit('siteMap');

機能を追加するのはうまくいっていますが、座標は null です。そして、おそらく私は何かを逃しましたか?追加可能な機能の最大数を設定することも可能ですか?

4

1 に答える 1

6

lonlat は常に定義されているわけではありません。で試してください:

        function getInfoFeature(event){
            var coords = event.geometry.getBounds().getCenterLonLat();
            console.log(coords);

        }
于 2012-06-13T10:54:21.983 に答える