我正在生成一个URL,该URL应将用户从电子邮件链接到google路线,再从其当前位置链接到目的地。我正在关注https://developers.google.com/maps/documentation/urls/guide#directions-action此处的google文档,但遇到的问题因客户而异。
我们注意到,在Android手机上,目的地未填写。当我添加?saddr=Current+Location
时,目的地已填写,但是除了英语以外的其他语言,它并不总是有效(即使使用正确的翻译)。我格式化该目的地的方式有问题吗?是否有正确的跨客户端方法来生成从用户当前位置到目的地的链接?
谢谢!
我已经阅读了所有有关堆栈溢出的现有讨论,并通过了本文http://gearside.com/easily-link-to-locations-and-directions-using-the-new-google-maps/中提到的saddr=Current+location
来尝试解决方案。我认为,即使正确翻译了“当前位置”,这也只能在美国手机上使用。
params = {}
destination = [
self.street,
self.city,
self.province,
self.postal_code,
self.country,
]
destination = ','.join(d for d in destination if d)
params['destination'] = destination
params = {k:v.encode('utf-8') for (k,v) in params.iteritems()}
url = "https://maps.google.com/maps/dir/?api=1&%s" % urlencode(params)
return url
这将创建网址https://maps.google.com/maps/dir/?api=1&destination=24+Ocean+St%2CSanta+Cruz%2CCA%2C95060%2CUS
。
我希望该网址可以打开地图应用或Google地图网页,并提供从用户当前位置到目的地的路线。取而代之的是,我得到了一张当前位置为焦点的地图,没有填写目的地。
更新:我使用了错误的子域(maps.google.com而不是www.google.com)。使用www实际上可以解决该问题。