Skip to content

Unclear format for map json data, add a "nodeMapsData"? #177

Description

@T-X

Background: Currently both the Gluon census-exporter for the Gluon Census and the meshviewer-collector for multi.meshviewer.org maintain their own lists for JSON sources:

Most communities also provide map JSON data via api.freifunk.net, however their current, aggregated state is pretty unusable for both the gluon-census and the meshviewer-collector at the moment: freifunk-gluon/census-exporter#4 (comment)

I'm wondering if this might be due to an unclear specification regarding a meshviewer.json or a Hopglass nodes.json. At least all four entries with a meshviewer.json in the Freifunk API all use a different format: freifunk-gluon/census-exporter#4 (comment)


Suggestion A):

  1. Clarify that nodeMaps is only for HTML rendered maps. 2) deprecate "nodelist" in nodeMaps. 3) add a new nodeMapData like the following:
        "nodeMapData": {
            "type": "array",
            "title": "Node map data sources",
            "description": "Machine-readable node map data of nodes or topology your community provides",
            "items": {
                "type": "object",
                "title": "node",
                "properties": {
                    "url": {
                        "$ref": "#/definitions/url",
                        "title": "URL of the map",
                        "description": "The URL where the map data is located"
                    },
                    "interval": {
                        "type": "string",
                        "title": "interval",
                        "description": "How often the map data will be refreshed"
                    },
                    "mediaType": {
                        "type": "string",
                        "title": "Media Type as registered at IANA: https://www.iana.org/assignments/media-types/media-types.xhtml",
                        "description": "",
                        "enum": [ "", "text/csv", "application/json" ],
                        "default": ""
                    }
                    "mapDataFormat": {
                        "type": "string",
                        "title": "Map Data Format",
                        "description": "The format of the provided map data",
                        "enum": [ "", "nodelist", "meshviewer", "meshviewer/old", "hopglass/v1", "hopglass/v2" ],
                        "default": ""
                    }
                },
                "additionalProperties": false

If mapDataType is "nodelist", "meshviewer", "meshviewer/old", "hopglass/v1" or "hopglass/v2" then only mediaType: "application/json" should be allowed. (If such a constraint is not possible then maybe split this into "nodeMapDataJSON" and "nodeMapDataCVS"?)

I'd suggest / tend to having nodeMapData adjacent to instead of within nodeMap. As some communities for instance have two nodeMapData for one meshviewer instance, where one points to the geographical map tab and the other to the topology graph tab.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions