Skip to content

Commit

Permalink
updated renderer with more zoom_lvl support
Browse files Browse the repository at this point in the history
  • Loading branch information
itzmeanjan committed Apr 13, 2019
1 parent ab36473 commit 0576df2
Show file tree
Hide file tree
Showing 7 changed files with 418 additions and 18 deletions.
33 changes: 18 additions & 15 deletions map_tile_renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def format_style_sheet(xml_doc, layer_name, element_name, element_attrs, element


def tile_generator(zoom_lvl, tile_width, tile_height, style_sheet, target_storage_path):
print('\t[+]Generating tiles in zoom level -- {}'.format(zoom_lvl))
print('\n\t[+]Generating tiles in zoom level -- {}\n'.format(zoom_lvl))
tiles = get_tile_extent(zoom_lvl, (-180, +90), tile_width, tile_height,
360, 180)
if(not tiles):
Expand All @@ -62,36 +62,39 @@ def tile_generator(zoom_lvl, tile_width, tile_height, style_sheet, target_storag

def input_validator():
# validates input, which was provided during invokation of function
max_zoom_lvl = argv[1]
init_zoom_lvl, max_zoom_lvl = argv[1:]
try:
init_zoom_lvl = int(init_zoom_lvl)
max_zoom_lvl = int(max_zoom_lvl)
except ValueError as e:
print('[!]Error : {}'.format(str(e)))
return None
if(max_zoom_lvl < 0 or max_zoom_lvl > 10):
print('[!]Max Zoom level value should be in range of 0 to 10')
return None
for i in range(max_zoom_lvl+1):
return ()
if((init_zoom_lvl < 0 or init_zoom_lvl > 10) or (max_zoom_lvl < 0 or max_zoom_lvl > 10)):
print('[!]Zoom level value should be in range of 0 to 10')
return ()
for i in range(init_zoom_lvl, max_zoom_lvl+1):
if(not exists('map_tile_renderer_style_sheet_{}.xml'.format(i))):
print('[!]Style Sheet not available for zoom-level -- {} !\n'.format(i))
return None
return max_zoom_lvl
return ()
return init_zoom_lvl, max_zoom_lvl


def app(tile_width, tile_height):
if(len(argv) != 2):
if(len(argv) != 3):
# now it can generate only those tiles, which are specified using their zoom_level
print(
'[+]Usage : ./{} max-zoom-level \n\t[*] max-zoom-level = 0 to 10\n'.format(argv[0]))
'[+]Usage : ./{} init-zoom-level max-zoom-level\n\t[*] init-zoom-level = 0 to 10\n\t[*] max-zoom-level = 0 to 10\n'.format(argv[0]))
return
# if command line input argument is not okay, it'll fail simply
max_zoom_lvl = input_validator()
if(not max_zoom_lvl):
try:
init_zoom_lvl, max_zoom_lvl = input_validator()
except ValueError:
return
target_storage_path = join(getcwd(), 'tiles')
if(not exists(target_storage_path)):
mkdir(target_storage_path)
print('[+]Generating all tiles with max zoom level {} ...'.format(max_zoom_lvl))
for i in range(max_zoom_lvl+1):
print('[+]Generating all tiles with starting zoom level {} & max zoom level {}\n'.format(init_zoom_lvl, max_zoom_lvl))
for i in range(init_zoom_lvl, max_zoom_lvl+1):
if(not tile_generator(i, tile_width, tile_height, 'map_tile_renderer_style_sheet_{}.xml'.format(i), target_storage_path)):
print('\t[!]Illegal Tile extent value !')
return
Expand Down
2 changes: 1 addition & 1 deletion map_tile_renderer_style_sheet_2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Style name="style1">
<Rule>
<PolygonSymbolizer fill="#888888" />
<LineSymbolizer stroke="white" stroke-width=".1" />
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
</Style>
<Layer name="layer1" srs="+proj=longlat +datum=WGS84 +no_defs ">
Expand Down
4 changes: 2 additions & 2 deletions map_tile_renderer_style_sheet_3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
<Style name="style1">
<Rule>
<PolygonSymbolizer fill="#888888" />
<LineSymbolizer stroke="white" stroke-width=".1" />
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
<Rule>
<TextSymbolizer face-name="DejaVu Sans Book" halo-fill="greenyellow" halo-radius="3">
<TextSymbolizer face-name="DejaVu Sans Book" halo-fill="greenyellow" halo-radius="2">
[feature_name]
</TextSymbolizer>
</Rule>
Expand Down
80 changes: 80 additions & 0 deletions map_tile_renderer_style_sheet_4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<Map background-color="aquamarine" srs="+proj=longlat +datum=WGS84 +no_defs ">
<Style name="style1">
<Rule>
<PolygonSymbolizer fill="#888888" />
<LineSymbolizer stroke="white" stroke-width=".1" />
</Rule>
<Rule>
<TextSymbolizer face-name="DejaVu Sans Book" halo-fill="greenyellow" halo-radius="2">
[feature_name]
</TextSymbolizer>
</Rule>
</Style>
<Style name="style2">
<Rule>
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
</Style>
<Layer name="layer1" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style1
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select feature_name, outline::geometry from world_features_level_0) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
<Layer name="layer2" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style2
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select outline::geometry from world_features_level_1) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
</Map>
80 changes: 80 additions & 0 deletions map_tile_renderer_style_sheet_5.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<Map background-color="aquamarine" srs="+proj=longlat +datum=WGS84 +no_defs ">
<Style name="style1">
<Rule>
<PolygonSymbolizer fill="#888888" />
<LineSymbolizer stroke="white" stroke-width=".1" />
</Rule>
</Style>
<Style name="style2">
<Rule>
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
<Rule>
<TextSymbolizer face-name="DejaVu Sans Book" halo-fill="greenyellow" halo-radius="2">
[feature_name]
</TextSymbolizer>
</Rule>
</Style>
<Layer name="layer1" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style1
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select outline::geometry from world_features_level_0) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
<Layer name="layer2" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style2
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select feature_name, outline::geometry from world_features_level_1) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
</Map>
116 changes: 116 additions & 0 deletions map_tile_renderer_style_sheet_6.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<Map background-color="aquamarine" srs="+proj=longlat +datum=WGS84 +no_defs ">
<Style name="style1">
<Rule>
<PolygonSymbolizer fill="#888888" />
<LineSymbolizer stroke="white" stroke-width=".1" />
</Rule>
</Style>
<Style name="style2">
<Rule>
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
<Rule>
<TextSymbolizer face-name="DejaVu Sans Book" halo-fill="greenyellow" halo-radius="2">
[feature_name]
</TextSymbolizer>
</Rule>
</Style>
<Style name="style3">
<Rule>
<LineSymbolizer stroke="white" stroke-width=".05" />
</Rule>
</Style>
<Layer name="layer1" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style1
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select outline::geometry from world_features_level_0) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
<Layer name="layer2" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style2
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select feature_name, outline::geometry from world_features_level_1) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
<Layer name="layer3" srs="+proj=longlat +datum=WGS84 +no_defs ">
<StyleName>
style3
</StyleName>
<Datasource>
<Parameter name="type">
postgis
</Parameter>
<Parameter name="dbname">
world_features
</Parameter>
<Parameter name="user">
postgres
</Parameter>
<Parameter name="password">
@njan5m3dB
</Parameter>
<Parameter name="table">
(select outline::geometry from world_features_level_2) as place
</Parameter>
<Parameter name="geometry_field">
outline
</Parameter>
<Parameter name="srid">
4326
</Parameter>
<Parameter name="estimate_extent">
false
</Parameter>
</Datasource>
</Layer>
</Map>
Loading

0 comments on commit 0576df2

Please sign in to comment.