web/lib/django/contrib/gis/db/models/manager.py
changeset 29 cc9b7e14412b
parent 0 0d40e90630ef
equal deleted inserted replaced
28:b758351d191f 29:cc9b7e14412b
     1 from django.db.models.manager import Manager
     1 from django.db.models.manager import Manager
     2 from django.contrib.gis.db.models.query import GeoQuerySet
     2 from django.contrib.gis.db.models.query import GeoQuerySet
     3 from django.contrib.gis.db.models.sql.subqueries import insert_query
       
     4 
     3 
     5 class GeoManager(Manager):
     4 class GeoManager(Manager):
     6     "Overrides Manager to return Geographic QuerySets."
     5     "Overrides Manager to return Geographic QuerySets."
     7 
     6 
     8     # This manager should be used for queries on related fields
     7     # This manager should be used for queries on related fields
     9     # so that geometry columns on Oracle and MySQL are selected
     8     # so that geometry columns on Oracle and MySQL are selected
    10     # properly.
     9     # properly.
    11     use_for_related_fields = True
    10     use_for_related_fields = True
    12 
    11 
    13     def get_query_set(self):
    12     def get_query_set(self):
    14         return GeoQuerySet(model=self.model)
    13         return GeoQuerySet(self.model, using=self._db)
    15 
    14 
    16     def area(self, *args, **kwargs):
    15     def area(self, *args, **kwargs):
    17         return self.get_query_set().area(*args, **kwargs)
    16         return self.get_query_set().area(*args, **kwargs)
    18 
    17 
    19     def centroid(self, *args, **kwargs):
    18     def centroid(self, *args, **kwargs):
    32         return self.get_query_set().envelope(*args, **kwargs)
    31         return self.get_query_set().envelope(*args, **kwargs)
    33 
    32 
    34     def extent(self, *args, **kwargs):
    33     def extent(self, *args, **kwargs):
    35         return self.get_query_set().extent(*args, **kwargs)
    34         return self.get_query_set().extent(*args, **kwargs)
    36 
    35 
       
    36     def extent3d(self, *args, **kwargs):
       
    37         return self.get_query_set().extent3d(*args, **kwargs)
       
    38 
       
    39     def force_rhr(self, *args, **kwargs):
       
    40         return self.get_query_set().force_rhr(*args, **kwargs)
       
    41 
       
    42     def geohash(self, *args, **kwargs):
       
    43         return self.get_query_set().geohash(*args, **kwargs)
       
    44 
    37     def geojson(self, *args, **kwargs):
    45     def geojson(self, *args, **kwargs):
    38         return self.get_query_set().geojson(*args, **kwargs)
    46         return self.get_query_set().geojson(*args, **kwargs)
    39 
    47 
    40     def gml(self, *args, **kwargs):
    48     def gml(self, *args, **kwargs):
    41         return self.get_query_set().gml(*args, **kwargs)
    49         return self.get_query_set().gml(*args, **kwargs)
    49     def length(self, *args, **kwargs):
    57     def length(self, *args, **kwargs):
    50         return self.get_query_set().length(*args, **kwargs)
    58         return self.get_query_set().length(*args, **kwargs)
    51 
    59 
    52     def make_line(self, *args, **kwargs):
    60     def make_line(self, *args, **kwargs):
    53         return self.get_query_set().make_line(*args, **kwargs)
    61         return self.get_query_set().make_line(*args, **kwargs)
    54     
    62 
    55     def mem_size(self, *args, **kwargs):
    63     def mem_size(self, *args, **kwargs):
    56         return self.get_query_set().mem_size(*args, **kwargs)
    64         return self.get_query_set().mem_size(*args, **kwargs)
    57 
    65 
    58     def num_geom(self, *args, **kwargs):
    66     def num_geom(self, *args, **kwargs):
    59         return self.get_query_set().num_geom(*args, **kwargs)
    67         return self.get_query_set().num_geom(*args, **kwargs)
    64     def perimeter(self, *args, **kwargs):
    72     def perimeter(self, *args, **kwargs):
    65         return self.get_query_set().perimeter(*args, **kwargs)
    73         return self.get_query_set().perimeter(*args, **kwargs)
    66 
    74 
    67     def point_on_surface(self, *args, **kwargs):
    75     def point_on_surface(self, *args, **kwargs):
    68         return self.get_query_set().point_on_surface(*args, **kwargs)
    76         return self.get_query_set().point_on_surface(*args, **kwargs)
       
    77 
       
    78     def reverse_geom(self, *args, **kwargs):
       
    79         return self.get_query_set().reverse_geom(*args, **kwargs)
    69 
    80 
    70     def scale(self, *args, **kwargs):
    81     def scale(self, *args, **kwargs):
    71         return self.get_query_set().scale(*args, **kwargs)
    82         return self.get_query_set().scale(*args, **kwargs)
    72 
    83 
    73     def snap_to_grid(self, *args, **kwargs):
    84     def snap_to_grid(self, *args, **kwargs):
    88     def union(self, *args, **kwargs):
    99     def union(self, *args, **kwargs):
    89         return self.get_query_set().union(*args, **kwargs)
   100         return self.get_query_set().union(*args, **kwargs)
    90 
   101 
    91     def unionagg(self, *args, **kwargs):
   102     def unionagg(self, *args, **kwargs):
    92         return self.get_query_set().unionagg(*args, **kwargs)
   103         return self.get_query_set().unionagg(*args, **kwargs)
    93 
       
    94     def _insert(self, values, **kwargs):
       
    95         return insert_query(self.model, values, **kwargs)