方法:我目前使用turf.js進行地理處理,作爲broader mapping project的一部分;我的工作流程是這樣的:人口普查的可以使用turf.js來查找和修復不良的幾何幾何?
- 拉以GeoJSON爲全縣
- 水多邊形拉GeoJSON的瓷磚來自OSM全縣面積
- Recursively pull的大片,並且每個水魔方爲
- 在腳本中,
turf.merge
the water tile成一個單一的多面 - 在腳本中,recursively
turf.intersect
each tract polygon兌水MULTIPOLYGON - 在SCR IPT,
turf.erase
the water area from the tract polygon如果它相交 - 轉儲水擦除大片到文件
問題:由於通過在步驟3中每個水瓦片我的過程進行迭代,它擊中一個特定圖塊並開始引發此錯誤:
/Users/wboykinm/github/tribes/processing/water/node_modules/turf/node_modules/turf-intersect/index.js:45
if(poly2.type === 'Feature') geom2 = poly2.geometry;
^
TypeError: Cannot read property 'type' of null
at Object.module.exports [as intersect] (/Users/wboykinm/github/tribes/processing/water/node_modules/turf/node_modules/turf-intersect/index.js:45:11)
at Object.<anonymous> (/Users/wboykinm/github/tribes/processing/water/piranha.js:26:14)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
。 。 。這繼續所有後續的迭代。只要發生錯誤,trao geojson文件格式不正確,不會在任何查看器中加載。
什麼是最令人費解的是,當我穿過草坪腳本按順序運行所有的瓷磚這個錯誤只發生。 當我只運行有問題的拼貼時,腳本就會成功。如果我將所有的水圖塊合併到一個單一的geojson文件中,並且它直接對着tracts文件,該腳本還會導致格式不正確的geojson。另外一個複雜的問題是,如果我將水磚合併到一個文件中,那麼整個過程都可以正常工作,然後將其交給QGIS並手動運行「差異」地理處理;沒有錯誤,有效的輸出幾何。
所有的跡象都指向無效幾何問題,可能與瓦片邊界或我合併水多邊形的方式有關。我怎樣才能找到不好的幾何圖形並使用手頭的工具(turf.js)來修復它?
交叉發佈爲http://gis.stackexchange.com/q/188378/115 – PolyGeo