ThinkGeo.com    |     Documentation    |     Premium Support

Sharpfile thai overlay on google map show other area not over thai

 i have shapefile thailand utm Zone 47N values utm X 281481 to 607785 and utm y 1264380 to 2293754 when show on map layer  on nigeria but when show on bing map in map component  shapefile show over thailand area. i solve problem ??


thankyou



Hi Dacha, 



The first thing to check is your Map1.MapUnit. 

If you are loading a shapefile in the UTM projection you will need to set your Map1.MapUnit = MapUnit.Meters. 

Can you set this up and then let me know your results?


Edit:

The Sales team alerted me that you had sent in a code sample via our sales e-mail address. In the future please provide all of your information within the post as this will allows us to assist you much quicker. If you need to post source code simple use our special source code tags explained here: gis.thinkgeo.com/Support/Dis...fault.aspx


The problem seems to be that you have not applied your projection to any of your layers. You have your Proj4Projection object setup properly, you just need to apply it you your shapefile layers using something like:



Proj4Projection proj4 = new Proj4Projection();
            proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
            proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();


            ShapeFileFeatureLayer worldLayer1 = new ShapeFileFeatureLayer(MapPath("~/YourShapefile.shp"));
            worldLayer1.FeatureSource.Projection = proj4;
            worldLayer1.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 212, 220, 184), GeoColor.FromArgb(255, 132, 132, 154), 1);
            worldLayer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


i set Map1.MapUnit = GeographyUnit.Meter  
 watch source  code 
  
Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
                Map1.CurrentExtent = new RectangleShape(2000000, 3000000, 3000000, 400000);
                Map1.MapUnit = GeographyUnit.Meter;
                
                Map1.MapTools.OverlaySwitcher.Enabled = true;
                Map1.MapTools.MouseCoordinate.Enabled = true;

                GoogleOverlay google = new GoogleOverlay("Google Map");
                google.JavaScriptLibraryUri = new Uri(ConfigurationManager.AppSettings["GoogleUriV3"]);
                google.GoogleMapType = GoogleMapType.Normal;

                ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("~/sharp/Changwat_77P.shp"));
                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 212, 220, 184), GeoColor.FromArgb(255, 132, 132, 154), 1);
                worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

                Proj4Projection proj4 = new Proj4Projection();
                proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
                proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();

                LayerOverlay shapeOverlay = new LayerOverlay("จังหวัด", false, TileType.SingleTile);
                shapeOverlay.Layers.Add(worldLayer);
                shapeOverlay.TransitionEffect = TransitionEffect.None;
              Map1.CustomOverlays.Add(google);
                Map1.CustomOverlays.Add(shapeOverlay);
 
  
  


The problem seems to be that you have not applied your projection to any of your layers. Please see the code sample provided above where the Projection is applied to the worldLayer1.FeatureSource.Projection property.