Manifold® Internet Map Server Example Sites
See the Manifold Internet Map Server (IMS) page for an introduction to Manifold IMS. This page provides examples of "live" IMS sites hosted on manifold.net servers. Click on the thumbnails to visit the "live" site.
Manifold can write ASP or ASP .NET web sites from a project automatically using standard templates. Most website developers will begin a project by letting Manifold create the web site for them. As developers gain more experience they will often modify the code Manifold writes to customize a site to their taste or to add capabilities. Experienced developers will often write a web site from the ground up, instantiating and using Manifold objects as needed for a fully custom site.
Sophisticated use of Manifold IMS can provide nationwide web sites even for a country as large and as populated as the United States without breaking the budget. Manifold IMS scales extremely efficiently from a cost perspective because Manifold IMS can run as a true 64-bit application within x64 Windows, enabling webmasters to take advantage of large quantities of inexpensive RAM, 64-bit DBMS and multicore 64-bit processors for maximum reliability and cost efficiency.
Tutorial Examples
The following sections provides examples using standard templates and also programmed web site examples to provide a representative range of tutorial examples. The example sites shown have been created for download as tutorial examples to teach techniques of interest to Manifold IMS programmers. Sites are therefore relatively simple; however, the experienced web site developer will immediately see how the features illustrated in these example sites can be combined to make arbitrarily custom sites to serve any need.
Standard Templates
Manifold IMS automatically creates web sites from Manifold projects using a variety of templates. These example sites show the use of three different templates.
High compatibility template: Mexico - This template creates a site that will work with older, "4.x" style browsers from Microsoft, Netscape, Mozilla and Opera. The sites use more austere style with text link menus instead of command buttons. Tables created by the Find tool and queries will pop open in a new browser window. Pan by clicking near the edges of the map.
High compatibility template: Surface with Vector Layers - Montara Mountain SDTS DEM surface overlayed on a base map of the San Francisco Bay region, with roads and hydrography layers. Zoom in to see the surface. This generates detailed images (due to the surface... same as raster images) that do not compress well and so the image served to your browser may be over 150K in size. If you have a slow Internet link it could take a while for the image to be downloaded. Note how much faster the mexico example is ("sparse" images compress well and so are smaller) even though it too is a large image size.
Standard template: Theater - This template creates attractive sites designed for newer "5.x" browsers including Microsoft IE, Netscape, Mozilla and Opera. It provides a point and click Info tool as well as a prettier, tool-based interface. Pan by selecting the Center tool and then clicking anywhere near the edge of the map. The example shows architectural plans for the TSB Theater in Plymouth, New Zealand taken from .dxf files. A smaller window, but showing how one can use Manifold IMS to publish CAD drawings.
Standard template with frames: 107th Congressional Districts - A very fast and convenient template for newer "5.x" browsers that reports the results of queries, Find and the Info button in tables that appear below the main map display. With or without frames, the standard template is a good choice for high performance intranet use and internet web sites aimed at more sophisticated users who want greater interactivity with the data sets.
The example shows a practical application that shows Congressional districts in the United States for the 107th Congress with many IMS features such as a legend, a query and Info and Find tools. Zoom in to see ever more detailed city names. Click on the Info tool and then click on a district to see the name of the representative and their web site. Try entering Barton in the Find box to see a bizarrely "Gerrymandered" district. The Query pane is set up with a query that will list all representatives in a particular state. Enter the state's two letter postal code and press Query to see the representatives, sorted by last name.
A Non-Geographic Example
Villa dei Papiri - This examples shows how a standard template can be used in a non-geographic setting. The drawing shows the Villa of the Papyri in Herculaneum, an enormous Roman villa entombed by the eruption of Vesuvius in 79 AD. Although the villa is known for the many papyri found there, it is also the site where one of the largest collections of ancient sculpture was found. Round circles show the "findspots" of statuary. Blue spots show available images. Click on a blue spot to see the image of the statue found at that spot. This example uses the built-in high compatibility template. Navigate by clicking the menu commands and pan the image by clicking near the border.
This project was created by scanning at 1200 DPI a paper drawing created in the late 1700's. Three smaller scans were built as a mosaic into a single large image, over 600 MB in size, to create the background. The image is such high resolution that individual lithography color dots become visible at high zoom. The image displays instantaneously because it has been stored as an ECW file and linked into the Manifold project. Numbers show findspots of statues as recorded during excavations in the 1700's. Villa structural elements are in red. Tunnels used to excavate the villa are in brown. The villa was buried by over 60 feet of hardened volcanic flow, so after discovery during the digging of a well it was explored by digging narrow, longitudinal tunnels deep underground to reach different parts of the villa, much of which is still buried and unknown.
Number labels use locked scale so the numbers get larger and smaller when zooming in or out. Drawing layers above the image layer include area objects in the shapes of circles at the find spots, with thematic formatting turned on so that findspots which have a picture attached are shown in blue. A URL data type in the drawing's table points to the URL for each image. Clicking on an object will launch the URL if it has one. The project also shows an interesting use of a transparent rectangular area to create an effect similar to the use of an image map: Clicking into the room shown in the illustration at right will click onto a transparent area object (not seen, but still has effect) to launch the URL for that area object to show an image of a bronze bust discovered in that room.
This project is non-geographic in that it uses a scanned paper drawing as a visual user interface from which to launch other images or web pages. The drawing could be an image of a grocery store aisle with hyperlinks launched to show details of what is in that aisle, it could be an image of a factory floor with hyperlinks to maintenance documentation for machinery visible or it could be any one of many other similar applications where clicking into an image calls up other images or web sites. This example was created using a default template with no programming at all. Once images were scanned and numbers entered, the actual project took less than fifteen minutes to author and only a few minutes to deploy.
Programmed Examples
Manifold.net provides programming examples for IMS that show how simple programming can be used to create custom sites. The following examples teach advanced web programming with IMS. They assume the user is familiar with Manifold and with standard Microsoft Web programming techniques. The user interfaces for these examples have been deliberately kept simple in order to make the programming techniques being taught more obvious.
Download a zip file containing source code and data for these examples: IMS_prog_examples.zip
Webcities - This site provides an example of programmatic use of Manifold IMS to create web pages. It was created without use of a template by scripting in Javascript in the .asp files used. Two new toolbar buttons are added. Click the Zoom to Cities button and then click near a city dot to get information (lat/lon location) on that city. Click on the Zoom to Query button and click anywhere in the map to find all cities within the given distance of the clicked point. A table with hyperlinks to the city appears for all cities within range.
Navigation - Shows the combined use of server-side and client-side code to implement zoom box functionality and custom scaling. Also demonstrates how to switch themes by toggling map layers. Zoom ranges allow new layers (roads, rivers, cities) to come into view when zooming in.
OverviewMap - Demonstrates how to create and use an overview map for navigation in the main map. Shows various techniques to re-center and re-scale the map view. Includes use of user-specified locations using coordinate conversion on the fly to specify desired views. Also shows how to organize labels in layers so that more important layers are given priority.
Geocoding - Demonstrates how to use the Manifold geocoding engine from IMS. This requires installation of the Manifold 6.50 Geocoding Data product on the IMS machine as well as Manifold 6.50. To keep the example easily downloadable it does not contain complete streets for the US but rather just pans to show town names. Only the main cities have labels on them. The example allows entering addresses either as a single, concatenated line or as separate street address, city, state and zip fields. Entering just a zip code is a handy way of looking up a zip code.
It has reasonable error return despite being a tutorial example. For instance, if a visitor enters an address of "1600 Pennsylvania Ave, Washington, DC" into the single line address box it will return an alternative match using the correct street name of "1600 Pennsylvania Ave NW".
MultiMap - This example web site demonstrates the use of IMS with multiple .map files. Click on any state to drill down into a regional map that shows counties. Within a regional map, click the Info tool and then click on a county to get demographic info for that county. You can also use the Info tool at the main US level to get demographic info on a state. Counties within regional maps are colored by population, with more densely populated counties in lighter colors.
More Advanced Web Site Programming Examples
Tiles - This example shows a fully custom navigation cluster of controls that "floats" above a map that is created by tiling many smaller IMS-served tile images. The example illustrates:
- How to render and navigate a map on the whole screen.
- How to render a map with tiles to facilitate client-side caching.
- How to register clicks into individual map tiles.
- How to display table data in a semi-transparent overlay window over the map image.
Terrains - This example website demonstrates how to render terrains. Navigating within the shaded relief surface of the Grand Canyon shows the 3D view in a terrain window along the bearing direction specified. Options include the ability to turn on vector overlays (using a simple drawing). The example illustrates:
- How to set the display options of a terrain component.
- How to serve a dynamic image component without running into multi-user conflicts.
- How to create an instance of the MapServer object without a configuration file.
- How to update an image served on a web page without reloading the entire page.
Elevations - This example website demonstrates how to render elevations. The elevation window shows heights in profile (elevation) along the line drawn through the shaded relief surface of the Grand Canyon. The example illustrates:
- How to visually create a profile line.
- How to set the display options of an elevation component.
- How to serve a dynamic image component without running into multi-user conflicts.
- How to create an instance of the MapServer object without a configuration file.
- How to share data between pages using the ASP Session object.
Breadcrumb - This example website demonstrates a breadcrumb control, that is a navigation line that shows where within a display or navigation hierarchy the view is located. The example illustrates:
- How to obtain the bounding box of the area shown by IMS in the coordinate system of the served component.
- How to run a parameter query and consume the records it returns.
- How to use parameter queries to create and run a breadcrumb control.
Routing - This website uses the optimal routing engine delivered with the Business Tools option to plan highway routes between locations in Mexico complete with driving directions. Choose a beginning location, any intermediate locations (if desired) and an end location and Manifold will create an optimal route. Driving directions are reported in a side pane. If desired the route can be animated. This example illustrates:
- How to convert a location in the coordinate system of the component served by IMS to screen coordinates.
- How to extract the columns of a clicked object by processing XML returned by IMS.
- How to overlay icons on top of the map image and adjust their locations according to the current viewport.
- How to locate an optimal route between given locations.
- How to render the located optimal route using a dynamic drawing.
- How to animate the located optimal route with a client-side script.
- How to report driving directions.
Query Builder (Requires MSXML4 or greater on client machine) - This IMS application allows users to construct their own spatial SQL queries and to execute them. A sophisticated example of client-side scripting, this example illustrates:
- How to design an ad-hoc query using client-side controls.
- How to run an ad-hoc query and display the records it returns.
- How to persist the records returned by the query on the page so there is no need to recompute them.
- How to zoom to objects using an identity column.
Click here for the free Microsoft download site for MSXML4. Get msxml.msi from that page (bottom of page).
Tooltips (Requires MSXML4 or greater on client machine) - A subtle, but effective, example showing how to fetch data from map objects via IMS and display it as pop-up tooltips that appear when the cursor hovers over an object, complete with additional database information displayed to the right of the map. This example illustrates:
- How to display a tooltip using a timer.
- How to request data from the server without reloading the page.
- How to obtain data from the XML using XPath.
- How to transform XML into HTML using XSLT.
Click here for the free Microsoft download site for MSXML4. Get msxml.msi from that page (bottom of page).
Tracker - An example exploring the use of dynamic drawings to create shapes overlaid upon the map. It uses a map of Australia and New Zealand upon which lines or areas may be drawn, with automatic reporting of Euclidean distance or area or Ellipsoidal ("Earth") distance or area in the user's choice of common units. This example illustrates:
- How to convert screen coordinates to the coordinate system of the component served by IMS.
- How to compute the length, the ellipsoidal length and the area of an arbitrary vector shape using queries.
- How to display shapes over the map using dynamic drawings.
- How to pass large amounts of data between ASP pages using the Session object.
- How to maintain dynamic drawings on a per-user basis.
Geocoding Label - This example website demonstrates how to use the Manifold geocoding engine from Manifold IMS, popping up a persistent label on a map of the US at the geocoded location. This example illustrates:
- How to convert a location in the coordinate system of the component served by IMS to screen coordinates.
- How to create the geocoder object and use it to locate user-supplied addresses.
- How to place a label over a match returned by the geocoder.
Folders - This example shows how to group layers using folders. The example illustrates:
- How to use server-side code to generate dynamic client-side code.
- How to organize layers into folders.
Scale Well - A "scale well" is a vertical column of scale settings that may be clicked to change scale, to zoom in and out. This example shows how to control scale via a scale well. The example illustrates:
- How to convert display scale to absolute scale and vice versa.
SVG - This example website demonstrates how to send vector data to the client in SVG format. This example illustrates:
- How to render a drawing to an SVG stream.
- How to display SVG on the client.
Download a zip file containing source code and data for these examples: IMS_prog_examples.zip
A Commercial Template
Town of Monroe Master Plan Update - Many users employ Manifold IMS for commercial and government web sites, beginning with templates that are sold by consultants or commercial companies. This example shows a large, sophisticated IMS site that is a commercial product. This site assists various Town of Monroe departments in creating, updating and implementing the town's master plan. It includes a variety of different layer types (drawings, images, etc) and allows free-form SQL entry. This is a "cloned" version of the town's actual site. However, it is not being updated and should not be used for actual legal or governmental purposes. This web site was designed for daily use by trained personnel and requires large monitors with good resolution for best viewing. Used by permission. This IMS site was created using the gisadvisor.com template for Manifold IMS.
Visit the following pages for additional, detailed information on Manifold IMS:
- Internet Map Server - Manifold IMS home page.
- IMS Requirements - Hardware and software requirements for running Manifold IMS.
- Top 10 IMS Advantages - The top ten advantages reported by Manifold users over using old-fashioned, archaic IMS products.
- IMS FAQ - Frequently asked questions and answers.
Questions?
Please contact us at sales@manifold.net. We would like you to be happy with your licensing of Manifold products, so please do not hesitate to ask any questions before placing an order.
