2014-03-31 30 views
0

我正在努力调整阅读json文件后自动调整的json文件大小。但我收到错误。如何使用TopoJSON阅读geojson文件

$.getJSON("data/cities.json", function (data) { 
     getData = topojson.feature(data, data.features); 
     console.log(getData) 
    }); 

Cities.json样子

{ 
"type": "FeatureCollection", 
"features": [{ 
    "geometry": { 
     "type": "MultiPolygon", 
     "coordinates": [ 
      [ 
       [ 
        [-73.8283219965448, 40.8446061654002], 
        [-73.828397789942, 40.844583182304], 
        [-73.8285477331865, 40.8448132168025], 
        [-73.8284744943625, 40.8448401137412], 
        [-73.8283219965448, 40.8446061654002] 
       ] 
      ] 
     ] 
    }, 
    "type": "Feature", 
, { 
    "geometry": { 
     "type": "MultiPolygon", 
     "coordinates": [ 
      [ 
       [ 
        [-73.832361912256, 40.8488019205992], 
        [-73.832369554769, 40.8487286684528], 
        [-73.8327312374341, 40.8487518102579], 
        [-73.8327304815978, 40.8487590590352], 
        [-73.8327235953166, 40.8488250624279], 
        [-73.832361912256, 40.8488019205992] 
       ] 
      ] 
     ] 
    }, 
    "type": "Feature" 
} 


} 

我怎样才能使用的getJSON然后通过其加载JSON数据topojson

+0

你会得到什么错误? –

+0

未捕获TypeError:对象#没有方法“功能”(索引):45 – user3378649

+0

你如何在页面中包含topojson?好像它没有正确加载 –

回答

2

以GeoJSON和TopoJSON是两种不同的格式。您不能使用TopoJSON函数来处理GeoJSON。您需要将GeoJSON转换为TopoJSON(请参阅the commandline reference),然后加载它。

+0

我可以将GeoJSON自动转换为代码中的TopoJSON,我正在更新geojson每12小时。这就是为什么我需要自动化这个过程。我想转换为TopJSON的原因是为了减小这个文件的大小(> 300 MB) – user3378649

+0

一旦您已经传输了数据,在JavaScript中转换为TopoJSON就没有意义了。 –