You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无效GeoJSON对象问题:如何在Leaflet地图中绘制JSON坐标

修复Leaflet中无效GeoJSON的问题

我帮你排查了一下你的GeoJSON问题,主要有两个地方不符合规范导致无效:

1. JSON内容被截断

你提供的最后一个Feature的geometry部分写成了"coor...,这明显是内容不完整,直接导致JSON语法错误。

2. 缺少Geometry类型字段

GeoJSON规范强制要求每个geometry对象必须包含type字段,你的前两个Feature的geometry都没有指定类型——从坐标格式来看,你的数据是点位,应该设置type: "Point"。

修复后的完整GeoJSON代码

var location = {
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point", // 补充Point类型,符合GeoJSON规范
        "coordinates": [80.2066734649931, 13.0187039189613]
      },
      "properties": {
        "assetStatus": "FULL",
        "id": 1747,
        "item": "53 Trailer"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point", // 补充Point类型
        "coordinates": [80.2072495864164, 13.0191043036246]
      },
      "properties": {
        "assetStatus": "EMPTY",
        "id": 1746,
        "item": "53 Trailer"
      }
    }
    // 如果有第三个Feature,记得补全完整的coordinates数组和type字段
  ]
};

在Leaflet中加载修复后的GeoJSON

你可以用Leaflet的L.geoJSON()方法加载这个数据,还能根据属性自定义标记样式、绑定弹窗:

// 假设你已经初始化了地图实例map
L.geoJSON(location, {
  pointToLayer: function(feature, latlng) {
    // 根据assetStatus设置不同颜色的标记
    var markerColor = feature.properties.assetStatus === "FULL" ? "green" : "red";
    return L.circleMarker(latlng, {
      radius: 8,
      fillColor: markerColor,
      color: "#000",
      weight: 1,
      opacity: 1,
      fillOpacity: 0.8
    });
  },
  onEachFeature: function(feature, layer) {
    // 绑定弹窗显示点位属性
    layer.bindPopup(`
      <strong>Item:</strong> ${feature.properties.item}<br>
      <strong>Status:</strong> ${feature.properties.assetStatus}<br>
      <strong>ID:</strong> ${feature.properties.id}
    `);
  }
}).addTo(map);

额外检查建议

  • 如果有更多Feature,确保每个geometry的type和coordinates格式匹配(比如Point对应[经度,纬度]数组,LineString对应数组的数组)
  • 可以用JSON校验工具检查你的JSON是否存在语法错误,确保格式完全合规

内容的提问来源于stack exchange,提问作者laz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:04:14