|
1 from django.db.models.manager import Manager |
|
2 from django.contrib.gis.db.models.query import GeoQuerySet |
|
3 from django.contrib.gis.db.models.sql.subqueries import insert_query |
|
4 |
|
5 class GeoManager(Manager): |
|
6 "Overrides Manager to return Geographic QuerySets." |
|
7 |
|
8 # This manager should be used for queries on related fields |
|
9 # so that geometry columns on Oracle and MySQL are selected |
|
10 # properly. |
|
11 use_for_related_fields = True |
|
12 |
|
13 def get_query_set(self): |
|
14 return GeoQuerySet(model=self.model) |
|
15 |
|
16 def area(self, *args, **kwargs): |
|
17 return self.get_query_set().area(*args, **kwargs) |
|
18 |
|
19 def centroid(self, *args, **kwargs): |
|
20 return self.get_query_set().centroid(*args, **kwargs) |
|
21 |
|
22 def collect(self, *args, **kwargs): |
|
23 return self.get_query_set().collect(*args, **kwargs) |
|
24 |
|
25 def difference(self, *args, **kwargs): |
|
26 return self.get_query_set().difference(*args, **kwargs) |
|
27 |
|
28 def distance(self, *args, **kwargs): |
|
29 return self.get_query_set().distance(*args, **kwargs) |
|
30 |
|
31 def envelope(self, *args, **kwargs): |
|
32 return self.get_query_set().envelope(*args, **kwargs) |
|
33 |
|
34 def extent(self, *args, **kwargs): |
|
35 return self.get_query_set().extent(*args, **kwargs) |
|
36 |
|
37 def geojson(self, *args, **kwargs): |
|
38 return self.get_query_set().geojson(*args, **kwargs) |
|
39 |
|
40 def gml(self, *args, **kwargs): |
|
41 return self.get_query_set().gml(*args, **kwargs) |
|
42 |
|
43 def intersection(self, *args, **kwargs): |
|
44 return self.get_query_set().intersection(*args, **kwargs) |
|
45 |
|
46 def kml(self, *args, **kwargs): |
|
47 return self.get_query_set().kml(*args, **kwargs) |
|
48 |
|
49 def length(self, *args, **kwargs): |
|
50 return self.get_query_set().length(*args, **kwargs) |
|
51 |
|
52 def make_line(self, *args, **kwargs): |
|
53 return self.get_query_set().make_line(*args, **kwargs) |
|
54 |
|
55 def mem_size(self, *args, **kwargs): |
|
56 return self.get_query_set().mem_size(*args, **kwargs) |
|
57 |
|
58 def num_geom(self, *args, **kwargs): |
|
59 return self.get_query_set().num_geom(*args, **kwargs) |
|
60 |
|
61 def num_points(self, *args, **kwargs): |
|
62 return self.get_query_set().num_points(*args, **kwargs) |
|
63 |
|
64 def perimeter(self, *args, **kwargs): |
|
65 return self.get_query_set().perimeter(*args, **kwargs) |
|
66 |
|
67 def point_on_surface(self, *args, **kwargs): |
|
68 return self.get_query_set().point_on_surface(*args, **kwargs) |
|
69 |
|
70 def scale(self, *args, **kwargs): |
|
71 return self.get_query_set().scale(*args, **kwargs) |
|
72 |
|
73 def snap_to_grid(self, *args, **kwargs): |
|
74 return self.get_query_set().snap_to_grid(*args, **kwargs) |
|
75 |
|
76 def svg(self, *args, **kwargs): |
|
77 return self.get_query_set().svg(*args, **kwargs) |
|
78 |
|
79 def sym_difference(self, *args, **kwargs): |
|
80 return self.get_query_set().sym_difference(*args, **kwargs) |
|
81 |
|
82 def transform(self, *args, **kwargs): |
|
83 return self.get_query_set().transform(*args, **kwargs) |
|
84 |
|
85 def translate(self, *args, **kwargs): |
|
86 return self.get_query_set().translate(*args, **kwargs) |
|
87 |
|
88 def union(self, *args, **kwargs): |
|
89 return self.get_query_set().union(*args, **kwargs) |
|
90 |
|
91 def unionagg(self, *args, **kwargs): |
|
92 return self.get_query_set().unionagg(*args, **kwargs) |
|
93 |
|
94 def _insert(self, values, **kwargs): |
|
95 return insert_query(self.model, values, **kwargs) |