Git Product home page Git Product logo

dotspatial's Introduction

What is DotSpatial?

DotSpatial is a geographic information system library written for .NET Framework (V1-V3) and .NET Core (V4+). It allows developers to incorporate spatial data, analysis and mapping functionality into their applications or to contribute GIS extensions to the community.

DotSpatial provides a map control for .NET and several GIS capabilities including:

  • Display a map in a .NET Windows Forms.
  • Open shapefiles, grids, rasters and images.
  • Render symbology and labels.
  • Reproject on the fly.
  • Manipulate and display attribute data.
  • Scientific analysis.
  • Read GPS data.

Questions & Documentation

Please use the discussion list to post any discussions related to the development or use of DotSpatial libraries. This is a great place to discuss potential features and to ask questions about how to use the libraries.

Documentation and code samples:

Still have questions? Maybe someone already asked them.

Contribute

See Contributing for information about how to contribute!

Links

License

It's MIT. The original DotSpatial (dotspatial.codeplex.com) was released under the LGPL, the new version hosted on GitHub is released under the MIT license.

NuGet packages

You can download the latest stable release via NuGet.

Package
DotSpatial.Serialization
DotSpatial.Data
DotSpatial.Data.Forms
DotSpatial.Topology
DotSpatial.Projections
DotSpatial.Projections.Forms
DotSpatial.Analysis
DotSpatial.Compatibility
DotSpatial.Controls
DotSpatial.Extensions
DotSpatial.Modeling.Forms
DotSpatial.Symbology
DotSpatial.Symbology.Forms
DotSpatial.Mono
DotSpatial.Positioning
DotSpatial.Positioning.Forms
DotSpatial.Positioning.Design

dotspatial's People

Contributors

bdgza avatar danames avatar dependabot[bot] avatar donogst avatar ghgetonup avatar gojanpaolo avatar inforithmics avatar itwh avatar jany-tenaj avatar jfevia avatar joe-keysoft avatar manfredwippel avatar mathias13 avatar matthiasschilder avatar mattythomas avatar mkaring avatar mmbayles avatar mogikanin avatar mytudousi avatar naokiueda avatar pashcovich avatar pedwik avatar pergerch avatar sindizzy avatar southernprogrammer avatar spaddlewit avatar tjm00 avatar uliegger avatar valeriimalynovskyi avatar waterdesk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotspatial's Issues

Shape Editing doesn't deactivate properly

This issue was imported from CodePlex

Shade1974 wrote 2010-09-16 at 00:18
I got the right-click thing, and that does allow you to finish off a shape or a part, but the pointer remains in draw mode... I can't get it to go back to select mode or measure mode.

Actually it is a bit more odd than that. After finishing a shape, you can select the measure tool, and the measure dialog will appear, and you can draw what appears to be a path of rubber-band lines and get a total distance, but you are actually still drawing
a shape... the right click dialog is still available even in measure mode.

I am no ubercoder, but I think I up to the task of adding to shape editor... after a series of stupid questions while I get my bearings within the code. I'll make a fork as you suggest.

Didn't I see regular polygons and transparency somewhere in this project already? Where could I get a peek at how it was done before? Buried somewhere in the MW project?

Dave

Raster: Get Mean value

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:30
The DotSpatial.Data unit tests show that the get mean value is supposed to return the average value of the cells in the raster. Since, the get max and min functions are not working. This function may or may not be working. The get max and min issues should
be addressed before this issue. I'm uploading a raster that can be used to test this function.

AlamoMan wrote 2010-07-14 at 20:38
The Raster unit test is available in the DotSpatial.Data Unit test.

Symbology Tools Need to Use Paging For Large Data Tables.

This issue was imported from CodePlex

dotnetsa wrote 2010-08-24 at 13:34
When setting Symbology (Unique Values ,0,1,2,3,4) on a shapefile (100400 shapes). Error: Exception of type 'System.OutOfMemoryException' was thrown

JohnDiss wrote 2010-08-29 at 14:29
Can you comment on your environment? I suspect you reached the memory limit of an x86 process. A stack trace would be useful too.

dotnetsa wrote 2010-08-31 at 12:17
I used the Test Viewer application to load a shape file. In the Layer Properties Dialog I created Symbology(unique values) for that layer, the uniques values are being searched for and found. As soon as I click OK to apply the symbology and return to the
map I get the error. Please find the text file attached with the error.

dotnetsa wrote 2010-08-31 at 12:31
Memory info: I have 2GB RAM.

Test Viewer Memory usage after startup: 20 832 K

Test Viewer Memory usage with layer added: 91 492 K

Test Viewer Memory usage after discovering Unique Values: 230 244 K

Shade1974 wrote 2010-09-04 at 22:17
The issue needs to be rephrased. The problem is that for large shapefiles the dbf content can be too big to fit in memory. So to avoid loading it all, for viewing in the data-table, we use the DataTable in virtual mode. What needs to happen is that the
Symbology tools need to be tweaked so that for shapefiles that are too big to load the dbf into ram, it uses a "paging" technique to read in a page of data at a time in order to perform the necessary calculations to give you summary statistics or
whatever. We should also probably have any steps that require time to process warn the user if they are going to require significant amounts of time to perform. This is a significant problem since many people work with shapefiles with 100k or more shapes in
them, and that's all it takes to tank the symbology tools.

dotnetsa wrote 2010-10-08 at 11:00
How is the progress on this issue?

dotnetsa wrote 2010-11-10 at 12:16
Symbology is a big part in any GIS project. I see this is still a problem. Any news?

Crash in MapPointLayer

This issue was imported from CodePlex

valentinedwv wrote 2010-09-08 at 17:40
For Hydrodesktop, What would cause a failure in MapPointLayer conversion.

