GeoDjango 1.1
This document is to outline the roadmap for the features and fixes that will go into GeoDjango as a part of the 1.1 release. This is meant to be a living document, so feel free to edit -- but please no vandalization or flaming.
Process
The gis-1.1
mercurial branch is deprecated as all features spanning multiple tickets and/or branches have now been merged into trunk. Please use SVN trunk to get the latest features for GeoDjango in 1.1.
All development will be taking place in the
gis-1.1
repository hosted at the GeoDjango Mercurial page. The gis-1.1
repository is synchronized with SVN trunk, as well as, Russell Keith Magee's aggregation git repository, and may also include various patches from tickets before they are checked into trunk (e.g., for SpatiaLite support). Because of the dynamic nature of this repository, it is not recommended for production use.
Informal discussion will take place on IRC (in the #geodjango
channel on FreeNode network), and more lengthy discussion (like any feature proposals) should take place on the newly created GeoDjango mailing list.
New Features
Geographic Aggregates
- Now in trunk as of r9748.
- Add new PostGIS aggregates:
Collect
andPolygonize
- Done: Add
Extent
,MakeLine
, andUnion
spatial aggregates. - Done: Add support for
Extent
on Oracle
Geographic F()
Expressions
- #10159: Fix
F()
expressions to work on geographic fields.
SQLite (SpatiaLite) Support
- Contact: Matthew D. Hancher
- Main Tickets: #9686
- Related Tickets: #6064, #9628, #9633
django.contrib.gis.serializers
- Punted to 1.2 because Django's serialization module will be refactored this summer.
GeoQuerySet
Methods
Addin_place
option forGeoQuerySet
methods.- Declined to add this option
- New
GeoQuerySet
Method(s)snap_to_grid()
(#9745)geojson()
(Hobu implemented at one point..)- Requests?
Maintenance
Admin
Contact: Dane Springmeyer
- #8972: Add ability to delete selected vector features [punted to 1.2]
- #9278: Geographic Admin doesn't show vector overlay when LANGUAGE_BIDI is set
- #9299: Zoom too far in with
PointField
s in the admin - #9694: Fix admin bug for Ubuntu 8.10/Apache 2.2.9
- #9806: Fix
GeometryField
in admin [punted to 1.2] - #9620:
AppCache
issues withSpatialRefSys
andGeometryColumns
models (to be seen in admin)
Refactor GEOS and GDAL interfaces
- Goals: clean up cruft, modularize better, move tests into modules, docstring & comment cleanup
GEOS
- Already modularized
- #9557: no error message when using old GDAL and trying to get GEOJSON
- #9877: Pythonic, list-like interface to GEOS geometries.
- Contact: Aryeh Leib Taurog
- Merged into gis-1.1 in r466bec; will be backported to trunk after further tweaks and community testing.
- #10222: Add support for
line_merge
GDAL
#9806: (for fixingOGRGeomType
)- #9855: Simplify
SpatialReference
intiialization withSetFromUserInput
(already fixed in mercurial) - #10368: Add expand_to_include method to gdal Envelope
- #10380: Envelope should allow min_x == max_x and/or min_y == max_y
Google Maps
- Documentation!
- #9204: Add
GIcon
- #9955: Support for multiple maps.
- #10072: Add
draggable
option forGMarker
. General code cleanup; may trim up template path ('templates/gis/google/js/google-map.js'.replace('/js', '')
)
Oracle
- #9794: SQL works on 10 but not on 11 -- bug in Oracle or GeoDjango?
Miscellaneous
- #9858: Add
TEMPLATE_POSTGIS
setting - #9437: Database connection is closed prior to first HTTP request when deploying via FastCGI
Mercurial Intro
Fortunately, you will only need to learn a subset of Mercurial's features to participate -- and most of them are very similar to what you would do in SVN. This section is a brief guide of the mercurial commands you'll need to work with the gis-1.1
repository.
Installation
For those with setup tools and a command-line:
$ easy_install mercurial
However, there are also Mercurial binary packages for Windows and Mac OS X.
Getting a Copy
Here's how to get a copy of the repository -- unlike SVN, you get every changeset when you "clone" a repository:
$ hg clone http://geodjango.org/hg/gis-1.1/
Making Patches
After cloning, work with the code as necessary. Once modified, you create a patch as follows:
$ hg diff > my_patch.diff
However, if you've made your own changes (e.g., checked in your own local revisions with hg ci
) then you will need to send me a diff to the latest pulled revision from the repository. In other words, something like:
$ hg diff -r 49
Updating (Pulling)
To get the latest changes (analagous to svn update
), you pull the new changesets and then update the repository with the following commands:
$ hg pull $ hg update
Or, if you're lazy you can do it in one command:
$ hg pull -u