当前位置:   article > 正文

js上传geojson文件,读取geojson文件中的坐标。_js readfile读取geojson数据

js readfile读取geojson数据

首先来看看什么是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
            ]
          ]
        ]
      }
    }
  ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

这就是一个简单的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);
		})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/941076
推荐阅读
相关标签
  

闽ICP备14008679号