"I created a theme based on search for air temperature in the area around Aberdeen, Scotland. Downloaded one data series. CLosed HD. Next day opened HD. Right clicked on Aberdeen theme and chose "Zoom to Layer". HD threw exception (but I was
able to continue. Tried again; threw same exception. Could continue using program.

Here are details::

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.OverflowException: Value was either too large or too small for an Int32.

at System.Convert.ToInt32(Double value)

at DotSpatial.Map.MapPointLayer.DrawFeatures(MapArgs e, IEnumerable1 indices)

at DotSpatial.Map.MapPointLayer.DrawFeatures(MapArgs args, List1 indices, List1 clipRectangles, Boolean useChunks)

at DotSpatial.Map.MapPointLayer.DrawRegions(MapArgs args, List1 regions)

at DotSpatial.Map.MapGroup.DrawRegions(MapArgs args, List1 regions)

at DotSpatial.Map.MapFrame.Initialize(List1 regions)

at DotSpatial.Map.MapFrame.Initialize()

at DotSpatial.Map.MapFrame.ResetBuffer()

at DotSpatial.Map.MapFrame.set_Extents(IEnvelope value)

at DotSpatial.Map.MapFrame.Layers_ZoomToLayer(Object sender, EnvelopeArgs e)

at System.EventHandler1.Invoke(Object sender, TEventArgs e)

at DotSpatial.Drawing.LayerEventList1.OnZoomToLayer(Object sender, EnvelopeArgs e)

at DotSpatial.Drawing.LayerEventList1.Layer_ZoomToLayer(Object sender, EnvelopeArgs e)

at DotSpatial.Drawing.Layer.OnZoomToLayer(IEnvelope env)

at DotSpatial.Drawing.Group.Layers_ZoomToLayer(Object sender, EnvelopeArgs e)

at DotSpatial.Drawing.LayerEventList1.OnZoomToLayer(Object sender, EnvelopeArgs e)

at DotSpatial.Drawing.LayerEventList`1.Layer_ZoomToLayer(Object sender, EnvelopeArgs e)

at DotSpatial.Drawing.Layer.OnZoomToLayer()

at DotSpatial.Drawing.Layer.ZoomToLayerClick(Object sender, EventArgs e)

at System.Windows.Forms.MenuItem.OnClick(EventArgs e)

at System.Windows.Forms.MenuItem.MenuItemData.Execute()

at System.Windows.Forms.Command.Invoke()

at System.Windows.Forms.Command.DispatchID(Int32 id)

at System.Windows.Forms.Control.WmCommand(Message& m)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

valentinedwv wrote 2010-09-08 at 17:40
http://hydrodesktop.codeplex.com/workitem/7134

Shade1974 wrote 2010-09-08 at 19:19
Hmm. If you point layer has no points, zoom to layer might not work without an extent. If your layer has one point, then there is no really good way to know how close to zoom in, and maybe the zoom scale it picked didn't work for the conversion when it
came to converting the values to pixel coordinates. Can you export the specified data layer to a shapefile, zip those files and then attach it to this thread? That way I could try to track it down in code. Thanks.

mattgerg wrote 2010-09-11 at 00:26
When following the tutorial from the MapWindow6 page, I receive a NullReferenceException when the MapPointList tries to redraw itself during the .Invalidate() method.

http://mapwindow6.codeplex.com/wikipage?title=AddMarkersVB

This occurs during the first mouse click. So the FeatureSet has gone from zero points to one point, and then fails thereafter during the first redraw.

Here is the exception detail from Visual Studio:

System.NullReferenceException was unhandled

Message=Object reference not set to an instance of an object.

Source=DotSpatial.Desktop

StackTrace:

   at DotSpatial.Maps.MapPointLayer.DrawFeatures(MapArgs e, IEnumerable`1 features) in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\Vectors\MapPointLayer.cs:line 599
   at DotSpatial.Maps.MapPointLayer.DrawFeatures(MapArgs args, List`1 features, List`1 clipRectangles, Boolean useChunks) in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\Vectors\MapPointLayer.cs:line 200
   at DotSpatial.Maps.MapPointLayer.DrawRegions(MapArgs args, List`1 regions) in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\Vectors\MapPointLayer.cs:line 275
   at DotSpatial.Maps.MapFrame.Initialize(List`1 regions) in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\MapFrame.cs:line 399
   at DotSpatial.Maps.MapFrame.Initialize() in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\MapFrame.cs:line 446
   at DotSpatial.Maps.MapFrame.Invalidate() in C:\Dev\DotSpatial\Framework 4.0\DotSpatial.Desktop\Maps\Drawing\MapFrame.cs:line 652
   at WindowsApplication1.Form1.OnScrollWheelClick(Object sender, MouseEventArgs e) in C:\Users\________\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\Form1.vb:line 58
   at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.UserControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(ApplicationContext context)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
   at WindowsApplication1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

InnerException:

valentinedwv wrote 2010-10-02 at 08:06
tag hydrodesktop

jirikadlec2 wrote 2010-10-08 at 01:09
This issue occurs when the point layer has more than one point, but the [x, y] coordinates of all points are identical. For example, the layer represents a soil probe and each point represents a soil sample at a different depth.

jirikadlec2 wrote 2010-11-26 at 05:35
I believe these errors that result from a point layer with only one point have been resolved by adding an envelope around the point. This should no longer be an issue.

** Closed by jirikadlec2 11/25/2010 7:35PM

jirikadlec2 wrote 2011-02-24 at 03:39
This is still an issue in DotSpatial 65eacceecd6b (23 Feb 2011). Attached is a point shapefile ("letiste.shp") with one point. Add the attached shapefile to the map, right-click on the layer in the legend and select "Zoom to Layer".
The same OverflowException is thrown.

