我正在使用Google Apps腳本通過調用jsonStringify將Google電子表格中的數據格式化爲geoJSON。我的代碼從this original example修改。在電子表格中的每一行代表一個國家,包含相關GeoJSON的多邊形數據單細胞:如何強制jsonStringify輸出不帶引號的數組?
[[[74.92,37.24],[74.57,37.03],...[73.31,37.46],[74.92,37.24]]]
但由於該單元格不包含數字,jsonStringify是解析它作爲一個字符串,返回此:
"coordinates":["[[[74.92,37.24],[74.57,37.03],...[73.31,37.46],[74.92,37.24]]]"]
...我不能使用,因爲引號使它成爲無效的geoJSON。當我輸入一個單獨的數字時,jsonStringify會返回它沒有引號,我假設它是因爲它認識到它是一個數字。有什麼方法可以強制它將多邊形數據解釋爲數字或以其他方式逃避引號?這裏是我的代碼的相關章節:
function getObjects(data, keys) {
var objects = [];
var headers = getHeaders(sheet, activeRange, 1);
var zip = function(keys, data) {
var obj = {};
for (var i = 0; i < keys.length; i++) {
obj[keys[i]] = data[i];
}
return obj;
};
for (var i = 0; i < data.length; i++) {
var obj = zip(headers, data[i]);
//this is the polygon data
var poly = obj[settings.poly];
var coordinates = [poly];
// If we have an id and polygon data
if (obj[settings.id] && poly) {
// Define a new GeoJSON feature object
var feature = {
type: 'Feature',
// Get ID from UI
id: obj[settings.id],
geometry: {
type: 'MultiPolygon',
// Get coordinates from UIr
coordinates: coordinates
},
// Place holder for properties object
properties: obj
};
objects.push(feature);
}
}
return objects;
}
非常感謝!我能夠解決你的問題。 – wbend