我的应用程序中是否可以通过反向代理连接 Google Maps API?

问题描述 投票:0回答:5

我正在开发一个应用程序,我想在其中使用 Google 地图 API。

问题是与 Google Maps API 服务器的连接不稳定。有时没问题,但有时因为我在中国而被屏蔽。

我提出的解决方案是通过反向代理发出所有 Google Maps API 请求。我可以在美国或香港设置一个服务器作为反向代理,那里与 Google 地图服务器有稳定的连接。

然后我必须更改应用程序中所有 Google 地图 API 的 URL,以指向我的反向代理,并且代理会将所有请求代理传递到 Google 地图服务器。

我对此有几个疑问:

我将如何实施客户端库?我必须改变它们吗?如果是这样,我可以下载 Google Maps JavaScript API 文件并将其中网址的域名更改为我的代理服务器的域吗?

我该如何处理 Android 和 iPhone 应用程序?我不确定Android和iPhone SDK是否会使用http协议发出请求。如果是的话,如何将API的域名替换为我的代理服务器的域名?

我想也许有一种方法可以捕获我的应用程序中发出的所有 http 请求并在发送之前对其进行修改,但在谷歌搜索一段时间后我发现这很难做到。

那么 Android 和 iPhone 应用程序可以做到这一点吗?或者有更好的方法通过网络应用程序来实现它吗?

我还想知道这样做是否值得,因为该解决方案似乎相当复杂,并且使用 Google Maps API 并不是必需的,因为在我们国家有替代品。我只是更喜欢 Google Maps API,因为它简洁的 API 风格和更漂亮的地图外观。

javascript android ios google-maps-api-3 reverse-proxy
5个回答
6
投票

您的解决方案公然违反了 Google 的条款和条件。

10.1.1 (a) 您不得通过服务中提供的技术或方式以外的任何技术或方式或通过 Google 可能指定的其他明确授权方式访问或使用 Maps API 或任何内容。 例如,您不得通过 Maps API 以外的接口或渠道(包括未记录的 Google 接口)访问地图图块或图像。 https://developers.google.com/maps/terms

撇开法律问题不谈,我想你已经回答了你自己的问题。 “Google 地图 API 不是必需品,因为在我们国家有替代品”。

但是,如果您一心想要使用 Google 地图,您可以将其图块与第三方库(例如网页内容的传单)一起使用。原生移动应用程序是一个完全不同的问题...我怀疑它要么是a:不可能,要么b:不可行。


3
投票

FWIW,Google 的这份文档指出缓存地图图像是可以接受的。

https://developers.google.com/maps/premium/optimize-web-services#cache


1
投票

对已接受答案的重大更正:

引用的第 10.1.1 节不再存在。此外,在条款和条件 (T&C) 中搜索术语“授权”或“其他”不会返回类似措辞替换的结果。

总而言之,在阅读条款和条件后,Google 似乎不再明确表示“您不得通过服务中提供的技术或方式以外的任何技术或方式访问或使用地图 API 或任何内容”,Google 似乎也不会提供替代品。 此处的条款与条件:

https://cloud.google.com/maps-platform/terms/


0
投票
用于移动应用程序的 Google 地图 Web 服务代理

这似乎是回购协议:

https://github.com/googlecodelabs/google-maps-web-services-proxy


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.