jirikadlec2 wrote 2011-03-09 at 06:48
Fixed in latest source code by adding an error check. If the layer extent is zero, zoom to 10% of current view extent instead of zooming to the layer extent.

Projection: Geographic Coordinate System WGS1984 to Projected Coordinate System NewZealandMapGrid

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 21:31
The projection of a coordinate from GCS WGS1984 to PCS National Grid New Zealand NewZealandMapGrid has a longitude that is off by -Infinity decimal degrees, when compared to proj4. The source of the error is most likely the coordinate is on the edge of
the map (the point that is associated with both the east and west edges of the map). The unit test is available in the ProjectionTestCSharp under the NationalGridNewZealand class.

How to support fdo

This issue was imported from CodePlex

leiyu1980 wrote 2010-08-31 at 13:21
How to support fdo?

Shade1974 wrote 2010-09-04 at 21:59
Fdo is not currently supported, but like GDAL, we want to create run-time referenced data extensions that will ultimately support Fdo. Currently this is a feature request.

Features: Creating a MultiLineString Feature Set

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:50
When a MultiLineString feature set is created from scratch, an out of memory exception is thrown. This happens at all scales (large and small feature sets). This is expected with large feature set (over 50,000 features), however, when a small feature set
(less than 50 features) this should not happen.

Double Pan after Resize

This issue was imported from CodePlex

Shade1974 wrote 2010-09-06 at 21:31
When the user resized the map, the first pan operation would pan to the wrong place. This would only happen if the user panned first. I the first action was a zoom with the scroll wheel or other function, then the pan function worked fine. Also in rare
cases the optimization that allowed only the new content to be drawn to the screen did not match exactly with the content that was there. Even though this was a rare occurrence, it was so tacky looking when it did occur that it made me feel the whole control
was not very professional. Now that panning redraws everything, it may be a tad slower to pan with lots of content, but the result will not be disjointed or double panned to the wrong position anymore.

DotSpatial.Desktop

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 00:59
This library is still a large library with many different functions. The task here is to split this library up into separate .dlls. More information to come, as to the specific .dlls that need to be divided out of this main library.

DotSpatial.Data: Raster FalseEasting

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 19:16
The method to get the FalseEasting for a rater is throwing an exception. The function is designed to get the false easting from the GCS/PCS for this raster. The RasterProjection() TestMethod is located in the RaterTest class in the DotSpatial_Data Unit
Test. I'm attaching a raster that can be used to test this method.

New GDAL extension

This issue was imported from CodePlex

razsta wrote 2010-08-23 at 07:49
Does the new GDAL extension namespace

DotSpatial.Data.Raster.GdalExtension

conflict with the

DotSpatial.Data.Raster type?

Thanks

Shade1974 wrote 2010-09-04 at 19:54
Um.. does it? Is this a question or a comment? Should we change this? This was a decision made by some documentation posted by the committee, but I haven't seen any problems from it yet. I think that is because every class is within the GdalExtension namespace,
it doesn't confuse the Raster tag in the longer namespace with the Raster class. But it could be a problem for the introduction of a DotSpatial.Data.Raster namespace itself, since that would definitely conflict with the System.Data.Raster class.

Dan historically has preferred to have classes as low in the namespace tree as possible so that developers don't have to hunt to find the classes they are looking for in sub-namespaces. For instance, all data objects, raster or vector are currently in the DotSpatial.Data
namespace. Resharper violently opposes my introduction of folders that don't correspond to the namespace. So in order to match both requests we would have to dump all files into the root folder of whatever the assembly is.

This is what "Framework Design Guidelines" by Cwalina and Abrams offers and as far as namespaces go:

.<product|technology>.[].[] where feature and subnamespace are optional.

  • Do prefix with a company name (DotSpatial) to prevent namespace collisions from different companies.
  • Do use stable, version-indpendent product name at the second level of the namespace. (Data).

    x Do Not use organizational hierarchies as the basis of namespaces because they are short lived.

  • Do use pascal casing
  • Consider using plurals where appropriate (System.Collections over System.Collection) (DotSpatial.Data.Rasters)?

    x Do Not use the same name for the namespace and a type in that namespace! (DotSpatial.Raster)

Taking all these into consideration, I will change the "Raster" namespace used by GdalExtension to "Rasters" instead of Raster. Thanks for those that pointed this out. Since there is currently nothing else that uses a "Raster"
namespace, it will just be something for those who want to do future Raster work in the future to keep in mind.

Allow Plugins to access application-level settings

This issue was imported from CodePlex

jirikadlec2 wrote 2010-09-04 at 02:08
Could we add a 'Settings' or 'AppSettings' property to IMapPluginArgs, to allow the plugins to access the application level settings such as the language settings or other custom settings values?

Shade1974 wrote 2010-09-04 at 22:11
This question is more along the lines of "Can we drop Application Settings down to the DotSpatial level". Currently those settings were managed at above the old MapWindow.dll level, and so we need to think about whether this should work the same
way in all applications that use DotSpatial. For controlling the current langage settings programmatically, the code stores the language setting here:

DotSpatial.Globalization.CulturePreferences.CultureInformation

To get or set what the system is currently using, you can use:

System.Globalization.CultureInfo.CurrentCulture

So for accessing the language settings, I'm not sure we need to also create an "application settings" item on the plugin interface. It seems redundant. I am therefore closing this issue.

Raster: Get Minimum Value

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:25
The DotSpatial.Data unit tests show that the get minimum value in a raster is not functioning properly. A 0 value is always return. When a raster is open with the MapWindow6 application and ESRI ArcMap, it is clear that the raster does not have a zero
value (i.e. a DEM should not have a 0 minimum for the Idaho Falls). The unit tests are available in the Source Code tab. I am providing a raster with a .bgd file type that can naively opened by the DotSpatial.Data library.

