删除 GeoJson 高程值的小数

Delete decimals of a GeoJson elevation values

我有一个如下所示的 GeoJson 文件:

{
"type": "FeatureCollection",
"features": [
{
  "type": "Feature",
  "properties": {
    "name": "first"
  },
  "geometry": {
    "type": "LineString",
    "coordinates": [
      [
        22.59323,
        44.71464,
        233.6
      ],
      [
        22.59274,
        44.71425,
        231.8
      ],
      [
        22.59264,
        44.71405,
        230.7
      ],.........

坐标中每隔三个值表示该点的海拔高度。有什么(非手动)方法可以从这个值中删除小数点吗?我想到了类似正则表达式的东西,使用 Notepad++,但我不知道该怎么做。

您可以使用正则表达式。您可以尝试查找连续的几个数字,然后是一个点。

/((\d\d\d?)\.(.*)/

找到两到三个数字,一个点,然后是线上的任何其他内容。您可以使用这样的方式替换它:。这需要括号内的第一位和第二位(省略句点)。

遍历要素,然后遍历几何体并在高程上使用 Math.floor()

featureCollection.features.forEach(function (feature) {
    feature.geometry.coordinates.forEach(function (coordinates) {
        coordinates[2] = Math.floor(coordinates[2]);
    });
});