ThinkGeo.com    |     Documentation    |     Premium Support

Projection from AutoCad Map 3D2010

New guy, sorry. My shape file out of AutoCad Map 3D 2010 is off by about 30+- miles to the north northwest. Here is the prj file.


GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.000,298.25722210]],PRIMEM["Greenwich",0],UNIT["Degree",0.01745329251994]]


Thanks



Criag, 
  
 Thanks for the post! 
  
 On the surface it sounds like a datum issue to better trouble shoot it can you provide us with the following info? 
  
 1. Compared to what is it off by 30 miles?  Are you projecting it on top of a base map like world map kit? 
  
 2. Can you provide the code you are using to load and project the shapefile? 
  
 3. What do you have your MapUnit property set to on the map? 
  
 Thanks!

Now I really feel like the new guy. After comparing it with our KMZ in Google Earth I realized there was some missing data in the shape file. As to what was in the shape file it was no worse nor better than Google Earth.  The source data coming out of our old USGS quads may cause some discrepencies for both. I am going to rerun the shp file. I will keep you posted. 
  
 C

Thanks Craig, keep us posted and let us know if there is anything we can do to help out.

Just real quick here, if I am looking over a topic on page three and I hit the back button. Why does it take me back to the first page? I just want to go back to the page the topic was on. Where is that magic button hidden? 
  
 C

Craig, 
  
 The forum software uses AJAX to handle paging so the browsers back button doesn’t capture this. In order to go back one page use the Arrow buttons on each side of the page #'s and you can go back and forth one page at a time. 
  
 Thanks

That is no good. You should display as many pages as possible, not just 5. Or add a button that will capture that. To much clicking. 
  
 C

You can change the number of items per page up to 25 under the My Preferences tab when you click the My Profile link.  We don’t have any control over the underlying forum software since it’s a purchased module but I bumping up the items per page helps. 
  
 Thanks

Thanks Clint, I will take a look at the Preferences. 
   I created a new shape file out of AutoCad Map 3D 2010. I converted our EED(Extended Entity Data) to Object Data to include in the shape file. PipelineLayer.open() throws an exceprtion. I can load my previous shape which does not include any of the Object Data. I guess my ? would be what are the issues including this type of data in a shape file? Is there a limitation to the amount of data you can include? Could empty, null data throw this FileLoadException? 
  
 C

Craig, 
  
 Thanks for the question, what is the details of the exception you are receiving?  I’m not familiar with EED but I don’t know of any limitations on the shapefile format that would cause this issue.  Sometimes if the column names have spaces or invalid characters you can get an invalid shapefile.  If you want you can attach a copy of the shapefile in question or email it to forumsupport@thinkgeo.com and we can take a look. 
  
 Thanks! 
  


I sent some sample data to the forum support group. Let me know when you receive the files. 
  
 Thanks

Hello Craig, 
  
 Thank you for your data, we have received it, we are working on that and will let you know the answer as soon as possible. 
  
 Regards, 
  
 Gary

I cannot load any of my shape files now. I am not sure what I have done. I hope it doesn’t have anything to do with the evaluation copy I had on here. As before the exception it throws is asking to make sure it is a valid .NET assembly. 
  
 

Imports ThinkGeo.MapSuite.Core
Imports ThinkGeo.MapSuite.DesktopEdition

