Hello,

I solve your probleme in changing the output format into json, then I
convert the coordinates into Float.

def get_lat_long(location):
        key = ''
        output = "json"
        location = urllib.quote_plus(location)
        request = "http://maps.google.com/maps/geo?q=%s&output=%s"; %
(location, output)
        data = urllib.urlopen(request).read()
        dlist = simplejson.loads(data)
        lat = float(dlist['Placemark'][0]['Point']['coordinates'][0])
        lon = float(dlist['Placemark'][0]['Point']['coordinates'][1])
        if dlist['Staut']['code'] == 200:
            return (lat,lon)
I've tested and it works. Good luck

On 25 sep, 09:47, please smile <smilepleas...@gmail.com> wrote:
> Hi all,
>     I have a problem to convert latitude and longitude values into point
> field value.
>
>     def get_lat_long(location):
>         key = settings.GOOGLE_API_KEY
>         output = "csv"
>         location = urllib.quote_plus(location)
>         request = "http://maps.google.com/maps/geo?q=%s&output=%s&key=%s"; %
> (location, output, key)
>         data = urllib.urlopen(request).read()
>         dlist = data.split(',')
>         if dlist[0] == '200':
>             #return "%s, %s" % (dlist[2], dlist[3])
>             return (dlist[2], dlist[3])
>         else:
>             return ''
>
>     My models.py
>     --------------
>     class Person(models.Model):
>         address = models.CharField(_('address'), max_length=200, blank=True)
>         city = models.CharField(_('city'), max_length=100, blank=True)
>         state = USStateField(_('state'), blank=True)
>         zipcode = models.CharField(_('zip code'), max_length=5, blank=True)
>         point = models.PointField(blank=True, null=True)
>
>         objects = models.GeoManager()
>
>         def save(self, force_insert=False, force_update=False):
>
>         if self.point == None:
>             location = "%s+%s+%s+%s" % (self.address, self.city, self.state,
> self.zipcode)
>             point_lat, point_long = get_lat_long(location)
>             pnt = Point(point_long, point_lat)
>             self.point = pnt
>
> Here I convert latitude , longitude value into point field value. But i am
> getting   "Exception Value: Invalid parameters given for Point
> initialization."
>
> please advise...
> Thank you....
>
>  Trace back
>  ---------------
>  Environment:
>
> Request Method: POST
> Request URL:http://192.168.1.57:8000/admin/people/person/add/
> Django Version: 1.1
> Python Version: 2.5.2
> Installed Applications:
> ['peoplesearch.people',
>  'django.contrib.admin',
>  'django.contrib.gis',
>  'django.contrib.auth',
>  'django.contrib.contenttypes',
>  'django.contrib.sessions',
>  'django.contrib.sites',
>  'django.contrib.databrowse',
>  'peoplesearch.haystack']
> Installed Middleware:
> ('django.middleware.common.CommonMiddleware',
>  'django.contrib.sessions.middleware.SessionMiddleware',
>  'django.contrib.auth.middleware.AuthenticationMiddleware')
>
> Traceback:
> File "/root/myprojects/directory/django/core/handlers/base.py" in
> get_response
>   92.                 response = callback(request, *callback_args,
> **callback_kwargs)
> File "/root/myprojects/directory/django/contrib/admin/options.py" in wrapper
>   226.                 return self.admin_site.admin_view(view)(*args,
> **kwargs)
> File "/root/myprojects/directory/django/views/decorators/cache.py" in
> _wrapped_view_func
>   44.         response = view_func(request, *args, **kwargs)
> File "/root/myprojects/directory/django/contrib/admin/sites.py" in inner
>   186.             return view(request, *args, **kwargs)
> File "/root/myprojects/directory/django/db/transaction.py" in
> _commit_on_success
>   240.                 res = func(*args, **kw)
> File "/root/myprojects/directory/django/contrib/admin/options.py" in
> add_view
>   734.                 self.save_model(request, new_object, form,
> change=False)
> File "/root/myprojects/directory/django/contrib/admin/options.py" in
> save_model
>   557.         obj.save()
> File "/root/myprojects/peoplesearch/../peoplesearch/people/models.py" in
> save
>   118.             pnt = Point(point_long, point_lat)
> File "/root/myprojects/directory/django/contrib/gis/geos/point.py" in
> __init__
>   32.             raise TypeError('Invalid parameters given for Point
> initialization.')
>
> Exception Type: TypeError at /admin/people/person/add/
> Exception Value: Invalid parameters given for Point initialization.

--~--~---------~--~----~------------~-------~--~----~
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