在我的应用中,通过反向代理连接Google Maps API是否可行?

21

我正在开发一个应用程序,希望使用Google Maps API。

问题在于连接Google Maps API服务器不稳定。有时可以正常连接,但有时会被中国境内封锁。

我的解决方案是通过反向代理来进行所有的Google Maps API请求。我可以在美国或香港设置一个服务器作为反向代理,以确保与Google地图服务器之间的连接稳定。

然后我需要更改应用程序中所有Google Maps API的URL以指向我的反向代理,并且代理将代理所有请求到Google Maps服务器。

这里有一些问题:

如何实现客户端库?我需要更改它们吗?如果需要,我是否可以下载Google Maps JavaScript API文件并将其中的URL域名更改为我的代理服务器的域名?

Android和iPhone应用程序该怎么办?我不确定Android和iPhone SDK是否使用http协议进行请求。如果是这样,我该如何将API的域名替换为我的代理服务器的域名?

我想也许有一种方法可以捕获应用程序中所有发出的http请求并在发送之前修改它们,但是经过一番搜索后,我发现这很难做到。

那么,Android和iPhone应用程序能否实现这一点?还是说使用Web应用程序进行更好的实现?

我还想知道这是否值得付出这种复杂的解决方案,因为使用Google Maps API并不是必须的,因为在我们国家有替代品。我之所以更喜欢Google Maps API,是因为它拥有整洁的API风格和更美观的地图外观。


另一个选择可能是使用http://mapproxy.org。此外,我们可能需要将其移动到http://gis.stackexchange.com。 - Gordon
这个应用是你个人使用还是想要推广市场?我可能有一个解决方案,但它不能被推广。 - Manan Sharma
这不是个人使用,我会进行市场营销。 - treblam
4个回答

7
你的解决方案明显违反了Google的条款和条件。
10.1.1(a) 除非通过服务提供的技术或手段,或者通过Google明确指定的其他方式,否则您不得通过任何其他技术或手段访问或使用Maps API(s)或任何内容。例如,您不能通过Maps API(s)以外的接口或渠道(包括未记录在案的Google接口)访问地图瓦片或图像。https://developers.google.com/maps/terms 撇开法律问题不谈,我认为你已经回答了自己的问题。“Google Maps API并非必需品,因为我们国家有替代品”。
但是,如果你一定要使用Google Maps,你可以使用第三方库(如leaflet)来使用他们的瓦片进行网络内容开发。原生移动应用程序是一个完全不同的问题……我怀疑这要么是不可能的,要么是不可行的。

1
我相当确定这更多地涉及到黑客攻击或以其他方式操纵API返回的数据。例如,您无法直接从Maps API中提取交通信息,但您可能可以想出一种从渲染的地图中提取它的方法,这将违反那些条款。 - Ian M

3

该链接仅适用于高级谷歌地图客户端。我相信您现在无法注册高级帐户,而且如果您拥有一个高级帐户,它也将被取消。我在他们当前的服务条款中找不到同样的规定。 - hirowatari

1

对被接受答案的重要更正:

引用的10.1.1节已不存在。此外,在《条款和条件》(T&C)中搜索术语“授权”或“除...以外”,没有类似措辞的替代品。

总之,在阅读了T&C后,似乎Google不再明确表示您必须不通过任何技术或方式使用Maps API或任何内容,而是提供服务,Google也没有提供替代方案。

这里是T&C: https://cloud.google.com/maps-platform/terms/


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接