progressHandler is null problem

This issue was imported from CodePlex

jlkittle wrote 2010-07-21 at 17:50
A first chance exception of type 'System.NullReferenceException' occurred in DotSpatial.Data.dll

the offending statement is 'if (progressHandler != null)'

progressHandler is null by design in my test

jlkittle wrote 2010-07-21 at 18:41
recompiling DotSpatial from source in my test solution made this problem go away

Shade1974 wrote 2010-09-04 at 21:46
If rebuilding from source solved the problem back then, I have to assume that this issue is fixed by now. I will close this issue.

Map -> Maps and Ribbon40 -> Ribbons.

This issue was imported from CodePlex

Shade1974 wrote 2010-09-04 at 21:37
According to Framework Design Guidelines by Cwalina and Abrams, it is bad form to have a type with the same name as the namespace. It's a downright functional collision to have it at the same depth, but having DotSpatial.Map.Map as a control is still sketchy.
They recommend using plurals for the namespaces, so I have fixed it to show "DotSpatial.Maps.Map" instead. They also recommend against having any type of versioning showing up in the namespaces. The original code was System.Forms.Ribbon35. I initially
changed this to DotSpatial.Ribbon40, but in reviewing Cwalina & Abrams, I have decided to change this to DotSpatial.Forms.Ribbons instead. This puts the ribbon control content as an extension of the "DotSpatial.Forms" namespace, and using the
plural "Ribbons" prevents the conflict with the control named "ribbon". It also means that other, different types of ribbons might also go in the same place.

WGS84->NAD83MTM1 Projection error (reported by Terry)

This issue was imported from CodePlex

Shade1974 wrote 2010-09-11 at 00:29
When performing a transform from NAD1983UTM11 to WGS1984, there are no issues.

N,E,Z coordinates in, Lat/Long generated (decimal degrees).

Data used is:

xy(0) = 337286.313 (easting)

xy(1) = 4694674.076 (northing)

z(0) = 182.366 (elevation)

myProjIn = DotSpatial.Projections.KnownCoordinateSystems.Projected.NationalGridsCanada.NAD1983MTM1

myProjOut = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984

Reproject.ReprojectPoints(xy, z, myProjIn, myProjOut, 0, 1)

Results:

xy(0)=-82.1054299846804 (longitude)

xy(1)=42.391001348558135 (latitude)

z(0)=182.366 (height)

Correct!

When performing a transform from WGS1984 to NAD1983UTM11, there are issues.

Lat/Long/Height in (decimal degrees), NEZ not generated?

Data used is:

xy(0) = -82.105429984679 (longitude)

xy(1) = 42.3910013476671 (latitude)

z(0) = 182.366 (height)

myProjIn = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984

myProjOut = DotSpatial.Projections.KnownCoordinateSystems.Projected.NationalGridsCanada.NAD1983MTM1

Reproject.ReprojectPoints(xy, z, myProjIn, myProjOut, 0, 1)

Results:

xy(0)=-1.#IND

xy(1)=-1.#IND

z(0)=182.366

Also, if my projection of WGS1984 is a GeographicInfo, how do I go about setting this to a ProjectionInfo, because Reproject.ReprojectPoints is excpecting both systems to be Projections.ProjectionInfo and not a Projections,GeographicInfo.

For example, the user is selecting the GeographicInfo and ProjectionInfo values from list boxes.

Dim myGeographic As New DotSpatial.Projections.GeographicInfo

myGeographic.Name = ComboBox2.Text

Dim myProjection As New DotSpatial.Projections.ProjectionInfo

myProjection.Name = ComboBox5.Text

So how does myGeographicInfo become a ProjectionInfo required by Reprohject?

Thanks,

Terry

DotSpatial.Data: Getting the Geographic Projection Name for a Raster

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 19:03
The method to get the name of the GCS for a raster throws an exception. The unit test method is the RasterProjection() in the RasterTest class in the DotSpatial_Data Unit Test. This function is supposed to get the name of the geographic coordinate system
for this raster. I'm attaching a raster to test this method with.

Tools Didn't exist for DotSpatial

This issue was imported from CodePlex

Shade1974 wrote 2010-09-11 at 21:09
The tools from MapWindow 6 have now been ported to DotSpatial as a starter kit of tools. Dan will ultimately decide which Apps and tools stay with dot spatial and which Apps and tools will fall into the MapWindow DS domain.

DotSpatial.Data: Get the number of cells that are not no-data cells

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 19:54
The method is supposed to get the count of the number of cells that contain data. However, when this method is used after opening a raw raster it returns a value of 0. When the original raster is saved as a new raster and re-opened, no other edits/changes
made the value is 704346. Both rasters are loaded into ram, so this method should work. The RasterCellTests Test Method in the RasterTest class in the DotSpatial_Data unit tests. I'm uploading a raster that can be used to test this error.

mudnug wrote 2011-01-06 at 01:22
I don't see this test anywhere. We did find Tests.Data.DoubleRasterTest.

Creating GetNoDataCellCount()

mudnug wrote 2011-01-06 at 01:47
Added GetNoDataCellCount to Raster.cs, but this may not be the best home for this code. I cannot tell where it might belong just be looking.

If you relocated the method, please update the test in Tests.Data.RasterTest

New Transformations

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 22:32
In the DotSpatial.Projections dll there are about 65 projection unit test failed because the is not a transformation to go from a GCS WGS1984 to PCS NAD1983CSRS98NewBrunswickStereographic, for example. The error that is return for this unit test is: "Test
method ProjectionTestCSharp.Projected_NationalGridsCanada.NAD1983CSRS98NewBrunswickStereographic threw exception: System.NullReferenceException: Object reference not set to an instance of an object." Therefor any of the unit test for the DotSpatial.Projection.dll
that returns this error a new transformation is required. Our unit tests were developed to test against a WGS1984 Geographic coordinate system, due to "industry" standards that this geographic coordinate system is the standard unmodified coordinate
system and this is the base GPS coordinate system.

