小编DFW*_*rce的帖子

如何将 JSON 转换为 GeoJSON

我对 javascript 的学习非常陌生,我的基本知识已经碰壁了。我已经设置了一个 Leaflet 地图,我希望从 JSON 中的绳索上绘制基于 divIcon 的标记。通过我无数次尝试让它发挥作用的研究。我了解了为什么我的 JSON 文件不起作用,即使我在控制台中确认它正在被读取。我了解到 Leaflet 更喜欢它在 GeoJSON 中。所以我又花了几个小时研究如何转换它。我的大部分发现已经过时,不再适用或不适用于我。这是我通过严格的研究所做的尝试。

首先,我为我的测试 JSON 文件的路径设置了一个变量,定义如下。

var jsonData = "./data/tracking.json";
Run Code Online (Sandbox Code Playgroud)

在我尝试将 JSON 转换为 GeoJSON 时,我尝试了这个。

var outGeoJson = {}
outGeoJson['properties'] = jsonData
outGeoJson['type']= "Feature"
outGeoJson['geometry']= {"type": "Point", "coordinates":
    [jsonData['lat'], jsonData['lon']]}

console.log(outGeoJson)
Run Code Online (Sandbox Code Playgroud)

检查控制台,发现来自 JSON 文件的数组中的坐标未定义。

在此处输入图片说明

我对为什么会出现未定义的原因的搜索没有达到。我的理论可能是因为 JSON 在数组之前有一个位置键,而且它是一个数组。我继续寻找可能处理此问题的有效解决方案。我接下来尝试了这个解决方案。

var geojson = {
  type: "FeatureCollection",
  features: [],
};

for (i = 0; i < jsonData.positions.length; i++) {
  if (window.CP.shouldStopExecution(1)) {
    break;
  }
  geojson.features.push({
    "type": "Feature",
    "geometry": {
      "type": "Point",
      "coordinates": …
Run Code Online (Sandbox Code Playgroud)

javascript json geojson leaflet

5
推荐指数
1
解决办法
7997
查看次数

标签 统计

geojson ×1

javascript ×1

json ×1

leaflet ×1