2017-09-10 63 views
0

我想將txt,xls和csv文件上傳到小冊子中。首先,我正在嘗試它的txt文件。 Js將我的txt作爲js數組讀取。現在我想將我的js數組轉換爲geojson。但我在這裏困惑。需要一些關於我應該遵循的方式的方式。我很感激你的時間,並感謝你的迴應。如何將JavaScript數組轉換爲geojson數據?

$(function() { 
 
      document.getElementById('file').onchange = function() { 
 
\t \t \t \t debugger; 
 
       var file = this.files[0]; 
 
       var reader = new FileReader(); 
 
       reader.onload = function (progressEvent) { 
 
        // Entire file 
 
        console.log(this.result); 
 
        // By lines 
 
        var lines = this.result.split('\n'); 
 
        var list = []; 
 
        for (var line = 0; line < lines.length; line++) { 
 
         list.push(lines[line]); 
 
        } 
 
       }; 
 
       reader.readAsText(file); 
 
      }; 
 
     }); 
 
    

+0

包含在您的文件中的數據將會很有用。 – baao

+0

name:'Location A',category:'Store',street:'Market',lat:39.984,lng:-75.343 name:'Location B',category:'House',street:'Broad',lat: 39.284,lng:-75.833 name:'Location C',category:'Office',street:'South',lat:39.123,lng:-74.534 –

+0

這實際上是一個樣本數據 –

回答

0

根據在給定的github上的鏈接我想你可以這樣做,因爲我下面顯示了給定的情況下,映射但是對於一般的做法顯然是更好,如果你使用github geoJSON library或如果你喜歡冒險,你可以儘量延長下面的代碼...

var dataStr = "name: 'Location A', category: 'Store', street: 'Market', lat: 39.984, lng: -75.343, name: 'Location B', category: 'House', street: 'Broad', lat: 39.284, lng: -75.833, name: 'Location C', category: 'Office', street: 'South', lat: 39.123, lng: -74.534", 
 
    data = dataStr.split(/\s*,\s*(?=name)/g) 
 
        .map(function(d){ 
 
          return d.split(/\s*,\s*/) 
 
            .reduce(function(r,s){ 
 
               var [k,v] = s.replace(/\s*'|'\s*$/g,"") 
 
                  .split(":"); 
 
               return k === "name" || 
 
                k === "category" ? (r.properties[k] = v, r) 
 
                     : k === "lat" || 
 
                     k === "lng" ? (r.geometry.coordinates.unshift(+v), r) 
 
                        : r; 
 
              }, {type  : "feature", 
 
               geometry : {type : "Point", coordinates: [] }, 
 
               properties: {name : "", 
 
                  category: "" 
 
                  } 
 
               }); 
 
            }), 
 
    geoJSON = { type : "FeatureCollection", 
 
       features: data 
 
       }; 
 

 
console.log(geoJSON);

相關問題