Public Class frmMain

  Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Me.Visible = False
    SplashScreen.Show()
    SplashScreen.Refresh()
    WinformsMap1.MapUnit = GeographyUnit.DecimalDegree
    Dim worldMapKitDesktopOverlay As New WorldMapKitWmsDesktopOverlay()
    WinformsMap1.Overlays.Add(worldMapKitDesktopOverlay)
    'Dim pipelineLayer As New ShapeFileFeatureLayer(“C:\Program Files\ThinkGeo\Map Suite Desktop Evaluation Edition 4.5\Samples\SampleData\Data\Pipelinedata.shp”)
    Dim pipelineLayer As New ShapeFileFeatureLayer(“D:\Projects.Net\GISView\Pipelinedata.shp”)
    Dim myTextStyle As TextStyle
    myTextStyle = TextStyles.CreateSimpleTextStyle(“ER”, “Arial”, 10, DrawingFontStyles.Regular, GeoColor.StandardColors.Red, 0, -12)
    myTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels
    myTextStyle.OverlappingRule = LabelOverlappingRule.AllowOverlapping
    pipelineLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = New LineStyle(New GeoPen(GeoColor.SimpleColors.Red, 2))
    pipelineLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = myTextStyle
    pipelineLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level12
    pipelineLayer.ZoomLevelSet.ZoomLevel13.DefaultLineStyle = New LineStyle(New GeoPen(GeoColor.SimpleColors.Red, 2))
    pipelineLayer.ZoomLevelSet.ZoomLevel13.DefaultTextStyle = myTextStyle
    pipelineLayer.ZoomLevelSet.ZoomLevel13.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
    Dim highlightLayer As New InMemoryFeatureLayer()
    highlightLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.River1
    highlightLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
    Dim worldMapKitOverlay As New LayerOverlay()
    worldMapKitOverlay.Layers.Add(New GISView.WorldMapKitRenderLayer(“D:\WorldMapKitData”))
    WinformsMap1.Overlays.Add(worldMapKitOverlay)
    Dim pipelineOverlay As New LayerOverlay()
    pipelineOverlay.Layers.Add(“myPipelineLayer”, pipelineLayer)
    WinformsMap1.Overlays.Add(“myPipelineOverlay”, pipelineOverlay)
    pipelineLayer.Open()

    pnlPipeData.Left = Screen.PrimaryScreen.Bounds.Width - pnlPipeData.Width
    pnlPosition.Left = pnlPipeData.Left
    tabRND.Left = pnlPosition.Left
    txtDesignation.BackColor = pnlPipeData.BackColor
    txtDesignation.BorderStyle = BorderStyle.None

    WinformsMap1.Left = 0
    WinformsMap1.Width = Screen.PrimaryScreen.Bounds.Width - pnlPipeData.Width
    WinformsMap1.Height = Screen.PrimaryScreen.Bounds.Height - 56
    WinformsMap1.CurrentExtent = pipelineLayer.GetBoundingBox()
    pipelineLayer.Close()
    WinformsMap1.Refresh()
    SplashScreen.Close()
    Me.Show()

  End Sub



I recovered my original shape file from my laptop and it ran. I again ran the new shape and the exception was returned. Something about that shape file data I sent is causing Map Suite to fail. Is it memory? I am not getting a memory error.

 Craig,


Thanks for your post, I loaded the shapefie you sent us and it seemed to load fine in Map Suite Explorer.  See the attached screen shot of how it displayed and let me know if this looks right.



Can you provide the exception details and stack trace?  This will help us figure out what's occuring.


Thanks!


 


 


 



I ran all of my shape files through Map Suite Explorer. Apparently this is a crucial step to create an index file. I will have to remember to do this when I create a new shape file. They all seem to be working. Now I get to work on getting the data in a textbox that moves with the cursor as I follow a line, changing on a new segment. And display county, nearest city, zip… How would I toggle the lines color/weight based on attribute data? 
  
 Thanks

Craig, 
  
 I’m glad you got it working, yes Map Suite explorer will build the Index Files for your shapefiles the first time you load them.  You can also build the indexes programatically via the Map Suite API by using the static BuildIndex method off of the ShapeFileFeatureLayer class like the code below: 
  
 ShapeFileFeatureLayer.BuildIndexFile(SHAPEFILE PATH); 
  
 To color the lines differently based on the attribute data you will probably want to take a look at the following Styles: 
  
 Class Break Style - This Style is used when you want to set a style for a specific range of values.  For example color all pipelines blue with a capacity between 1 and 10.  Color all pipelines green with a capacity between 11 and 20 and so on. 
  
 Value Style - This style is used when you want to style a feature based on a specific value.  For example color all pipelines with a value of NaturalGas as Blue color and color all pipelines with a value of OIL to Black and so on. 
  
 Reg Ex Style - This style uses RegEx expressions so you can style your features based on virtually any criteria as long as can be represented in a RegEx expression. 
  
 There are several other styles and you can even create your own custom style if our built styles don’t meet your needs.  I would recommend that you take a look at samples included in the How Do I samples under the “Styles” section. 
  
 Let us know if you have any questions. 
  
 Thanks!

OK, I am back to working on my Map App. If I change the color of a line. How do I maintain that setting at any ZoomLevel?

Hello Craig, 



When you have set a style to a layer, you can apply the style from one zoomlevel to another zoomlevel. please see the code below: 


worldLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Highway1;
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
 

In this code, set the linestyle to zoomlevel01, and apply to zoomlevel20, that will let all zoomlevels in 1-20 have the same linestyle. 



Regards, 



Gary



Thanks Gary I tried that. I want the color/linestyle to stay constant(what I set it to) at all ZoomLevels. The color changes when I zoom in close. What does zoom level 1-20 mean? Are they based on feet, miles? Why is there not a 00 level? 
  
 Thanks 
  
 C