js上傳geojson文件,讀取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
            ]
          ]
        ]
      }
    }
  ]
}

這就是一個簡單的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);
		})

這樣就可以取到座標點了,如果想取到每一個座標點。進行一次遍歷就好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章