【问题标题】:Leaflet GeoJson传单 GeoJson
【发布时间】:2015-08-11 05:19:10
【问题描述】:

有人能解释一下为什么这个传单代码适用于可视化纽约州的 GeoJson 数据,但我无法绘制纽约市的数据。我对 QGIS 中的文件使用了相同的导出首选项。

我使用了以下链接中的数据:

纽约市 http://www.nyc.gov/html/dcp/html/bytes/districts_download_metadata.shtml

纽约州 http://cugir.mannlib.cornell.edu/bucketinfo.jsp?id=7865

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
 <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
 <link rel="stylesheet" href="style_blank.css" />
</head>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
 <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
 <script src="sdfgsdgdfgfdsgd.js"></script>
  <div id="map"></div>
  <script>

  var map = L.map('map',{
    center: [5,28],
    zoom: 3,
    minZoom: 2,
    maxZoom: 18
  });

  L.geoJson(data, {
    style: function (feature) {
        return {color: feature.properties.color};
    },
    onEachFeature: function (feature, layer) {
        layer.bindPopup(feature.properties.description);
    }
}).addTo(map);
</script>
</body>
</html>

【问题讨论】:

  • 你能把这个放到演示网站上吗?或者至少给我们看看geojson?

标签: leaflet geojson


【解决方案1】:

由于问题缺乏特异性,很难说问题出在哪里。不过,我有一个很好的猜测。

我按照您指向城市数据的链接下载了“Borough Boundaries”shapefile,然后将其导入 QGIS。坐标单位似乎是英尺或米,表明它是投影数据。 Leaflet 无法处理投影坐标;它需要未投影的纬度/经度(十进制度)坐标。您需要做的是按照以下步骤操作:

1) 找出数据所在的投影;

2) 使用 GIS 软件(例如免费的开源 QGIS)将该投影分配给数据;

3) 将数据重新投影到 WGS 84 (EPSG:4326) 坐标参考系统中;

4) 将重新投影的数据另存为新的 GeoJSON。

【讨论】:

    【解决方案2】:

    尝试将城市数据放入gist Github 会将数据显示在底图上,您将能够查看数据是否

    • 不显示(geojson 可能有问题)
    • 正在显示,但位置错误(可能是投影问题)
    • 显示在正确的位置(您的代码中可能存在问题)

    【讨论】:

      【解决方案3】:

      您需要先导入一个图块,有几个是付费的,但只需稍加研究,您就可以找到大量免费赠品。

      【讨论】:

        猜你喜欢
        • 2019-07-20
        • 1970-01-01
        • 2017-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多