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);
		})

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue.js是一个流行的JavaScript框架,用于构建用户界面。OpenLayers是一个开源的JavaScript库,用于在Web上显示交互式地图。结合Vue.js和OpenLayers,可以实现读取和展示GeoJSON数据文件的功能。 首先,你需要在Vue.js项目安装OpenLayers库。可以通过npm或者yarn来安装OpenLayers依赖: ``` npm install ol ``` 或者 ``` yarn add ol ``` 安装完成后,在Vue组件引入OpenLayers库: ```javascript import 'ol/ol.css'; import { Map, View } from 'ol'; import GeoJSON from 'ol/format/GeoJSON'; import VectorLayer from 'ol/layer/Vector'; import VectorSource from 'ol/source/Vector'; export default { mounted() { this.loadGeoJSON(); }, methods: { loadGeoJSON() { // 读取GeoJSON文件 fetch('path/to/your/geojson/file.geojson') .then(response => response.json()) .then(data => { // 创建矢量源 const vectorSource = new VectorSource({ features: new GeoJSON().readFeatures(data), }); // 创建矢量图层 const vectorLayer = new VectorLayer({ source: vectorSource, }); // 创建地图 const map = new Map({ target: 'map', // HTML元素的id,用于显示地图 layers: [vectorLayer], view: new View({ center: [0, 0], // 地图心点的坐标 zoom: 10, // 地图缩放级别 }), }); }); }, }, }; ``` 上述代码,`loadGeoJSON`方法用于读取GeoJSON文件并创建地图。首先使用`fetch`函数获取GeoJSON文件数据,然后使用`GeoJSON`格式化器将数据转换为矢量要素。接着,创建矢量源和矢量图层,并将矢量图层添加到地图。最后,创建地图对象并显示在指定的HTML元素(通过`target`属性指定)。 请注意,上述代码的`path/to/your/geojson/file.geojson`需要替换为实际的GeoJSON文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值