传单GeoJson

标签 leaflet geojson

有人能解释一下为什么这个传单代码适用于可视化纽约州的 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>

最佳答案

由于问题不具体,所以很难说问题出在哪里。不过,我有一个很好的猜测。

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

1) 找出数据在什么投影中;

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

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

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

关于传单GeoJson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30510969/

相关文章:

javascript - Mapbox 访问 token - 我将其放置在哪里?

c# - C# DataContracts 的表现力是否足以正确描述 GeoJSON?

mapbox - Choropleth 图层 mapbox geojson 不起作用

python - Django 的 GeoJSON 序列化器没有序列化所有字段?

Leaflet - 切换图层时缩放/平移到图层范围

leaflet - 就地更新传单 GeoJSON 功能

r - 带单选按钮的 Shiny 无功值

javascript - 传单:是否可以自定义缩放级别?

leaflet - Geojson/草坪 : merge multiple polygons to one polygon keeping hole

javascript - 使用 GeoJson GoogleMaps Api v3 缩放到标记