ThinkGeo.com    |     Documentation    |     Premium Support

Google Maps and GeoTiff raster layer

I have seen
in the Release Notes of the Map Suite 8.0 that is possible to reproject Google Maps, Bing
Maps and OpenStreetMap layers and overlays. How can it
be done?


 I currently
have a GeoTiff image as reference map and the map unit in meters. This
GeoTiff map has its correspondand epsg area, and all the other data that we add to the map is
converted using the projection:


ManagedProj4Projection GeoToUTM = new ManagedProj4Projection(); 


GeoToUTM.InternalProjectionParametersString
= Proj4Projection.GetEsriParametersString(4326);    // WGS84
(Geodetic) 


GeoToUTM.ExternalProjectionParametersString
= Proj4Projection.GetEpsgParametersString(mapEpsg);


 

If I
include an overlay in the map with Bing or Google Maps, the location of the GeoTiff image does not
match with the overaly.


BingMapsOverlay bingMaps = new BingMapsOverlay(“xxxx”);

winformsMap1.Overlays.Add("test",
bingMaps);



Is it necessary to reproject the Bing or Google Maps? 

Or is it necessary to project the GeoTiff image?



Regards,

Jose Maria



Hi Jose Maria,



Thanks for using MS 8.0.



Now we have a property in the google/bing/osm layer named ProjectionFromSphericalMercator to reproject those maps, you can see the sample below:


// Please set your own information about those parameters below.
            string applicationID = “Your ApplicationID”
            string cacheDirectory = @"c:\temp";
            BingMapsLayer worldLayer = new BingMapsLayer(applicationID, BingMapsMapType.Road, cacheDirectory);
            string internalProjString = ManagedProj4Projection.GetGoogleMapParametersString();
            string externalProjString = ManagedProj4Projection.GetEpsgParametersString(4326);
            Proj4Projection projection = new Proj4Projection(internalProjString, externalProjString);
            projection.Open();
            worldLayer.ProjectionFromSphericalMercator = projection;
            LayerOverlay staticOverlay = new LayerOverlay();
            staticOverlay.Layers.Add(“WorldLayer”, worldLayer);
            winformsMap1.Overlays.Add(staticOverlay);
 
            winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
            winformsMap1.CurrentExtent = new RectangleShape(-139.2, 92.4, 120.9, -93.2);
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
 
            winformsMap1.Refresh();



But for your scenario, your GeoTiff file are meter, so it’s the same as bing map, you don’t need reproject bing or your GeoTiff, projection your other data is the right way, I think the problem comes from the data file re-projection, could you please upload your data file and we can have a try? If it’s a self-contained sample, it will be appreciated.



Thanks,



Gary



I have been following this topic as it is something I have always wondered:



"Is it necessary to reproject the Bing or Google Maps? 

Or is it necessary to project the GeoTiff image?"



In general if I have several WGS-84 vector layers for example and want to add a Google Maps background, is it better/faster to reproject the Google Maps layer or all the WGS-84 layers? I am hoping the former!




Many thank for the answers! 



The problem is that the GeoTiff file, which is my base map, has a different EPSG area, that is 32630. I have tested projecting (changing Datum) the Google Maps to this EPSG area and it works, but it is very slow. 




string internalProjString = ManagedProj4Projection.GetGoogleMapParametersString();
string externalProjString = ManagedProj4Projection.GetEpsgParametersString(32630);

Is there another way to perform this faster? 

Have I doing something wrong with the projections? Is it better to project the GeoTiff file offline and store it? 



I have uploaded a sample project with that to (The TIFF file is around 80Mb) 

speedyshare.com/cQf7T/MapTest.zip 



Many thanks! 

Jose Maria 






Hi Jose Maria, 
  
 Thanks for the sample, but sorry today my internet connection is not stable, and I don’t have a speedyshare premium account to download the file, use free download does not support resume download, I didn’t successful get your sample, I will reply the result here as soon as I got the data. 
  
 For your performance question, for now we are using a third-part library to do the google/bing/osm re-project, so the performance may not be good for now, we will keep working on this to improve it. as a solution, re-project the GeoTiff file and pre-generate is a good way. 
  
 Regards, 
  
 Gary