Unhandled exception if trying to set dynamic visibility after loading project

This issue was imported from CodePlex

OSTGerman wrote 2010-09-14 at 20:04
When I try to set dynamic visibility of a layer (or labels) via gui after loading my project from file, I get null reference exception.

It occurs in SetDynamicVisibility() method of Layer class (\DotSpatial.Desktop\Drawing\Layer.cs), because MapFrame property value is null.

Shade1974 wrote 2010-09-14 at 22:57
Thanks for posting this. I will look into this soon since it's probably a quick fix.

Projection: Geographic Coordinate System WGS1984 to Projected Coordinate System SJTSKFerroKrovakEastNorth

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 22:23
The GCS WGS1884 to PCS National Grids SJTSKFerroKrovakEastNorth fail due to the X coordinate was off by infinity meters, when compared to the prog4 transformation. The probable cause of this error is the coordinate has a location that is share by both
the west and east edge of the map (for instance). The unit test is available in the ProjectionTestCSharp under the NationalGrids class.

Sample Code for Raster, IRaster and Raster<T>

This issue was imported from CodePlex

AlamoMan wrote 2010-07-19 at 20:36
The IRaster internal documentation instructs that this code:

IRaster Ir = new Raster();

Ir.Open("C:\Temp\iron.bgd");

is supposed to be able to read a raster from a file into memory. However, this does not work. The xml internal documentation either needs to be corrected to be more clear as to what this method does or this method fixed so it can open a raster file.

The code to open a Raster works:

Raster r = new Raster();

r.Open("C:\Temp\iron.bgd");

However, some functions need an IRaster, as in the slope calculation in DotSpatial.Analysis. Without this functioning properly most of the raster analysis tasks can't be tested, because those methods require IRaster instead of a Raster.

Shade1974 wrote 2010-09-05 at 00:42
The basic "Raster" class is not type specific, and is not even generic. So this was always a slightly more limited scope than having a more advanced Raster for instance, which gives you access to the ReadRaster() and WriteRaster methods
as well as the Data[row][col] which are all type specific. The Raster can be thought of as a magic box. The outside of the box always is the same. Inside the box, however, you can have various different IRaster classes that show up. Now, technically, the Raster
implements IRaster, but it also implements the Open method, which IRaster doesn't. Raster is also the base class for most rasters, so it can be confusing. It is at once the box and the base class. I think this may go against programming convention, but I kind
of like the Dim r As New Raster, r.Open(file) syntax. What we need is not a re-work of the raster code, however, but some clearer documentation on how to work with various raster formats. I will post some now since I don't see any sample code yet. I will consider
posting the sample code as addressing this issue.

Raster: Projection.GeographicInfo.Name

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:37
The function that allows a user to get the name of the geographic info for a raster is throwing an exception. This needs to be attempted on several different rasters to insure this is working. I'm attaching a raster to get started with. See the Raster
unit test in the DotSpatial.Data unit test for the test code.

Shade1974 wrote 2010-09-06 at 01:06
This should no longer throw an exception having fixed the raster projection bug during the "SaveAs" method. However, I have noticed that the string in some of our older BGD files is not a valid proj4 string and is only a human readable description
of the projection. In order to be valid, a projection would need to use machine readable syntax like proj4 or ESRI string. This is not really an issue, however since bgd is only a locally used format, and really has rules that are whatever we define them to
be. A new BGD created by MW6 will store the proj4 string.

Projections: Geographic Coordiante System WGS1984 to Projected Coordiante System SJTSKFerroKrovak

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 22:24
The GCS WGS1884 to PCS National Grids SJTSKFerroKrovak fail due to the X coordinate was off by infinity meters, when compared to the prog4 transformation. The probable cause of this error is the coordinate has a location that is share by both the west and
east edge of the map (for instance). The unit test is available in the ProjectionTestCSharp under the NationalGrids class.

Adding a polygon FeatureSet to the map doesn't draw the layer

This issue was imported from CodePlex

jirikadlec2 wrote 2010-07-21 at 05:55
When adding a polygon feature set using the MapFrame.Layers.Add(FeatureSet) method, the layer is not drawn on the map. The Symbology is not assigned by the method. The only workaround is to programatically assign the Symbology with at least one category
and assign the Symbolizer and SelectionSymbolizer.

Features: Buffering

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:46
When a user attempts to buffer a feature (line, point, multiline, etc) an exception is thrown. The unit tests creates a random feature and attempts to buffer this feature. An exception in thrown on the buffer function. The unit test is available in the
DotSpatial.Data in the InternalCheck unit test class.

DotSpatial.Data: Raster FalseNorthing

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 19:19
The method to get the FalseNorthingfor a rater is throwing an exception. The function is designed to get the false easting from the GCS/PCS for this raster. The RasterProjection() TestMethod is located in the RaterTest class in the DotSpatial_Data Unit
Test. I'm attaching a raster that can be used to test this method.

Shade1974 wrote 2010-09-06 at 00:19
I couldn't help but notice that you actually failed to commit the raster in this case. The raster itself is the "iron.bgd" file. Anyway, I am looking into this now.

Topology: Area for a Polygon with Holes

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 23:40
The area of a polygon with holes in the DotSpatial.Topology.dll is slightly different from the area in the NetTopologySuite. See the PolygonHoles Test Method in the PointsLinesPolygons class in the Spatial_Topology unit tests. These values should be exact.

Null Reference in unsaved shapefiles.

This issue was imported from CodePlex

