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.

Reply via email to