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.

Reply via email to