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

Uploaded Source

File details

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

File metadata

File hashes

Hashes for mapbox-vector-tile-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6fe1904a8cf557ab3ee998e945f0bc0786ce65a58598a4cfeef28425cabe4600
MD5 b5eb3b2a5cf32210525f991f86a9fe41
BLAKE2b-256 2fc0d8530d41b1449be4c996610751c2bb9ddb500eda8c9b81fadd5e4b252f67

See more details on using hashes here.

Supported by

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