Shade1974 wrote 2010-09-10 at 20:50
Apparently, there may be an issue when creating a shapefile from scratch but attempting to add that to a layer without saving it.

Original Message:

Hi Ted

I use this code to generate my in memory featureSet.

My problem is, that if I don't call the save method, I get "Object reference not set to an instance of an object". in

IMapFeatureLayer myLayer = map40.Layers.Add(fs);

in ver 4 you could call

success = sf.StopEditingShapes(true, true, null);

FeatureSet fs = new FeatureSet(DotSpatial.Geometries.FeatureTypes.Point);

            fs.DataTable.Columns.Add("ID", typeof(int));
            fs.Features.SuspendEvents();

            using (var ctx = new BilDBDataContextTransactionScope(Db.getConnection()))
            {
                Tanks Tanks = new Tanks(ctx, Singleton.Instance.aktuelKunde.ID);
                var tanke = Tanks.AlleAktiveTanke(Singleton.Instance.entreprenorID);
                foreach (var tank in tanke)
                {
                    DotSpatial.Geometries.Point p = new DotSpatial.Geometries.Point();
                    p.X = (double)tank.X;
                    p.Y = (double)tank.Y;

                    IFeature currentFeature = fs.AddFeature(p);
                    // Working with the current feature allows you to control attribute content as well as the feature content.
                    currentFeature.DataRow[[color=ffa31515]"ID"[/color]] = tank.Id;
                }
            }

            fs.SaveAs("C:\\Temp\\roads_test.shp", true);
            fs.Features.ResumeEvents();
            IMapFeatureLayer myLayer = map40.Layers.Add(fs);

Exception during Project Load/Save

This issue was imported from CodePlex

Shade1974 wrote 2010-09-10 at 21:00
There may be a bug when attempting to save or load the map contents when using the Serialization code.

Original Post from Tummi:

Yes but saving (or better opening) in this way in dotspatial crashes.

In the xml file I was finding some "NaN"

and also replacing them with "0.0" (with MapWindow6 I have the same problem and I solve them so) the XmlDeserializer crash in

private object ConstructObject(Type type, XElement element)

{

List constructorArgs;

if(type.IsArray)

{

int arrayLength = element.Elements(XmlConstants.ITEM).Count();

constructorArgs = new List() {arrayLength};

}

else

{

constructorArgs = GetConstructorArgs(element);

}

var ctor = type.GetConstructor(constructorArgs.Select(arg => arg.GetType()).ToArray());

return ctor.Invoke(constructorArgs.ToArray());

}

in the return statement he says

"Object reference not set to an instance of an object."

Sorry for my bad English !

DotSpatial.Topology: UnionFeatureSet SaveAs Method

This issue was imported from CodePlex

AlamoMan wrote 2010-07-15 at 22:25
This test is designed to test the union method on an existing feature set. The error being return is when the union feature set is being saved, an exception is thrown. The UnionFeatureSetTest() TestMethod is int he OverLayUnitTests Class in the Spatial_Topology
Unit Test. I'm uploading a test shapefile that can be used to test this method.

Shade1974 wrote 2010-09-05 at 21:14
Um... I think I got the basic goal of what you wanted to do once I opened the test shapefile file and looked at it. My guess is that you wanted the various shapes in the shapefile that overlapped each other to union together into a single shape. It did
lead me to a bug in the case where the "All" union parameter is chosen and the fields already exist. I tweaked that code to fix the bug. However, I think the main issue here is that you may not have realized that the "union" method creates
a new, output feature, rather than modifying the original feature. You can look at the return type in intellisense to get a feel for how the method works, even if the description in the xml comments isn't clear. It will also not add that output feature to
the resulting shapefile. You need to pass in the resulting shapefile so that if new fields have to be created to accomodate the "All" situation, they can be. It is also a good idea to copy the schema of the original shapefile to the result before
beginning, just in case. In your case, the error was caused because the output shapefile you tried to save had no features, and also, since there were no features, it could not figure out what feature type to use.

I have re-written the function so that it does not union shapes into a single all-encompassing geometry if the original shapes don't intersect. Basically, running the unit test will keep shapes separate unless they overlap, in which case they get unioned. Of
course the resulting code is more complex. I am planning on adding my newly created source code for this into the FeatureSet as "UnionShapes". Maybe as an extension method. I will set that up as a separate issue though. I committed the code changes
to the unit test, without committing the project or solution. You will have to update the filename to something appropriate for your drive again.

Shade1974 wrote 2010-09-05 at 21:16
I have created a working "Union" unit test, and fixed a bug that showed up while working with said test.

** Closed by Shade1974 09/05/2010 10:16AM

Shade1974 wrote 2010-09-05 at 22:50
Item complete.

Projection: Geographic Coordinate System WGS1984 to Projected Coordinate System GRS1980

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 21:02
The projection from WGS1984 to GRS1980 and back is throwing an exception. The proj.dll could not be initialized and at least one parameter is incorrect. This is the last error in the Geographic Coordinate System category that needs to be fixed.

mudnug wrote 2011-01-05 at 00:18
I removed the ignore tag on this test so I could try an see what is going on.

mudnug wrote 2011-01-07 at 20:10
Test GRS1980() now passes.

Fix Tests

This issue was imported from CodePlex

valentinedwv wrote 2010-09-16 at 18:52
I would like to setup the automatic build system to run the unit tests.

can someone make sure that they run against the location of the Framework v4

Shade1974 wrote 2010-10-02 at 19:57
I am updating the tests to work in 4.0, but it sounds like you want to also run the tests as part of the auto-build process. In order to make that more workable, should I comment out the 200 projection tests that currently fail? Otherwise an autobuild
that expects all existing unit tests to be green will always report failure, and it may take some time before we can devote the resources to tracking down the remaining bugs in the projection library.

