2011-09-01 61 views
2

製作矢量層GeoJSON的我用來做GML載體是這樣的:在openlayer

layer = new OpenLayers.Layer.GML("based", 
     "./parser2.php", 
     { 
      isBaseLayer: true, 
      format: OpenLayers.Format.GeoJSON, 
      styleMap: new OpenLayers.StyleMap(mystyle), 
      units:"m", 
      maxResolution: 0.2, 
      minResolution: 0.01 
     }) 

map.addLayer(layer); 

,但現在貶值了多個存在的我需要使用OpenLayers.Layer.Vector,但我不能贏得成功閱讀geoJon文件。 我試過像這樣:

var test = new OpenLayers.Layer.Vector("test", { 
    strategies: [new OpenLayers.Strategy.Fixed()], 
    protocol: new OpenLayers.Protocol.HTTP({ 
     isBaseLayer: true, 
     url: "data.json", 
     styleMap: myStyles, 
     format: new OpenLayers.Format.JSON() 
     }) 
    }); 
map.addLayer(test); 

但很不幸的是它不工作。

你有什麼線索嗎?

感謝

回答

2

我用在以下網頁中描述的步驟,以GeoJSON格式導出數據添加到層:http://thinkwhere.wordpress.com/2011/06/26/geocommons-geojson-in-openlayers/ 作爲您的GeoJSON的已經是正確的格式不添加{"type": "FeatureCollection", "features": ...}圍繞GeoJSON的字符串,如本例。

用簡單的英語,步驟是:

  1. 沒有選擇讀取數據創建一個新的OpenLayers.Layer.Vector層。
  2. 您自己閱讀網址。
  3. 在讀取完成時調用的回調函數中,創建一個OpenLayers.Format.GeoJSON()對象,用它從GeoJSON字符串讀取要素,然後將要素添加到圖層。