Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] How to implement custom DataStore?

Filip Krikava wrote:
Hello,

For couple of months I was working on an eclipse based application for traffic data analyses and now it's time to add some GIS support and I decided to use udig, which looks really nice.
Welcome.
What I need to do, is to display a map which consists of number of road stretches. I have is a file-based database that have an interface which provides a method that for given geographic coordinates and given list of road classes returns a list of all road stretches with attributes like name, geometry, maximum speed, etc. The data set is rather huge about 2GB, in order to keep good responsive UI it needs to limit the number of stretches to minimum - filtering based on zoom level (on the country level it only makes sense to show motor-ways for example).

I'm very new to both geotools and udig and I was wondering what is the best way to implement it.
I have a really old advaced tutorial for data store developers over in the geotools user guide...
The general idea is:
- extend abstract data store
- implement a couple of methods for read-only access - the important one is making a "FeatureReader" over all your data
- everything else you get for "free" ...
- If you do have the ability to use an index it is worth your time to override a few more methods and optimize.

The link is here:
- http://docs.codehaus.org/display/GEOTDOC/DataStore+Developers+Guide

The code used for that tutorial is now actually committed and available as the PropertyDataStore; so if you want to study the final result you can.

Another idea is to *not* implement a DataStore; and write your own renderer for your own content. uDig is an integration platform There are some examples in the tutorials folder on how to do this taken from the uDig training course.

The idea is to only bother to use GeoTools for your own work if it buys you something you like. In this case it would buy you the ability to use SLD styles.

In terms of making your data go fast there are a couple good options...
- process your data - using the JTS library to simplify your data - and show the simplified data when the user is zoomed out; switch between different scales of your data as you zoom in (ie have three layers; each with a min / max scale set)


Finally it may be worth your time to use a spatial database such as PostGIS; even if you just use it to simplify and process your data prior to use. In general hacking up your data (or finding and then hacking up your data) takes about 1/2 the time of most spatial application I end up writing...

Jody


Back to the top