valentinedwv wrote 2010-10-03 at 07:15
The references seem to be to installed dll's in the GAC, rather than projects.

The projection DLL may fail, but the system notes new failures, separetely, as well as old failures.

You could also add an ignore attribute.

I'm tempted to ask for the tests to be redone in nunit.... or I might just check an see if I can make it work, sometime.

Do we want to rework the build process to individual solutions, or groups of solutions, with tests.

A nant project to build everything.

Shade1974 wrote 2010-10-03 at 19:19
It should have occurred to me that if it is to be converted to 3.5 it can't depend on binary libraries, but I simply didn't think about it. I can tweak that to work with projects with no problem. I like the idea of having the unit tests broken down by
project (eg. having ProjectionTests for tests related to DotSpatial.Projections) but also incorporated into a single solution. I don't like the idea of trying to put the projection unit tests in the same project as the source code, however. If the unit tests
are broken into sub-projects, running all the tests in the comprehensive solution runs all the tests that we have, but someone could create other solutions that focused on specific areas if they want to. As far as the autobuild is concerned, it might be easier
just to have it all in one solution since you require project references, but I would prefer to keep a solution that is free of any unit tests, and one that has all the unit tests. I will add the ignore attribute for the projection tests that fail for now
since we already have the test results posted online to remind us that work needs to be done for those. We are at a point where we don't have a lot of tests, so switching to NUnit is doable. One thing I liked about the built in VS unit testing framework is
that they have a built in template that makes getting started easy. However, I know that anyone can use tests made with NUnit, while only folks with the VS Professional (now made super pricey) can work with the visual studio test framework. When we initially
looked at using the built in VS tests, the difference was about $100, now its closer to $1000. I have only looked at NUnit once before, but I will try to switch it over today and see if I can get it to work.

valentinedwv wrote 2010-10-06 at 22:27
Tests and dupes are split into several projects...

teamcity 6 will let multiples be in one with the catch that when one fails... it stops.

Where is proj.dll... there is now a projNet.dll

Features: Large Feature Sets

This issue was imported from CodePlex

AlamoMan wrote 2010-07-14 at 20:53
When a large Feature Set (over 50,000 features) is created or open and manipulate an out of memory exception can occur. It would be helpful if we could get these libraries to handle large feature sets. The Unit Test code is located in the DotSpatial.Data
unit tests, in several different classes that are clearly marked as to the size of a feature set that is being manipulated.

DotSpatial.Projection: name of projection being used

This issue was imported from CodePlex

AlamoMan wrote 2010-07-22 at 17:43
There are two ways to that a developer could get the name of the projection that is currently being used:

ProjectionInfo pStart = KnownCoordinateSystems.Geographic.World.WGS1984;

pStart.Name;

or

pStart.GeographicInfo.Name;

The first syntax of pStart.Name returns a null value. While the second syntax works as expected.

