Our application will be operating in a standalone/offline environment. It just so happens that we have access to a NASA World Wind map server.
Has anyone been able to get the xamGeographicMap control to work with a NASA World Wind map server? Intuition tells me it should be able to, but I don't want to go and reinvent the wheel if there is a working example I can pull from.
Any and all help is appreciated.
Hello Kristopher,
Thank you for your post. I have asked our development team to give me more details if the functionality you want can be achieved and I will update you as soon as they reply to me.
Thank you for your patience.
We did not try to get the xamGeographicMap control to work with a NASA World Wind map server. However, you should be able to do so by creating custom tile imagery source for NASA imagery and then binding it to the GeographicMap control's background content. You can find an example how to do this in WPF samples browser under: GeographicMap -> Data -> Creating Geo-imagery sample. You should either create multiple custom tile imagery sources for different sources of NASA imageries (e.g. BMNG, elevation data, I3 data http://worldwind.arc.nasa.gov/java/server/readme.html) or create one custom tile imagery source that has a property that determines what type of NASA imagery to load. If you need to display NASA imagery from multiple sources (e.g. elevation data and I3 data), you can overlay multiple imagery tiles using the Geographic Tile Imagery Series which has TileImagery property that can be bound to your custom imagery tile source(s). In addition, the Geographic Tile Imagery Series has option to clip tile imagery by a contours of a shapefile or list of list of points (geolocations) such that you limit boundary of tile imagery and thus increase performance of GeographicMap control and decrease number of requests for loading NASA imagery tiles. You can find an example how to use the Geographic Tile Imagery Series in WPF samples browser under: GeographicMap -> Display -> Geographic Tile Imagery Series sample.
Let me know if you have other questions about the GeoMap control.
Thanks,
Martin
Hello Kris,
We are looking forward to hear from you.
Alrighty, the lack of documentation regarding my specific problems with setting up a NASA World Wind server is astounding (especially in a standalone environment). Sooo... after setting up a local apt-mirror for ppa:nasaww/nasaww, I did the following using Ubuntu 12.04 LTS:
sudo apt-get install cgi-mapserver mapserver-bin gdal-binsudo apt-get install apache2sudo apt-get install libapache2-mod-mapcache mapcache-cgi
As a FYI, the newest version of the World Wind clients do not ship with "Server" stuff because they have embraced more open standards such as MapServer and GeoServer. I went with MapServer because the config file dump was already setup for it perfectly.
Its very important to use the nasaww repository since it requires gdal to be built with the DDS driver/format. After installing apache2, the WMS service was practically ready to go apart from a few other apache configuration steps to make the URL's nicer.
Mapcache was the missing key that allows for the Tile Map Service. The last apt-get install takes care of that installation. Then I followed the apache configuration details from http://mapserver.org/mapcache/install.html#apache-module-specific-instructions to get it setup. For the mapcache.xml file, well, I found a great example by installing the latest version of mapcache from ppa:ubuntugis/ppa onto a different "experimental" virtual machine (had to mirror that repo too). After tweaking the example just a littlebit to use my http://localhost/cgi-bin/mapserv? URL, correct parameters from nasaww wms url examples, and update the tileset configuration for nasaww, I was able to get my TMS service working http:///cgi-bin/mapcache/tms/1.0.0/. That URL gives a TMS config file that provides the HREF you need to use with the MapQuest example for xamGeographicMap! (Probably wondering when I was going to come back to IG, huh?) WHEW!
But wait there's more!
After following the MapQuest example, I have the tiled maps showing up in a sample project with the xamGeogrphicMap. However, the maps are displaying very wierdly. It's like the Y axis is backwards or something? Zoom in on South America and the tiles for Argentina are at the top and Brazil and Colombia at the bottom. Zoom all the way out and Antarctica is in the middle. As if the map were tiled into 2 pieces and they were swapped on the y axis. Is this something I can fix by changing the way xamGeographic map works, or do I need to troubleshoot my TMS service?
Thanks!!!
Kris
P.S.
TMS configuration documentation: http://mapserver.org/mapcache/services.html#tms-service
As a follow-up, I was doing some more reading and saw this:
Note
The OGC WMTS specification rather absurdly requires the GoogleCRS84Quad WellKnownScaleset to have a level 0 who’s extent is -180,-180,180,180. The default “WGS84” MapCache grid honors this, which may cause some incompatibilities with software that expects level 0 to be 2x1 tiles with extent -180,-90,180,90
Does the xamGeographicMap satisfy that last clause, therefore requiring some kind of workaround? Which perhaps explain my funny rendering issues?
Figured out the problem. It has to do with the origin for the service as being the bottom left whereas the xamGeographicMap thinks is the top left. Also seems that it doesn't request enough tiles from a width perspective. Australia is chopped off.
Not sure how to fix this yet. Is it possible to effectively change the "origin" for the xamGeographicMap to the bottom left instead of the top left? Or do you think I need to make changes to my service somehow?
I really need some help here, folks.
"The TMS standard counts tiles starting from the lower left corner of the tile grid, while Google Maps and compatible services start at the upper left corner." Is there any way to change xamGeographicMap so that tiles are in the bottom left corner?
Thank you for your feedback. I am glad that you resolved your issue and I believe that other community members may benefit from this as well.
Thanks again.
EUREKA!
I figured it out. It just so happens to be that my Mapcache installation also supports a gmaps service! It's just like the TMS service, except it requires a WMS capable of EPSG:3857. And it just so happens that the map data from NASA supports it with some minor changes to the .map file. As soon as I did that and updated my URLs to reflect it, the origin was the top left AND it spit back tiles in the right layout for xamGeographicMap!
All is well for this support request.