Code


Version 5 (modified by jbronn, 7 years ago) (diff)

--

Desirable stuff (to be updated on GeoDjango Roadmap)

  • Distance API
    • Houses.objects.filter(point__intersects=school.point.buffer(Distance(5,km))
      • Distance is without SRS? Geopy API is neat, MIT
      • General discussion of UOM toolkit, such that Distance(km=1)+Distance(mi=1) => Distance(km=2.61) and Distance(km=1)*Distance(mi=1)=> Area(km=1.61)
        • rcoup knows of implementation under bsd license.
  • Common models for discussion/communication
    • House (point)
    • School District (poly)
    • Bus Route (line)
  • Support for a mapping framework (e.g. Google Maps/Earth, Yahoo Maps, MS Live, etc.)
    • User widget, admin widget, databrowse plugin
  • WMS views
  • Spatial querying w/ unit tests
  • More robust gdal datasource support: missing/null values, multipoly in poly, multiline in line, etc.
    • gdal.Field.value dies on int(' '). Better to have (GIS) exception or return None?
  • C object lifetime management
    • leak testing? (Lots of handles and delete ; affects gc, see: gc.garbage)
    • poly.exterior_ring.append(point); (poly.exterior_ring is poly.exterior_ring) -> True
    • weakref when c wrapper refers to anything outside gis types(?)
    • or does ctypes do something magical?
    • Why are transform and transform_to are separate?
      • FAQ has been updated to answer this question

Common CS

  • WGS84
  • NAD83
  • NAD27
  • NZ Transverse Mercator (NZGD2000) (epsg:2193)
  • NZ Map Grid (NZGD49) epsg:27200

Descriptor-based field instead of get_FIELD_geos; (scrap GeoMixin?  may still be needed to manage c ref lifetimes)

Multiple Geom per Model API
 LayerMapping -> CityBoundary
 but
 Multiple -> City where .boundary is one geom of the model.

__str__ cleanup (class names out)

downcase module names

2.3 compatibility (decorators, ???)

How is SRS initially determined in LayerMapping?

GDal/GEOS geom mapping?

Way to map .srs to srid programmatically?

LayerMapping raise custom exceptions

LayerMapping use Model.create_many once it exists.


why is GEOSGeometry doing ._cache_cs and self.coord_seq (creating a
new CS unless specifically avoiding it) rather than caching internally
and returning the same one?

SpatialRefSys.ellipsoid without GDAL

Document what works and doesn't without optionals (GDAL, ???)

LayerMapping model.validate?
Or at least clearly document.

Need GIS fixture loader.

Geos .area() and friends need desired UOM args.