Карта D3 - данные JSON, экспортированные из ESRI - PullRequest
0 голосов
/ 22 октября 2018

У меня есть пользовательский файл JSON, который клиент экспортировал из ESRI.Я все еще относительно новичок в работе с картографическими функциями D3, и у меня возникли проблемы с выяснением того, как привести эту карту в соответствие с моей базовой картой.Для базы я использую файл US.json в следующем формате:

{"type":"FeatureCollection","features":[
    {"type":"Feature",
     "id":"09",
     "properties": {
         "name":"Connecticut"
      },
     "geometry":{
         "type":"Polygon",
         "coordinates": [[[-73.053528,42.039048],[-71.799309,42.022617]...

Пользовательские данные, которые мне дали, отформатированы по-разному, и я не совсем уверен, как с этим обращаться.Вот как это выглядит:

{"displayFieldName":"","fieldAliases":{"FID":"FID","WSA9":"WSA9","WSA9_NAME":"WSA9_NAME"},"geometryType":"esriGeometryPolygon","spatialReference":{"wkt":"PROJCS[\"Albers\"GEOGCS[\"GCS_North_American_1983\",DATUM[\"D_North_American_1983\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",-96.0],PARAMETER[\"standard_parallel_1\",29.5],PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"latitude_of_origin\",23.0],UNIT[\"Meter\",1.0]]"},"fields":[{"name":"FID","type":"esriFieldTypeOID","alias":"FID"},{"name":"WSA9","type":"esriFieldTypeString","alias":"WSA9","length":80},{"name":"WSA9_NAME","type":"esriFieldTypeString","alias":"WSA9_NAME","length":80}],"features":[{"attributes":{"FID":0,"WSA9":"NAP","WSA9_NAME":"Northern Appalachians"},"geometry":{"rings":[[[1664894.6557,2097277.5137],[1665737.7609000001,2097197.3818000001]...

Я вижу, что в файле есть объекты и свойства геометрии, поэтому я подумал, что должен работать с данными, однако заметил, что вики D3Не включайте тип геометрии «кольца» в список объектов геометрии.Могу ли я использовать эти данные?Если так, как бы я поступил так?Я попытался переформатировать данные в ту же структуру, что и приведенные выше данные us.json, используя следующий блок, чтобы попытаться отобразить их, но безуспешно:

var projection = d3.geoMercator(),
    path = d3.geoPath().projection(projection);

d3.json("data/NAP_Ecoregion_Merc.json")
    .then(function (data) {
      var region = map.append("g")
        .selectAll("path")
        .data(data.features)
    }

Мысли?Любая помощь с благодарностью!

...