There are 3 main components to the MARCO Portal:
- Portal website
- Marine Planner
- Data Catalog
The Portal website is hosted using the Wordpress platform. The Marine Planner and Data Catalog are separate applications integrated into the website and are described in more detail below. The code is available for all three and you can watch the ongoing development on the GitHub project site. If you have any questions or are interested in learning about or using any of the technology please contact Tim Welch at Ecotrust, 503-467-0786.
MARCO Marine Planner
The Marine Planner application is a decision support tool for state, federal, and local decision-makers and the public to visualize, query, map, and analyze ocean and coastal data in the Mid-Atlantic region.
The current version of the Portal was developed using ArcServer and the ArcGIS viewer for Flex. While it functions well as a data viewer we recognized it isn't designed for collaborative decision support. There is no notion of user accounts, groups, private data, sharing, etc. The decision was made to continue to leverage the excellent ESRI basemaps but to develop an enhanced Marine Planner application using the Madrona framework. This enhanced portal will be introduced with release 2 of the MARCO Portal.
Madrona is primarily a server-side framework built on top of the Django framework. It provides a number of features tailored for spatial planning including a powerful spatial CMS with a full REST API and support for sharing between users and groups. PostGIS is used as the backend database. Other server-side libraries will be integrated as needed for spatial analysis and reporting features.
- Spatial CMS
- Map Bookmarks
- Data Layer management
- Spatial Analysis
- PostGIS support
- Geographic models
- Object-oriented spatial queries
- GEOS Python API
- GDAL Python API
- Vector and raster support
- First-class geographic data types
- Full spatial query support
- GiST indexing
The Madrona framework gives us the flexibility to use whatever technology we want. For this particular project it was decided that a 2D mapping solution would provide better performance and cartography than a 3D Google Earth solution. Licensing of the free Google Earth plugin was also a concern for some agencies. A number of 2D mapping clients are available but we decided that this project required the use of UTFGrid layers for scalable map feature interaction, mobile support (touch interaction), as well as support for vector drawing/editing on the map. The only mapping client that matched these requirements was OpenLayers. For the application UI and interaction we decided to go with the Bootstrap and Knockout libraries. Robust, extendable and cross-platform, these libraries take a lot of the pain out of UI development.
- Cross-browser DOM manipulation and event handling
- Extendable through plugin architecture
- Extensive third-party plugins
- Grid layout system
- Support for responsive design
- Suite of UI widgets
- CSS3 support
- Automatic UI Refresh
- Dependency tracking
ArcGIS is the product of choice for processing of data layers and map production. The Arc2Earth plugin is used to export maps as tile layers for use by the web mapping client. Arc2Earth allows you to render tiles for only the region you desire and for as many zoom levels as you need. All zoom levels are pre-rendered and published to Amazon S3 for exceptionally high-performance serving of map tiles through Amazon CloudFront at a relatively low cost.
The one thing that the ArcGIS-based workflow does not support is UTFGrid output. This is the key to getting scalable map feature interaction. Suddenly you can hover over a feature and get its attributes as opposed to having to click on the map and query the server for what feature is at that place on the map. To get this UTFGrid functionality we use TileMill, a cross-platform map production tool created by Development Seed.
- Data layer processing
- Cartographic rendering
- Robust map tile production (more features than ArcGIS)
- Publish directly to Amazon S3 storage
- Supports UTFGrid layer creation (ArcGIS does not)
- Robust workflow for map production
- Powerful carto map styling language
- Excellent rendering quality with Mapnik map engine
The MARCO Portal is hosted on a Ubuntu Linux Server on Amazon's Elastic Compute Cloud. We maintain a development and production server at a hosting cost of about $3000-$4000/year depending on usage. Large files such as map tiles, videos, and other static media are hosted on Amazon S3 and published through Amazon CloudFront. This takes the load of serving all of that static content off of the application server.
Amazon EC2Learn More
- Pay only for the resource you use
- Scalable infrastructure, add more resources during times of anticipated high-server load
- Simplified server maintenance
- No physical server, straightforward transition of control
Amazon S3Learn More
- Scalable - never worry about performance degrading due to the number of people accessing files
MARCO Data Catalog