Skip to main content

Mapbox Vector Tile

Project description

Installation

mapbox-vector-tile is compatible with Python 2.6, 2.7, 3.2, 3.3, and 3.4. It is listed on PyPi as ‘mapbox-vector-tile’. The recommended way to install is via pip:

$ pip install mapbox-vector-tile

Encoding

Encode method expects an array of layers or atleast a single valid layer. A valid layer is a dictionary with the following keys

  • name: layer name

  • features: an array of features. A feature is a dictionary with the following keys:

    • geometry: representation of the feature geometry in WKT or WKB

    • properties: a dictionary with a few keys and their corresponding values.

>>> import mapbox_vector_tile

# Using WKT
>>> mapbox_vector_tile.encode([
    {
      "name": "water",
      "features": [
        {
          "geometry":"POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))",
          "properties":{
            "uid":123,
            "foo":"bar",
            "cat":"flew"
          }
        }
      ]
    },
    {
      "name": "air",
      "features": [
        {
          "geometry":"LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)",
          "properties":{
            "uid":1234,
            "foo":"bar",
            "cat":"flew"
          }
        }
      ]
    }
  ])

'\x1aJ\n\x05water\x12\x1a\x08\x01\x12\x06\x00\x00\x01\x01\x02\x02\x18\x03"\x0c\t\x00\x80@\x1a\x00\x01\x02\x00\x00\x02\x0f\x1a\x03foo\x1a\x03uid\x1a\x03cat"\x05\n\x03bar"\x02 {"\x06\n\x04flew(\x80 x\x02\x1aW\n\x03air\x12\x1a\x08\x01\x12\x08\x00\x00\x01\x01\x02\x02\x03\x03\x18\x02"\n\t\x8d\x01\xaa?\x12\x00\x00\x00\x00\x1a\x03foo\x1a\x03uid\x1a\x05balls\x1a\x03cat"\x05\n\x03bar"\x03 \xd2\t"\x05\n\x03foo"\x06\n\x04flew(\x80 x\x02'


# Using WKB
>>> mapbox_vector_tile.encode([
    {
      "name": "water",
      "features": [
        {
          "geometry":"\001\003\000\000\000\001\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
          "properties":{
            "uid":123,
            "foo":"bar",
            "cat":"flew"
          }
        }
      ]
    },
    {
      "name": "air",
      "features": [
        {
          "geometry":"\001\003\000\000\000\001\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\360?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
          "properties":{
            "uid":1234,
            "foo":"bar",
            "cat":"flew"
          }
        }
      ]
    }
    ])

'\x1aJ\n\x05water\x12\x1a\x08\x01\x12\x06\x00\x00\x01\x01\x02\x02\x18\x03"\x0c\t\x00\x80@\x1a\x00\x01\x02\x00\x00\x02\x0f\x1a\x03foo\x1a\x03uid\x1a\x03cat"\x05\n\x03bar"\x02 {"\x06\n\x04flew(\x80 x\x02\x1aY\n\x03air\x12\x1c\x08\x01\x12\x08\x00\x00\x01\x01\x02\x02\x03\x03\x18\x03"\x0c\t\x00\x80@\x1a\x00\x01\x02\x00\x00\x02\x0f\x1a\x03foo\x1a\x03uid\x1a\x05balls\x1a\x03cat"\x05\n\x03bar"\x03 \xd2\t"\x05\n\x03foo"\x06\n\x04flew(\x80 x\x02'

Decoding

Decode method takes in a valid google.protobuf.message Tile and returns decoded string in the following format:

{
  layername: [
    {
      'geometry': 'list of points',
      'properties': 'dictionary of key/value pairs',
      'id': 'unique id for the given feature within the layer '
    },
    {
      # ...
    }
  ],
  layername2: [
    # ...
  ]
}
>>> import mapbox_vector_tile

>>> mapbox_vector_tile.decode('\x1aJ\n\x05water\x12\x1a\x08\x01\x12\x06\x00\x00\x01\x01\x02\x02\x18\x03"\x0c\t\x00\x80@\x1a\x00\x01\x02\x00\x00\x02\x0f\x1a\x03foo\x1a\x03uid\x1a\x03cat"\x05\n\x03bar"\x02 {"\x06\n\x04flew(\x80 x\x02\x1aY\n\x03air\x12\x1c\x08\x01\x12\x08\x00\x00\x01\x01\x02\x02\x03\x03\x18\x03"\x0c\t\x00\x80@\x1a\x00\x01\x02\x00\x00\x02\x0f\x1a\x03foo\x1a\x03uid\x1a\x05balls\x1a\x03cat"\x05\n\x03bar"\x03 \xd2\t"\x05\n\x03foo"\x06\n\x04flew(\x80 x\x02')

{
  'water': [
    {
      'geometry': [[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]],
      'properties': {
        'foo': 'bar',
        'uid': 123,
        'cat': 'flew'
      },
      'id': 1
    }
  ],
  'air': [
    {
      'geometry': [[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]],
      'properties': {
        'foo': 'bar',
        'uid': 1234,
        'balls': 'foo',
        'cat': 'flew'
      },
      'id': 1
    }
  ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mapbox-vector-tile-0.0.4.tar.gz (9.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page