1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#!/usr/bin/env python
import os
from nose.tools import assert_almost_equal, eq_, raises
from nose.plugins.skip import SkipTest
import mapnik
from .utilities import execution_path, run_all
def setup():
# All of the paths used are relative, if we run the tests
# from another directory we need to chdir()
os.chdir(execution_path('.'))
# map has no layers
@raises(IndexError)
def test_map_query_throw1():
m = mapnik.Map(256, 256)
m.zoom_to_box(mapnik.Box2d(-1, -1, 0, 0))
m.query_point(0, 0, 0)
# only positive indexes
@raises(IndexError)
def test_map_query_throw2():
m = mapnik.Map(256, 256)
m.query_point(-1, 0, 0)
# map has never been zoomed (nodata)
@raises(RuntimeError)
def test_map_query_throw3():
m = mapnik.Map(256, 256)
m.query_point(0, 0, 0)
if 'shape' in mapnik.DatasourceCache.plugin_names():
# map has never been zoomed (even with data)
@raises(RuntimeError)
def test_map_query_throw4():
if not os.path.exists('../data/good_maps/agg_poly_gamma_map.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/agg_poly_gamma_map.xml')
m.query_point(0, 0, 0)
# invalid coords in general (do not intersect)
@raises(RuntimeError)
def test_map_query_throw5():
if not os.path.exists('../data/good_maps/agg_poly_gamma_map.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/agg_poly_gamma_map.xml')
m.zoom_all()
m.query_point(0, 9999999999999999, 9999999999999999)
def test_map_query_works1():
if not os.path.exists('../data/good_maps/wgs842merc_reprojection.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/wgs842merc_reprojection.xml')
merc_bounds = mapnik.Box2d(-20037508.34, -
20037508.34, 20037508.34, 20037508.34)
m.maximum_extent = merc_bounds
m.zoom_all()
# somewhere in kansas
fs = m.query_point(0, -11012435.5376, 4599674.6134)
feat = fs.next()
eq_(feat.attributes['NAME_FORMA'], u'United States of America')
def test_map_query_works2():
if not os.path.exists('../data/good_maps/merc2wgs84_reprojection.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/merc2wgs84_reprojection.xml')
wgs84_bounds = mapnik.Box2d(-179.999999975, -
85.0511287776, 179.999999975, 85.0511287776)
m.maximum_extent = wgs84_bounds
# caution - will go square due to evil aspect_fix_mode backhandedness
m.zoom_all()
# mapnik.render_to_file(m,'works2.png')
# validate that aspect_fix_mode modified the bbox reasonably
e = m.envelope()
assert_almost_equal(e.minx, -179.999999975, places=7)
assert_almost_equal(e.miny, -167.951396161, places=7)
assert_almost_equal(e.maxx, 179.999999975, places=7)
assert_almost_equal(e.maxy, 192.048603789, places=7)
fs = m.query_point(0, -98.9264, 38.1432) # somewhere in kansas
feat = fs.next()
eq_(feat.attributes['NAME'], u'United States')
def test_map_query_in_pixels_works1():
if not os.path.exists('../data/good_maps/wgs842merc_reprojection.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/wgs842merc_reprojection.xml')
merc_bounds = mapnik.Box2d(-20037508.34, -
20037508.34, 20037508.34, 20037508.34)
m.maximum_extent = merc_bounds
m.zoom_all()
fs = m.query_map_point(0, 55, 100) # somewhere in middle of us
feat = fs.next()
eq_(feat.attributes['NAME_FORMA'], u'United States of America')
def test_map_query_in_pixels_works2():
if not os.path.exists('../data/good_maps/merc2wgs84_reprojection.xml'):
raise SkipTest
m = mapnik.Map(256, 256)
mapnik.load_map(m, '../data/good_maps/merc2wgs84_reprojection.xml')
wgs84_bounds = mapnik.Box2d(-179.999999975, -
85.0511287776, 179.999999975, 85.0511287776)
m.maximum_extent = wgs84_bounds
# caution - will go square due to evil aspect_fix_mode backhandedness
m.zoom_all()
# validate that aspect_fix_mode modified the bbox reasonably
e = m.envelope()
assert_almost_equal(e.minx, -179.999999975, places=7)
assert_almost_equal(e.miny, -167.951396161, places=7)
assert_almost_equal(e.maxx, 179.999999975, places=7)
assert_almost_equal(e.maxy, 192.048603789, places=7)
fs = m.query_map_point(0, 55, 100) # somewhere in Canada
feat = fs.next()
eq_(feat.attributes['NAME'], u'Canada')
if __name__ == "__main__":
setup()
exit(run_all(eval(x) for x in dir() if x.startswith("test_")))
|