A recent development on the Internet is the emergence of a new class of image servers, which are web sites or web services that provide geographic images to users or programs seeking an image displaying a particular geographic region on Earth. Sites like TerraServer, Google Maps, Google Earth, Microsoft Virtual Earth, Yahoo! Maps and similar provide on-demand viewing of a variety of geographic images. Manifold can work with images from such servers if drivers are written that conform to a set of commonly-occurring interface standards expressed within the Manifold Image Server Interface API.
Depending upon the content provided by the server, such images can be:
· Satellite or Aerial Imagery - Photographic images that show a particular region as seen from above. Examples include TerraServer and Microsoft Virtual Earth.
· Street Map Imagery - Images that show a raster rendering of what would otherwise be presented as a vector drawing, as if someone made a screenshot of a drawing or vector map in a GIS system. The Microsoft Virtual Earth web service provides such images.
· Other Images - Images that show shaded-relief surfaces, renderings of CAD drawings (like a screen shot of a CAD drawing) and other content. Examples include images served by Manifold System web services.
Although the interfaces to such image servers vary in the details, in general they tend to have such similar capabilities that it is possible to use a more or less standardized dialog to link images from such servers. Manifold provides a standard Image Server Interface (ISI) that can be used to write an ISI driver for an image server so that it may be used from the standard Manifold image server dialog.
Image servers supported by an ISI driver are called Manifold Image Servers. ISI drivers can be either built into Manifold System or can be loaded as external add-ins. In either case, if an ISI driver exists within Manifold then access to the supported image server will appear to be a built-in Manifold capability whether or not the ISI driver was installed as an add-on or was built into Manifold itself.
By default, there are two Manifold Image Servers supported with ISI drivers:
· TerraServer - An ISI driver built into Manifold allows linking images from a variety of TerraServer themes.
· Manifold IMS Web Sites - A built-in ISI driver allows linking images from an IMS web site created using Manifold System if that web site was created with the IMS option to create an image server page. Note that using Manifold IMS to serve images in this way is a slightly different technology than the default IMS server and is in addition to Manifold's ability to function as an Internet Map Server or as an OGC WMS server.
In addition to the above two built-in ISI drivers, there are many other drivers created by third parties and distributed as open source projects, for example:
· Google Maps - An open-source ISI driver that allows using Google Maps as a Manifold Image Server to provide images of street maps. Must be installed.
· Google Earth - An open-source ISI driver that allows using Google Earth as a Manifold Image Server to provide satellite images and overhead aerial photographic images. Must be installed.
· Virtual Earth Street Map Image - An open-source ISI driver that may be downloaded from numerous sources on the web allows using Microsoft Virtual Earth as a Manifold Image Server to provide images of street maps. Must be installed.
· Virtual Earth Satellite Image - An open-source ISI driver that may be downloaded from numerous sources on the web allows using Microsoft Virtual Earth as a Manifold Image Server to provide satellite images and overhead aerial photographic images. Must be installed.
· Yahoo! Maps Street Map Image - An open-source ISI driver that may be downloaded from numerous sources on the web allows using Yahoo! Maps as a Manifold Image Server to provide images of street maps. Must be installed.
Note that the Microsoft Virtual Earth open source project provides access to both images of street maps and also of satellite imagery. manifold.net encourages all Manifold users to employ Microsoft Virtual Earth in preference to Google image servers. See the Linked Images from Google Servers topic for reasons why.
ISI drivers created by third parties are not supported by Manifold tech support. Such modules are often open source projects with full source code available so that communities of users can support each other and make whatever modifications are desired. Users often discuss such open source projects in the usual open source web sites or on Manifold user community forums.
Developers wishing to create ISI drivers for other image servers can study the open source code for existing image server modules to learn how to create such drivers. Source code for such open source projects is available in the usual web sites serving the open source community. An ISI driver is, in effect an alternative browser that can connect to image server sites and provide a bridge for applications like Manifold to use the resulting imagery.
All Manifold Image Servers supported by ISI drivers will automatically fetch images to tile a particular region of interest as indicated either by the context of whatever component had the focus when the File - Link - Image dialog was launched or by manual specification of latitude and longitude extents. Manifold Image Servers also normally allow a choice of resolutions and image levels to be downloaded if a linked image is to be converted into a static image within the project. The image linking dialog for all image servers using ISI drivers is virtually the same.
To create a linked image from an Manifold Image Server:
1. Open a drawing or other component showing the region to be covered by the image fetched from the server. Although we can specify manually the latitude and longitude extents to be covered by the image, it is most convenient to let Manifold do so automatically based upon the extents of the opened component.
2. Choose File - Link - Image
3. In the Link dialog's Files of type box choose Manifold Image Servers ()
4. In the resulting dialog, the Server box lists all Manifold Image Servers for which ISI drivers have been added to the system, plus the built-in setting for Manifold IMS Web Site. The built-in ISI-supported option of TerraServer will not appear in this dialog as it is accessed through its own Files of type choice. If you have installed any additional ISI drivers, such as those for Microsoft Virtual Earth, these will appear in the dialog. Choose the type of image server desired, for example, Virtual Earth Street Map Image.
5. Enter a URL to use for the connection (required for some servers, such as Manifold IMS web sites) or use the default URL provided (in the case of Google servers). Press the Refresh button to connect to the server URL. To use a URL other than the default, click the Use customer server URL and enter the desired URL and then press the Refresh button.
6. When the Refresh button is pressed, Manifold will establish a connection with the image server. This is normally quite fast, but may take tens of seconds or even longer. When the connection is established the OK button will be enabled.
7. Specify the desired image Scale. Choose the latitude and longitude extents to be covered by the image. If a component was open when File - Link - Image dialog was launched the Longitude and Latitude range boxes will be pre-loaded with the correct latitude and longitude ranges to cover the opened component. If no component was open or if we would like to manually specify the latitude and longitude extents of the image we can do so. Press OK.
8. An image using a linked image icon will appear in the project. This image can now be opened and used like other images, except that images linked from image severs are read-only and cannot be re-projected.
When an image is linked from an image server, until the image is completely fetched, it will appear in an image window as a partially transparent gray rectangle covering the extents of the image. If the image is used as a layer in a map, it will appear in transparent color in those parts not yet fetched as tiles from the image server.
Images linked via the image server interface will use whatever coordinate system (projection) is returned by the image server module in use. If an invalid coordinate system is returned when linking an image Manifold will use the default coordinate system.
See the specific topics on liking images from the various ISI servers for details on using the linked image dialog with those servers.
Typical Link Image Server Dialog Controls
Manifold image servers will usually use a dialog with the following controls.
|
Server |
The server for the type of image desired. Different servers offer a variety of choices, such as different resolutions or color vs. grayscale images. |
|
Use custom server URL |
Specify the URL to use for the image server. If checked, enables specification of a custom URL in the Server box. This allows a change of URL if the image server moves from the default URL. |
|
URL |
URL to be used to connect to the image server. Enabled if the Use custom server URL box is checked. |
|
|
Refresh - Establish connection to the image server. |
|
Scale |
Desired scale of the image. Some image servers provide a choice of different scales. Choosing 10m (ten meters) will result in a smaller image with fewer pixels than an image obtained by choosing 1m (one meter). |
|
Longitude / Latitude |
Longitude and Latitude extents of the image to be linked. Pre-loaded with the extents of whatever open component has the focus when the dialog is launched. |
|
Cache data between sessions |
Controls whether the cache folder used to cache image tiles retains its content between different sessions of Manifold or not. By default, the option is turned on. |
|
Proxy |
Calls up the Tools - Options - Proxy server dialog that allows configuration of a proxy server connection, if a proxy server is used to connect to the Internet. Passwords supplied for proxy servers will be stored in encrypted form. |
The Manifold Image Server Interface (ISI)
Manifold's Image Server Interface (ISI) is an open standard published by manifold.net to make it easy for third party developers to create drivers that connect image servers to Manifold System. Image servers that can work with Manifold System using an ISI driver are called Manifold Image Servers and can be automatically accessed as if they were a built-in part of Manifold System using the File - Link - Image dialog.
See the Image Server Interface topic for a description of the interface. Programmers should also visit the manifold.net website for any supplemental documentation or example implementations, if any are made available in the future.
Third party developers creating image servers are strongly urged to craft an interface that, like those used by TerraServer, Microsoft and Yahoo!, is easy to support with an ISI driver. That will enable Manifold users to work with your image server from within Manifold System GIS projects. Using ISI provides maximum speed just as if your connection to the image server was built into Manifold's own internal code.
To write a new ISI driver for your image server, see the open source projects for the ISI drivers for the existing image servers. These ISI drivers provide the open source community with a rich, practical example of how to write an ISI driver for a real-world image server. See the usual open source sites for access to the ISI drivers for Manifold image servers.
Creating ISI drivers for image services as an open source project also has the benefit that if these web sites change interfaces then the open source community can alter the ISI drivers without having to wait for some vendor, such as manifold.net, to issue a new release of software. This enables innovative companies like the image server providers to keep innovating while the open source community can continue working within open standards to support those innovations.
Typical Image Server Driver Installation
A typical image server driver installation package consists of a zip file that contains one or more .dll files. The file should be unzipped and the resultant .dll files should be copied into the Manifold System installation folder. When Manifold is launched it will detect the new .dll files and will add the supported to the image server dialog choices.
The default Manifold System installation folder is C:\Program Files\Manifold System\.

After installation the .dll files will appear as seen in the above screenshot, showing how image server files for Google, Yahoo! and Microsoft Virtual Earth have been added to the default image server .dll files installed with Manifold.
Notes
A project that uses an image linked from an image server may be saved within .map project file just like any other project. However, keep in mind if sending that .map file to someone else they also will need to have installed on their machine the required image server module (if it is not one of the built-in image servers) to view the linked image. Loading a .map file with an image linked from a Manifold image server that is not installed on the system will report the problem and the name of the missing image server in the History pane.
See Also
Intermediate Levels and Pyramids
Linked Images from Manifold IMS Web Sites
Linked Images from Google Servers
Linked Images from Microsoft Virtual Earth
Linked Images from OGC WMS Servers
Linked Images from TerraServer
Linked Images from Yahoo! Maps
Working with Large Images or Surfaces