当前位置: 首页 > 工具软件 > GeoJSON > 使用案例 >

js上传geojson文件,读取geojson文件中的坐标。

太叔凌龙
2023-12-01

首先来看看什么是geojson文件。

就是这样的:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              91.373291015625,
              38.66835610151506
            ],
            [
              89.769287109375,
              37.76202988573211
            ],
            [
              93.2958984375,
              36.90597988519294
            ],
            [
              94.163818359375,
              37.90953361677018
            ],
            [
              93.636474609375,
              39.2407625100131
            ],
            [
              91.373291015625,
              38.66835610151506
            ]
          ]
        ]
      }
    }
  ]
}

这就是一个简单的geojson文件。如果我们做文件上传,需要取到其中的coordinates,也就是每一个坐标,怎么做呢:(仅展示核心代码)

//选择文件
		$("#displayfile").change(function (that) {
			var val = $(this).val();
			console.log($("input[type='file']"));
			if (val.split(".")[1] == 'json' || val.split(".")[1] == 'geojson') {
				$("#jiaInput").val($(this).val())
			} else {
				alert("请选择geojson文件格式");
			}
			var str = "";
			var obj = document.getElementById("displayfile");
			var length = obj.files.length;
			var reader = new FileReader();//新建一个FileReader
			reader.readAsText(obj.files[0], "UTF-8");//读取文件
			reader.onload = function (evt) { //读取完文件之后会回来这里
				var fileString = evt.target.result; // 读取文件内容
				console.log(JSON.parse(fileString))
				var fileJson = JSON.parse(fileString);
				console.log(fileJson.features[0].geometry.coordinates[0][0])//取到第一个json坐标点
			}
			for (var i = 0; i < length; i++) {
				$(".FileArea").html("");;
				var temp = obj.files[i].name;
				str += "<div>" + temp + "</div>";
			}
			$(".FileArea").append(str);
		})

这样就可以取到坐标点了,如果想取到每一个坐标点。进行一次遍历就好了。

 类似资料: