【问题标题】:How to specify an address in a Google Maps Directions API URL如何在 Google Maps Directions API URL 中指定地址
【发布时间】:2013-08-09 22:58:29
【问题描述】:

如何在 Google Maps Web Services Directions API URL 中指定地址? Maps Web Services page 状态

转换从用户输入接收的 URL 有时很棘手。例如,用户可以输入地址为“5th&Main St”。通常,您应该从 URL 的各个部分构建您的 URL,将任何用户输入视为文字字符。

但是这不是很清楚。没有示例,我无法在网上找到任何示例。这是否意味着,对于给定的示例,“5th&Main St.”以下有效吗?

https://maps.googleapis.com/maps/api/directions/json?destination=5th%26Main+St.&sensor=true

如果不是,正确的转换是什么?

感谢阅读。

【问题讨论】:

  • 你的例子中的转换是正确的
  • 我想我明白了。引用中隐含的技巧是,如果 & 只是按原样传递,它可能会被误解为参数分隔符。也就是说,没有正确转换

标签: google-maps


【解决方案1】:

据我了解,您正在寻找URI encode

在 Javascript 中:

encodeURI 用于对包含特殊字符的字符串进行编码,包括 外语。

示例:

var address =  "5th&Main St.";
var encodedAddress = encodeURI(address);

然后在google maps API中传递encodedAddress。

https://maps.googleapis.com/maps/api/directions/json?destination=encodedAddress&sensor=true

符号等效编码的小列表(Percent encoding):

space   %20
!       %21
"       %22
#       %23
$       %24
%       %25
&       %26     // this what happended in your case
'       %27
(       %28
)       %29

一旦我遇到问题,一边做geocoding via C#

我使用 HttpUtility.UrlEncode() 对地址进行了类似的 URI 编码,然后将其传递给我上面提到的 Google API。每种语言都有自己的编码技术,但输出是相同的。

希望你能理解。

【讨论】:

  • 我实际上是在 iOS 中编程,所以等效的方法是 NSString 的 stringByAddingPercentEscapesUsingEncoding。我现在很清楚了。谢谢!
  • @Phil 哦,你在 iOS 中的表现。很高兴我能提供帮助。感谢分享:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
相关资源
最近更新 更多