TileStache.Goodies.VecTiles.client | index

`Datasource for Mapnik that consumes vector tiles in GeoJSON or MVT format.
VecTiles provides Mapnik with a Datasource that can read remote tiles of vector
data in spherical mercator projection, providing for rendering of data without
the use of a local PostGIS database.
Sample usage in Mapnik configuration XML:
<Layer name="test" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs">
<StyleName>...</StyleName>
<Datasource>
<Parameter name="type">python</Parameter>
<Parameter name="factory">TileStache.Goodies.VecTiles:Datasource</Parameter>
<Parameter name="template">http://example.com/{z}/{x}/{y}.mvt</Parameter>
<Parameter name="sort_key">sort_key ascending</Parameter>
</Datasource>
</Layer>
From http://github.com/mapnik/mapnik/wiki/Python-Plugin:
The Mapnik Python plugin allows you to write data sources in the Python
programming language. This is useful if you want to rapidly prototype a
plugin, perform some custom manipulation on data or if you want to bind
mapnik to a datasource which is most conveniently accessed through Python.
The plugin may be used from the existing mapnik Python bindings or it can
embed the Python interpreter directly allowing it to be used from C++, XML
or even JavaScript.
See also:
http://mapnik.org/docs/v2.1.0/api/python/mapnik.PythonDatasource-class.html`

Modules

``

TileStache.Goodies.VecTiles.geojson | logging | TileStache.Goodies.VecTiles.mvt |

Classes

``

mapnik.PythonDatasource(__builtin__.object)
  Datasource

class Datasource(mapnik.PythonDatasource)

``

`Mapnik datasource to read tiled vector data in GeoJSON or MVT formats.
Sample usage in Mapnik configuration XML:
<Layer name="test" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs">
<StyleName>...</StyleName>
<Datasource>
<Parameter name="type">python</Parameter>
<Parameter name="factory">TileStache.Goodies.VecTiles:Datasource</Parameter>
<Parameter name="template">http://example.com/{z}/{x}/{y}.mvt</Parameter>
<Parameter name="sort_key">sort_key ascending</Parameter>
</Datasource>
</Layer>
`

Method resolution order:
  Datasource
  mapnik.PythonDatasource
  __builtin__.object

Methods defined here:

__init__(self, template, sort_key=None, clipped='true', zoom_data='single')
  `Make a new Datasource.
  Parameters:
  template:
  Required URL template with placeholders for tile zoom, x and y,
  e.g. "http://example.com/layer/{z}/{x}/{y}.json".
  sort_key:
  Optional field name to use when sorting features for rendering.
  E.g. "name" or "name ascending" to sort ascending by name,
  "name descending" to sort descending by name.
  clipped:
  Optional boolean flag to determine correct behavior for
  duplicate geometries. When tile data is not clipped, features()
  will check geometry uniqueness and throw out duplicates.
  Setting clipped to false for actually-clipped geometries has no
  effect but wastes time. Setting clipped to false for unclipped
  geometries will result in possibly wrong-looking output.
  Default is "true".
  zoom_data:
  Optional keyword specifying single or double zoom data tiles.
  Works especially well with relatively sparse label layers.
  When set to "double", tiles will be requested at one zoom level
  out from the map view, e.g. double-sized z13 tiles will be used
  to render a normal z14 map.
  Default is "single".`

features(self, query)

Methods inherited from mapnik.PythonDatasource:

features_at_point(self, point)
  `Rarely uses. Return an iterable which yields instances of Feature for the specified point.`

Class methods inherited from mapnik.PythonDatasource:

wkb_features(cls, keys, features) from __builtin__.type
  `A convenience function to wrap an iterator yielding pairs of WKB format geometry and dictionaries of
  key-value pairs into mapnik features. Return this from PythonDatasource.features() passing it a sequence of keys
  to appear in the output and an iterator yielding features.
  For example. One might have a features() method in a derived class like the following:
  def features(self, query):
  # ... create WKB features feat1 and feat2
  return mapnik.PythonDatasource.wkb_features(
  keys = ( 'name', 'author' ),
  features = [
  (feat1, { 'name': 'feat1', 'author': 'alice' }),
  (feat2, { 'name': 'feat2', 'author': 'bob' }),
  ]
  )`

wkt_features(cls, keys, features) from __builtin__.type
  `A convenience function to wrap an iterator yielding pairs of WKT format geometry and dictionaries of
  key-value pairs into mapnik features. Return this from PythonDatasource.features() passing it a sequence of keys
  to appear in the output and an iterator yielding features.
  For example. One might have a features() method in a derived class like the following:
  def features(self, query):
  # ... create WKT features feat1 and feat2
  return mapnik.PythonDatasource.wkt_features(
  keys = ( 'name', 'author' ),
  features = [
  (feat1, { 'name': 'feat1', 'author': 'alice' }),
  (feat2, { 'name': 'feat2', 'author': 'bob' }),
  ]
  )`

Data descriptors inherited from mapnik.PythonDatasource:

__dict__
  `dictionary for instance variables (if defined)`

__weakref__
  `list of weak references to the object (if defined)`

Functions

``

list_tiles(query, zoom_adjust)
  `Return a list of tiles (z, x, y) dicts for a mapnik Query object.
  Query is assumed to be in spherical mercator projection.
  Zoom_adjust is an integer delta to subtract from the calculated zoom.`

load_features(jobs, host, port, path, tiles)
  `Load data from tiles to features.
  Calls load_tile_features() in a thread pool to speak HTTP.`

load_tile_features(lock, host, port, path_fmt, tiles, features)
  `Load data from tiles to features.
  Called from load_features(), in a thread.
  Returns a list of (WKB, property dict) pairs.`

utf8_keys(dictionary)
  `Convert dictionary keys to utf8-encoded strings for Mapnik.
  By default, json.load() returns dictionaries with unicode keys
  but Mapnik is ultra-whiny about these and rejects them.`

Data
`` |  | diameter = 40075016.685578488 meter_zoom = 17.256199785269999 pi = 3.1415926535897931