It should return whatever the units are in the coordinate system you have
set.  You will probably want to transform the geometry to UTM first.
 Something that treats the geometry as flat and sets distance to be in
meters or similar.  srid=3857 or 900913 will do this nicely (caveat
emptor).

-- Jeff

On Tue, Jan 31, 2012 at 9:07 PM, Alex Kopp <loafer...@gmail.com> wrote:

> Yes Jeff, this is what I want to do. I wasn't sure if there was an easier
> way. What units does the distance function return? I tried this and it
> seems to return the distance in units of 10km, is this correct?
>
>  Thanks again!
>
>
> On Tue, Jan 31, 2012 at 9:04 PM, Jeff Heard 
> <jefferson.r.he...@gmail.com>wrote:
>
>> Got it.  So what you want to do is a list comprehension over the geometry
>> object, which *should* give you individual geometries is what it sounds
>> like.  Then you can calculate distance() from each of these.  Something
>> like this?
>>
>> interesting_point = Point(x, y)
>> collection = result.geom
>> min_dist = min([g.distance(interesting_point) for g in collection])
>>
>> or for every geometrycollection in a queryset:
>>
>> result = MyModel.objects.all()
>> min_dist = min([min([g.distance(interesting_point) for g in coll]) for
>> coll in result])
>>
>> Brute force and thus a bit slow, but it should work if I understand you
>> correctly...
>>
>> -- Jeff
>>
>>
>> On Tue, Jan 31, 2012 at 8:45 PM, Alex Kopp <loafer...@gmail.com> wrote:
>>
>>> Here's a more concrete example, say I am storing shapes of all
>>> countries. Now, the US can't be stored in one polygon (we have hawaii and
>>> alaska), therefore I have to store the many polygons in one
>>> geometrycollection.
>>>
>>> Now, say I have another point on the map, I would like to know how ar it
>>> is from ANY of the polygons...
>>>
>>>
>>> On Tue, Jan 31, 2012 at 8:41 PM, Alex Kopp <loafer...@gmail.com> wrote:
>>>
>>>> Perhaps I didn't explain it well, Jeff. I am just trying to get the
>>>> smallest distance from one point to any of the points, lines, or polygons
>>>> inside of a queryset. The data I am receiving from the queryset is a
>>>> geometrycollection already... That is how it is being stored in the
>>>> database.
>>>>
>>>> On Tue, Jan 31, 2012 at 8:36 PM, Jeff Heard <
>>>> jefferson.r.he...@gmail.com> wrote:
>>>>
>>>>> You should be able to create a geometrycollection object from a
>>>>> queryset (you may have to use a list comprehension for this), then
>>>>> calculate the centroid and take the distance from that. Taking the 
>>>>> distance
>>>>> from the edge should only be a little more
>>>>> Complicated.  Check the django GEOS API docs For complete details
>>>>>
>>>>>
>>>>>
>>>>> On Jan 31, 2012, at 6:36 PM, Loafer <loafer...@gmail.com> wrote:
>>>>>
>>>>> > I have a model that currently stores a Geographic Point (Using Django
>>>>> > GIS (GeoDjango)) and another model that has a field to store a
>>>>> > geometry collection (A collection of polygons, lines, and or points).
>>>>> >
>>>>> > I am trying to find the distance from the point to any one of the
>>>>> > shapes in the geometry collection. Apparently the distance function
>>>>> > only works on single shapes, not a collection. Are there any
>>>>> > workarounds to this?
>>>>> >
>>>>> > Any help is appreciated.
>>>>> >
>>>>> > Thanks.
>>>>> >
>>>>> > --
>>>>> > You received this message because you are subscribed to the Google
>>>>> Groups "Django users" group.
>>>>> > To post to this group, send email to django-users@googlegroups.com.
>>>>> > To unsubscribe from this group, send email to
>>>>> django-users+unsubscr...@googlegroups.com.
>>>>> > For more options, visit this group at
>>>>> http://groups.google.com/group/django-users?hl=en.
>>>>> >
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Django users" group.
>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> django-users+unsubscr...@googlegroups.com.
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/django-users?hl=en.
>>>>>
>>>>>
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Django users" group.
>>> To post to this group, send email to django-users@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> django-users+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/django-users?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To post to this group, send email to django-users@googlegroups.com.
>> To unsubscribe from this group, send email to
>> django-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/django-users?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to