删除 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]);
});
});
我有一个如下所示的 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]);
});
});