I see two options to fix this issue: (1) remove the pStart.Name for the available properties or (2) make the first syntax work as the second syntax (even though this will be a redundant method for getting the name of the current projection system being used.

AlamoMan wrote 2010-07-22 at 19:27
Correction. When dealing with Geographic Coordinate Systems the pStart.GeographicInfo.Name syntax is required. When dealing with Projected Coordinate Systems the pStart.Name syntax is required.

UnionShapes(UnionShapeTypes.Overlapping)

This issue was imported from CodePlex

Shade1974 wrote 2010-09-05 at 21:23
The "Union" method was being evaluated using a unit test. I interpreted that it might be nice to have the ability to union any shapes of a shapefile that overlap into a single shape, while leaving any shapes that don't overlap alone. An enumeration
will specify whether to union only overlapping or all shapes. However, it is complex enough and useful enough that I though it would be a good idea to add to the framework.

DotSpatial.Projections dll file is very big

This issue was imported from CodePlex

jirikadlec2 wrote 2010-07-21 at 06:03
The file DotSpatial.Projections.dll is very large (19 MB). I think the size of the dll file should be reduced. I think we need to find a better way how to embed the resources within the dll file so that it doesn't take so much disk space.

JohnDiss wrote 2010-07-23 at 00:19
I haven't had a chance to view the code, but assuming that the space is consumed by text lookup tables, these could be compressed before embedding using Deflate/Zip and using either the built in .NET classes for compression or a lib such as SharpZipLib

JohnDiss wrote 2010-07-23 at 00:21
^^ I meant decompressed using the built in compressed stream classes or SharpZipLib

Shade1974 wrote 2010-09-04 at 21:56
Definitely most of the space is occupied by text lookup tables. The actual projection code itself is negligible. Decompress of tables could add a performance hit, especially if the caller calls the public accessor over and over again for each point, rather
than passing in an array, but the tables are only used in rare circumstances, so this is definitely worth a look. However I am also changing this to a "feature request" and will put bugs as higher priority than this.

robertson1 wrote 2010-09-06 at 12:26
The largest of the embedded grid shift files is already binary (ntv2_0.GSB) and is 13.5 Mb on its own anyhow. I didnt need to use any of these grid shifts so just compliled without them which reduced the dll to about 1.8Mb without any ill effects. Poosiibly
they could be packaged separately rather than as embedded resources?

mudnug wrote 2011-01-07 at 20:18
Would moving the nad and nad-dependent code to another assembly "DotSpatial.Projections.Nad" be satisfactory?

Shade1974 wrote 2011-01-07 at 21:02
In a way that would be ok, though it won't be as simple as picking out certain classes that use the tables versus classes that don't. Fundamentally everything boils down to a single Reproject.ReprojectPoints function. This may or may not invoke nad tables
depending on whether or not the proejctions have matching datums, and whether or not a gridshift technique is used when referencing the two. I think the main case where this happens in the US is for NAD27. Nad83 to WGS84 shifts do not require the tables.

If we wanted to set it up in a different assembly it would probably have to work basically like a run-time discoverable plugin, and if the plug-in was missing then it would throw an exception, but only if a grid shift transform was attempted but the nad table
was not found. One advantage of having the tables back outside of code would be that people could more easily add and remove the tables they need, and we could post them as a separate download and have much smaller release binaries. These nad tables are an
order of magnitude larger than the memory required for the rest of the actual binaries themselves. But just keep in mind it would be nice if the mechanism that discovers the tables could be loaded programmatically. That way, if a third party developer wanted
the tables to be embedded, rather than in a directory, they could embed the tables themselves and then load them programmatically. Anyway, that's just my suggestion, and maybe you have an even better idea. I think an ideal solution would allow the following:

  1. Weekly posts of binaries could be hosted separately from whatever has the NAD tables, and that becomes a separate download (however it is organized.)

  2. The functionality not requiring NAD tables would work regardless of whether the download takes place.

  3. If an action that requries a grid-shift can't find the table, it reports this, and provides direct access to instructions to fix the problem. (perhaps even programmtically pulling the tables from the web automatically, something like a dialog that says:
    "This action require NAD shift tables. Do you wish to download the NAD tables now?" and if the answer is yes, then it creates the NAD directory and pulls the files from the internet.

But If you think of an even better solution, I'd love to hear it. The above is an ideal case and probably not a quick fix, so I might prioritize some other things before you tackle this creature.

Ted

the_roggy wrote 2011-07-26 at 15:41
Would be a really good idea to implement one of the above solutions. We created a small tool based on dotspatial, but because of this file the download size of the tool is way to large to be normal... Putting the tables in a seperate dll, text file or
zip file would be OK for us (and most people probably), as we don't need those projections...

mudnug wrote 2012-01-12 at 00:43
We may also need to ship a database file with this assembly.

mudnug wrote 2012-01-13 at 21:53
It appears that moving the gridshifting code to another assembly will cause breaking changes, so I'm reserving these changes for a future version.

Big Raster Support

This issue was imported from CodePlex

Shade1974 wrote 2010-09-13 at 06:20
The raster classes now support better ways to work with rasters that are too large to fit in ram. Rather than only supporting the "ReadRaster" and "WriteRaster" methods on Raster, we now support methods to get an "IRaster"
that contains a block of information directly from the Raster class. For visualization, huge rasters now create an uncompressed pyramid image to use instead of a "bmp" file in the case where the raster is very large. Also a "WriteHeader"
option has been added, so that updating the projection, extents or other header information can be accomplished from large raster files without having to rewrite the entire raster.

Add/Remove Vertices

This issue was imported from CodePlex

Shade1974 wrote 2010-09-10 at 20:55
We have a current need for updating the Shape editing vertex editor to insert or remove vertices.

Original Post (JamesP):

I have got adding shapes and moving vertices on an existing shape working (based on the editor plugin - but I have modified a bit as I had some specific requirements).

As far as I can see there is currently no support for adding / deleting nodes when editing an existing shape - just dragging existing ones.

Anyone got any ideas on how best to approach this ? I assume I need to somehow add a node - maybe half way between the existing nodes on a line segment and then allow it to be dragged ?

Any examples of something similar being done ?

Thanks

Reading an ESRI String: DotSpatial.Projections

This issue was imported from CodePlex

AlamoMan wrote 2010-07-20 at 22:31
When reprojecting a point using the DotSpatial.Projections KnownCoordinateSystems.Geographic.World.WGS1984 and comparing the results to a GCS that is read from an ESRI .prj file

StreamReader re = File.OpenText("C:\Program Files\ArcGIS\Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj");

pESRIend.ReadEsriString(re.ReadLine());

Then transforming both GCS into the DotSpatial.Projections KnownCoordinateSystems.Projected.World.WebMercator the Y coordinate is off. The further north the coordinate is located the greater the error. When this projection was tested against the Proj4 library,
it passed. The probable location of the error is in reading the ESRI string. Several different shapefiles have been used to test this projection and all have 20-32 km of error in the Y coordinate.

Slow Image Creation for Big Rasters

This issue was imported from CodePlex

Shade1974 wrote 2010-09-13 at 06:27
The function that generates the image representation for a raster is slower than it should be. I need to introduce optimizations that can work directly with the Data values in Raster. We had these before but somewhere along the line they got deactivated,
possibly because of a bug.

PolygonSymbolizerEditor problems?

This issue was imported from CodePlex

Shade1974 wrote 2010-09-14 at 19:32
Hi Ted,

I've played with the PolygonSymbolizerEditor a bit so that it would create a new PolygonSymbolizer if it tries to edit a null value. Now the problem is once the editor is launched. I may be using it wrong but it simply does nothing when you click the add button
at the bottom of the Patterns list and if the length of the pattern list is 0 then it crashes.

Got any ideas?

Thnx, Brian

Reprojecting a Feature Set: DotSpatial.Data

This issue was imported from CodePlex

AlamoMan wrote 2010-07-20 at 20:11
When attempting to reproject a feature set, instead of a coordinate, an exception is thrown. See the ESRIWEbMecatorTest TestMethod in the ReadingESRIString.cs in the ProjectionTestCSharp unit test.

mudnug wrote 2011-01-06 at 01:07
Looked at ESRIWebMecatorTest in \Unit Tests\ProjectionTests\ReadingESRIString.cs, but the test requires specific shp files that are not included in the project

Raster Layer Save/Load in Project Files

This issue was imported from CodePlex

Shade1974 wrote 2010-09-13 at 06:23
The classes associated with raster symbology have been updated so that they can now be serialized as part of a project that has raster layers in addition to the vector layers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.