Creating an application using DotSpatial

I have implemented an AIS parser library. In order to check library's functionality, I thought it would be a nice idea to create an application using it.

The basic idea was to create a map and display AIS receiver data/ships on it. I used DotSpatial libraries, with Brutile layer ([discussion:285933]) in order to create the background map. I in order to display AIS receiver's data on the map,
I used a FeatureSet.

Message1DataTable is a strong-typed datatable I created, in order to use in the FeatureSet - it contains all the nessasery columns to store the data an AIS receiver offers.

The data the map has to display, is constantly changing; the datatable either has new rows added, or existing rows change. A second issue is, the AIS receiver offers ships' coordinates in WGS84, and the application has to tranform the projection in order
to match OpenStreetMap projection, so the ships can display correctly on the map.

My question: the following code is used to add/update a feature on the featureset:

If feature often referenced the same feature, you could store that reference so you don't need to search for it each time. I'd almost recommend attaching a profiler so that you could see what is taking the longest if you have performance problems.

Thank you for answer. I must say, this is the first time I use DotSpatial's libraries, and it could not be possible without your blog posts.

Back to my question: An AIS receiver generates data deriving from about 500 ships per hour; though, the featureset would have 500 features more or less. Every ship refreshes its position every 3 to 5 seconds. Having a reference for each feature seems difficult,
as no one knows which ship will sail in a region at a given time.

Perhaps, I good idea would be to create keys on my dataset, to help make the search faster.

I can see on the DotSpatial.Controls.SpatialToolStrip control, that buttons like "Identifier" and "Attribute Table" are offered. When I use these buttons, I get an empty "Identify" window. What do I have to implement, in order to get a feature's attributes
in that window displayed? - I assume these attributes come from a feature's columns in the dataset, filled during a feature's creation/update process.