ThinkGeo.com    |     Documentation    |     Premium Support

Projections?

Hi guys,


I have the following code 


 


WinformsMap1.MapUnit = GeographyUnit.Meter



        Dim Proj4 As Proj4Projection = New Proj4Projection



        Dim minx As Double = 7.5635861 'Mininum Longitude

        Dim miny As Double = 50.4159917 'Minimum Latitude

        Dim maxx As Double = 7.5672833 'Maximum Longitude

        Dim maxy As Double = 50.4195222 'Maximum Latitude





        Dim googleMapsOverlay As New GoogleMapsOverlay()

        Dim stateOverlay As New LayerOverlay()

        Dim layer As New ShapeFileFeatureLayer("BendorfTN_line.shp")



        ShapeFileFeatureLayer.BuildIndexFile("BendorfTN_line.shp")



        layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20

        layer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = New AreaStyle(New GeoPen(GeoColor.SimpleColors.Black), New GeoSolidBrush(GeoColor.SimpleColors.Yellow))

        layer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = New LineStyle(New GeoPen(GeoColor.SimpleColors.Black, 1))

        layer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = New PointStyle(PointSymbolType.Circle, New GeoSolidBrush(GeoColor.SimpleColors.Green), 10)



        Proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326)

        Proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString()



        Proj4.Open()

        WinformsMap1.CurrentExtent = Proj4.ConvertToExternalProjection(New RectangleShape(minx, maxy, maxx, miny))

        Proj4.Close()



        layer.FeatureSource.Projection = Proj4



        stateOverlay.Layers.Add("KmlLayer", layer)



        WinformsMap1.ZoomLevelSnapping = ZoomLevelSnappingMode.[Default]



        WinformsMap1.Overlays.Add(googleMapsOverlay)

        WinformsMap1.Overlays.Add("StateOverlay", stateOverlay)



        WinformsMap1.Refresh()


 


 


I want to also add a rotation to the projection, if i create a rotationprojection and then apply that to my shapefile layer i lose my shapefile because the projection that i previously applied has been overwritten with the rotation projection. 


Does anyone know how i can apply my proj4projection and then add a rotation to that.


Thanks


Aaron



You want to have a projection applied to a layer and then apply a rotation to it. That should be possible without major problem but I have some doubts based on the code that you posted. I see that you are using a Google Map overlay. Google Map cannot be rotated so if you apply a rotation to your layer it is not going to match with Google Map. I want you to be aware of that or, maybe, I don’t fully understand your case and if so, it would be good if you could give some more explanations of what you are trying to accomplish. Thank you.

Val,


Thanks for your reply. The rotation i want to apply is to the shapefilefeaturelayer only, named in this case 'layer'. i have a situation that requires a map to be displayed in a specified number of degrees from it's true orientation, once the google imagery is turned on the map will then be rotated to it's true orientation to match the google layer. 


I understand that the code case that i have provided doesn't highlight this need exactly. The google imagery can for the most part be disregarded in the rotation action as i'm aware that this cannot be rotated.


You're initial understanding of the the problem "You want to have a projection applied to a layer and then apply a rotation to it." was totally correct and as you mentioned that this is possible, could provide a code sample on how to do this? it would help me greatly.


Thanks Again


Aaron


 



Aaron, 
  
  Ok, now I understand clearly what you expect. Tomorrow, we will provide you with the projection class that allows to project a layer from Geodetic (EPSG 4326) to Spherical Mercator (Google Map projection) and do the rotation at the same time. Thank you.

Aaron,


We have created a Projection class like Val said. Please look at the attached file.


Let me know if you have questions.


Thanks,


James



NewProjection.zip (773 Bytes)

Hi guys,


I've tried to implement your solution but it's not having the effects that i would have assumed, where in the past i've added a rotation the map has rotated about a single point which is what i assumed would be the case in this instance. 


However, when i run the application and apply a rotation my map moves to a new location . 


i also have a strange error of the map dissapearing when i get to a specific zoom level?


Perhaps i'm missing something obvious here as this is a little new to me.


I'm going to open a ticket in the customer support as it's much easier for me to upload all of my data for yourselves so that you can see clearer what is going on in this specific case.


Once the issue has been resolved i'll post a response here incase anyone else needs it in the future.


 


Thanks for the initial help.


Aaron



Aaron, 
  
  I just got assigned the support ticket related to your issue. We will work from that ticket and once we have the complete solution, we will show it on this post for everybody to take advantage of.