Requirements
Overall Requirements
- Support popular browsers. This includes Chrome, FireFox, Edge, and Safari. IE 10 is still supported
- Provide support for popular GIS data formats through supported web mime types (e.g. GeoJSON for vector data, JPG for rasters)
Current Features
Below is a list of the existing features in features in CanvasMap:
- Scene:
- Setting the background color
- View:
- Setting the range of zoom levels and extent
- Layer types:
- Point layers:
- Standard marks (circle, squares, triangles, stars)
- Settable styles, can be different for each feature
- Icons from image files
- Settable images, can be different for each feature
- Data from:
- GeoJSON
- Client-side JavaScript
- Labels
- Collision detection
- Clustering and/or collision detection
- Polyline and polygon layers:
- Stylize fills and strokes
- Settable for all or individual features
- Mouse over and selected styles
- Settable for all or individual features
- Data from:
- GeoJSON
- Raster layers:
- JPG, PNG
- OpenStreetMap tiles
- Pyramids of tiles
- Vector
- Raster
- All vector layers:
- Override: MouseDown, MouseMove, MouseUp, others?
- Info balloons based on attributes or custom content
- Search on attributes -> selection
- View attributes in a table (in development)
- Access to get and set attributes
- All layers:
- Zoom to bounds (if bounds available)
- Projections
- Project on load
- Convert projected coordinates to geographic for display
- Add points using geographic coordinates to point layer
- Control of the style and layout from CSS where possible
- Sizing the Canvas itself and inability to get the width and height from a CSS file limits this.
- GUI
- Display of the current spatial reference
- Informational popup windows with HTML content from attributes or set by JavaScript
- Map Panels:
- Title bar
- Tool bar with select and pan tools
- Footer with credits, coordinates, and spatial reference
- Layers panel with access to:
- Settings: fill and stroke style
- Zoom to bounds
- Delete
- Background selections
- Search panel
- Easy to replace or remove standard map panels
- Mouse for zoom in/out, pan, and mouse wheel for zooming
- Maps that can flow with HTML content or be resizeable
- Limit zoom levels and visible area
- Change styles for map elements
- Replace map elements with your own
- Map elements:
- Scale bars
- Coordinates
- Legends
- Graticules
- North arrows that point north
- Create new layers and new map elements
3D Needs:
- Create, position, rotate various types of lights in 3 dimensional space
- Extrude vector layers
Current Extensions
Editor
The editor allows users to dynamically create maps, obtain the properties for the map or save them to a server, and then recreate the map from the properties at a later date.
Possible Extensions
- Raster histograms?
- Editable vector data: points, polylines, polygons (how to make persistent?)
- Label layers for polylines and polygons (create in BlueSpray?)
- Save "maps" to a server and then load them again (i.e. a big JSON object that includes the layer, scene and CanvasMap settings).
Planned Changes
Below is a list of the changes that are planned for Canvas map.
- Move the private functions into the constructors where possible