2012-06-12 24 views
2

好,添加的功能LonLat當我測試此代碼得到在的OpenLayers

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。可能我錯過了什麼?這也可以設置最大的可添加功能?

回答

5

lonlat並不總是被定義的。 試一下:

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

     } 
+1

它也適用於像'feature.geometry.getBounds()。getCenterLonLat() –