亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行geojson圖層批量坐標轉換

發布時間:2021-12-13 18:45:41 來源:億速云 閱讀:409 作者:柒染 欄目:大數據

今天就跟大家聊聊有關如何進行geojson圖層批量坐標轉換,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

在沒有規律的坐標偏移情況下,如國內在線地圖偏移和經緯度轉換,可以進行方便進行單個坐標的轉換,轉換圖層就需要自己進行開發了。  
這里使用了coordtransform進行偏移坐標的轉換。

//引入fs和coordtransform庫
const fs = require('fs');
const coordtransform = require('coordtransform');
//geojson矢量對象處理
function dataByfeaturetype(_feature) {
    this.datafeature = _feature;
    this.featuretype = _feature.geometry.type;
    this.coords = _feature.geometry.coordinates;
    this.newcoords = [];
}
//點、線、面中數據坐標遍歷處理
dataByfeaturetype.prototype.handlePoint = function () {
    this.newcoords = coordtransform.wgs84togcj02(this.coords[0], this.coords[1]);
}
dataByfeaturetype.prototype.handleMultipointOrLinestring = function () {
    let _tempCoords = [];
    for (let _udx = 0; _udx < this.coords.length; _udx++) {
   //這個根據自己的需要,選擇坐標的偏移處理函數
        _tempCoords.push(coordtransform.wgs84togcj02(this.coords[_udx][0], this.coords[_udx][1]));
    }
    this.newcoords = _tempCoords;
}
dataByfeaturetype.prototype.handleMultiLineStringOrPolygon = function () {
    let _tempCoords = [];
    for (let _udx = 0; _udx < this.coords.length; _udx++) {
        let _evCoords = [];
        for (let _ndx = 0; _ndx < this.coords[_udx].length; _ndx++) {
//這個根據自己的需要,選擇坐標的偏移處理函數
            _evCoords.push(coordtransform.wgs84togcj02(this.coords[_udx][_ndx][0], this.coords[_udx][_ndx][1]));
        }
        _tempCoords.push(_evCoords);
    }
    this.newcoords = _tempCoords;
}
dataByfeaturetype.prototype.handleMultiPolygon = function () {
    let _tempCoords = [];
    for (let _udx = 0; _udx < this.coords.length; _udx++) {
        let _polygons = [];
        for (let _ndx = 0; _ndx < this.coords[_udx].length; _ndx++) {
            let _polygon = [];
            for (let _tdx = 0; _tdx < this.coords[_udx][_ndx].length; _tdx++) {
                _polygon.push(coordtransform.wgs84togcj02(this.coords[_udx][_ndx][_tdx][0], this.coords[_udx][_ndx][_tdx][1]));
            }
            _polygons.push(_polygon);
        }
        _tempCoords.push(_polygons);
    }
    this.newcoords = _tempCoords;
}
//根據圖層的不同類型,選擇處理方法
dataByfeaturetype.prototype.handleByType = function () {
    switch (this.featuretype) {
        case "Point":
            this.handlePoint();
            break;
        case "MultiPoint":
        case "LineString":
            this.handleMultipointOrLinestring();
            break;
        case "MultiLineString":
        case "Polygon":
            this.handleMultiLineStringOrPolygon();
            break;
        case "MultiPolygon":
            this.handleMultiPolygon();
            break;
    }
}
//獲取數據處理結果
dataByfeaturetype.prototype.getResult = function () {
    this.datafeature.geometry.coordinates = this.newcoords;
    return this.datafeature;
};
//輸入文件
fs.readFile('輸入geojson文件', {
    encoding: 'utf-8'
}, (err, res) => {
    if (err) return;
    let _geojsondata = JSON.parse(res);
    let _newfeatures = [];
    let _features = _geojsondata.features;
    for (let _fdx = 0; _fdx < _features.length; _fdx++) {
        let _feature = _features[_fdx];
        let _featurehandle = new dataByfeaturetype(_feature);
        _featurehandle.handleByType();
        _newfeatures.push(_featurehandle.getResult());
    }
    _geojsondata.features = _newfeatures;
  //輸出處理結果
    fs.writeFile("輸出geojson", JSON.stringify(_geojsondata), (err) => {
        console.log(err);
    });
});

看完上述內容,你們對如何進行geojson圖層批量坐標轉換有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌都县| 阿拉善盟| 威信县| 天峨县| 自贡市| 崇信县| 新野县| 额济纳旗| 奎屯市| 泰顺县| 洛隆县| 垣曲县| 文山县| 台南市| 淳安县| 正阳县| 吉隆县| 临夏县| 旬阳县| 东城区| 基隆市| 黔西县| 乌鲁木齐市| 嫩江县| 南部县| 乐陵市| 陇西县| 穆棱市| 江门市| 肇东市| 衡阳县| 怀远县| 墨玉县| 河曲县| 克拉玛依市| 托克托县| 如皋市| 务川| 中方县| 岫岩| 吉木萨尔县|