Как добавить свойства в файл topojson?
Учитывая файл data.tsv, такой:
id code name 1 AL Alabama 2 AK Alaska 4 AZ Arizona 5 AR Arkansas 6 CA California ... ... ...
Учитывая файл topojson.json, такой: (структура правильная, числовые значения являются случайными)
{ "type":"Topology", "transform": { "scale": [0.0015484881821515486,0.0010301030103010299], "translate":[-5.491666666666662,41.008333333333354] }, "objects": { "states": { "type":"GeometryCollection", "geometries": [ {"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL"}}, {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK"}} ] } }, "arcs": [ [[2466,9916],[-25,-5],[3,-13]], [[2357,9852],[1,-2],[1,-2]] ] }
Как использовать общие поля (1) для ввода значений другого поля (2) в json-файл?
- Как разбирать строку JSON в JsonNode в jacksonе?
- AngularJS $ http-post - преобразовать двоичный файл в excel и загрузить
- Дезаминирование гетерогенного массива JSON в ковариантный список с использованием JSON.NET
- Поместите байт-массив в JSON и наоборот
- Как получить JSON-файл в Angular 2
1]: data.txt#code
и topojson.txt.objects.states.geometries.properties.code_2
2]: data.txt#name
Конечный результат должен содержать:
{"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL", "name":"Alabama" }}, {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK", "name":"Alaska" }},
EDIT: Принятый ответ:
topojson -o final.json -e data.tsv --id-property=code_2,code -p code_2,state=name -- topojson.json
- Как использовать пользовательские ключи с протоколом Swift 4 Decodable?
- загрузить json в переменную
- Почему я не могу развернуть и сериализовать карту Java, используя библиотеку Jackson Java?
- Передайте пользовательский объект в ASP.NET Webmethod из jQuery, используя JSON
- Как получить доступ к вложенным элементам объекта json с помощью метода getJSONArray
- Сериализовать объекты Entity Framework в JSON
- Разбор JSON для Java - приложение для Android
- Использование пользовательской десериализации тела WCF без изменения десериализации шаблона URI
Попробуйте использовать это:
topojson -o final.json -e data.tsv --id-property=code_2,code -p code_2,state=name -- topojson.json
Который должен выводить:
{ "type": "Topology", "transform": { "scale": [ 0.000016880209206372492, 0.000007005401010148724 ], "translate": [ -1.8418800213354616, 51.15278777877789 ] }, "objects": { "states": { "type": "GeometryCollection", "geometries": [ { "type": "Polygon", "arcs": [ [ 0 ] ], "id": "AK", "properties": { "code_2": "AK", "state": "Alaska" } } ] } }, "arcs": [ [ [ 0, 588 ], [ 92, -294 ], [ 91, -294 ], [ -183, 588 ] ] ] }
Из справочной системы командной строки wiki :
–ID-свойство имени свойства свойства для продвижения к идентификатору геометрии
Используя свойство code_2
с этим параметром, вы рекламируете его как идентификатор функции.
Подготовьте a + перед именем свойства ввода, чтобы увеличить его значение до числа.
Плюс:
Если свойства, на которые ссылается -id-property, являются нулевыми или неопределенными, они исключаются из объекта геометрии вывода. Таким образом, сгенерированные объекты могут не иметь определенного идентификатора, если входные функции не имеют свойства с указанным именем.
Итак, когда вы используете +code
и +code_2
, они, вероятно, undefined
, так как вы не можете преобразовать значение строки AK
в число.
Здесь входное свойство «FIPS» принуждается к числу и используется как идентификатор функции; Аналогично, столбец с именем «FIPS» используется как идентификатор в файле CSV. (Если ваш CSV-файл использует другое имя столбца для идентификатора функции, вы можете указать несколько свойств id, таких как
--id-property=+FIPS,+id
.)
Вот почему вам нужно добавить code
в --id-property=code_2,code
. Так производится сопоставление ( code_2
из topojson.json и столбец code
из data.tsv ).
Затем выходное свойство «безработица» генерируется из внешнего файла данных, безработица.tsv, который определяет входное свойство «rate»,
В нашем случае -p code_2,state=name
указывает, что мы code_2
свойство code_2
и мы переименуем свойство name
в state
. Разделы свойств и внешних свойств в вышеупомянутой документации wiki довольно информативны по этому вопросу.