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
    }
  ]
}

Changelog

Click here to see what changed over time in various versions.

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.5.tar.gz (9.1 kB view details)

Uploaded Source

File details

Details for the file mapbox-vector-tile-0.0.5.tar.gz.

File metadata

File hashes

Hashes for mapbox-vector-tile-0.0.5.tar.gz
Algorithm Hash digest
SHA256 880a6a90c951a44cac6ae0cfd4331429a427bf50b47d4752744f2272604f774a
MD5 23edd03e42c416fdfc8f2afd3d8657bb
BLAKE2b-256 af551d3f376c9039c1a955df92444817714459591d49e01b1ef8890b1539b811

See more details on using hashes here.

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