6 | | We are about to develop a Mapping API to make this easy. |
7 | | * [wiki:BluePrintGISAPI] |
8 | | Until then, to understand how mapping works, see: |
9 | | * [wiki:UserGuidelinesGIS] |
10 | | * [wiki:BluePrintGISFeatureLayers] |
11 | | |
12 | | |
| 6 | The easiest approach is to call the Mapping API. |
| 7 | === Controller === |
| 8 | {{{ |
| 9 | map = gis.show_map() |
| 10 | return dict(map=map) |
| 11 | }}} |
| 12 | === View === |
| 13 | {{{ |
| 14 | {{=XML(map)}} |
| 15 | }}} |
| 16 | === Examples === |
| 17 | Check the following functions in {{{controllers/gis.py}}}: |
| 18 | * {{{map_viewing_client()}}} |
| 19 | * {{{display_feature()}}} |
| 20 | * {{{display_features()}}} |
| 21 | |
| 22 | === Full API description === |
| 23 | {{{ |
| 24 | def show_map( self, |
| 25 | height = None, |
| 26 | width = None, |
| 27 | bbox = {}, |
| 28 | lat = None, |
| 29 | lon = None, |
| 30 | zoom = None, |
| 31 | projection = None, |
| 32 | features = {}, |
| 33 | feature_overlays = [], |
| 34 | wms_browser = {}, |
| 35 | catalogue_overlays = False, |
| 36 | catalogue_toolbar = False, |
| 37 | legend = False, |
| 38 | toolbar = False, |
| 39 | search = False, |
| 40 | print_tool = {}, |
| 41 | mgrs = {}, |
| 42 | window = False, |
| 43 | collapsed = False, |
| 44 | public_url = "http://127.0.0.1:8000" |
| 45 | ): |
| 46 | """ |
| 47 | @param height: Height of viewport (if not provided then the default setting from the Map Service Catalogue is used) |
| 48 | @param width: Width of viewport (if not provided then the default setting from the Map Service Catalogue is used) |
| 49 | @param bbox: default Bounding Box of viewport (if not provided then the Lat/Lon/Zoom are used) (Dict): |
| 50 | { |
| 51 | "max_lat" : float, |
| 52 | "max_lon" : float, |
| 53 | "min_lat" : float, |
| 54 | "min_lon" : float |
| 55 | } |
| 56 | @param lat: default Latitude of viewport (if not provided then the default setting from the Map Service Catalogue is used) |
| 57 | @param lon: default Longitude of viewport (if not provided then the default setting from the Map Service Catalogue is used) |
| 58 | @param zoom: default Zoom level of viewport (if not provided then the default setting from the Map Service Catalogue is used) |
| 59 | @param projection: EPSG code for the Projection to use (if not provided then the default setting from the Map Service Catalogue is used) |
| 60 | @param features: A Query of Features to overlay onto the map & their options (Dict): |
| 61 | { |
| 62 | name : "Query", # A string: the label for the layer |
| 63 | query : query, # A gluon.sql.Rows of gis_locations |
| 64 | active : False, # Is the feed displayed upon load or needs ticking to load afterwards? |
| 65 | popup_url : None, # The URL which will be used to fill the pop-up. it will be appended by the Location ID. |
| 66 | marker : None # The icon used to display the feature (over-riding the normal process). Can be a lambda to vary icon (size/colour) based on attribute levels. |
| 67 | } |
| 68 | @param feature_overlays: Which Feature Groups to overlay onto the map & their options (List of Dicts): |
| 69 | [{ |
| 70 | feature_group : db.gis_feature_group.name, |
| 71 | parent : None, # Only display features with this parent set. ToDo: search recursively to allow all descendants |
| 72 | filter : None, # A query to further limit which features from the feature group are loaded |
| 73 | active : False, # Is the feed displayed upon load or needs ticking to load afterwards? |
| 74 | popup_url : None, # The URL which will be used to fill the pop-up. it will be appended by the Location ID. |
| 75 | marker : None # The icon used to display the feature (over-riding the normal process). Can be a lambda to vary icon (size/colour) based on attribute levels. |
| 76 | }] |
| 77 | @param wms_browser: WMS Server's GetCapabilities & options (dict) |
| 78 | { |
| 79 | name: string, # Name for the Folder in LayerTree |
| 80 | url: string # URL of GetCapabilities |
| 81 | } |
| 82 | @param catalogue_overlays: Show the Overlays from the GIS Catalogue (@ToDo: make this a dict of which external overlays to allow) |
| 83 | @param catalogue_toolbar: Show the Catalogue Toolbar |
| 84 | @param legend: Show the Legend panel |
| 85 | @param toolbar: Show the Icon Toolbar of Controls |
| 86 | @param search: Show the Geonames search box |
| 87 | @param print_tool: Show a print utility (NB This requires server-side support: http://eden.sahanafoundation.org/wiki/BluePrintGISPrinting) |
| 88 | { |
| 89 | url: string, # URL of print service (e.g. http://localhost:8080/geoserver/pdf/) |
| 90 | mapTitle: string # Title for the Printed Map (optional) |
| 91 | subTitle: string # subTitle for the Printed Map (optional) |
| 92 | } |
| 93 | @param mgrs: Use the MGRS Control to select PDFs |
| 94 | { |
| 95 | name: string, # Name for the Control |
| 96 | url: string # URL of PDF server |
| 97 | } |
| 98 | @param window: Have viewport pop out of page into a resizable window |
| 99 | @param collapsed: Start the Tools panel (West region) collapsed |
| 100 | @param public_url: pass from model (not yet defined when Module instantiated |
| 101 | """ |
| 102 | }}} |