5

我正在使用此链接将 Google Maps JavaScript Application v2 升级到 v3。基本上我的方法是从 api 获取输出,解析它并使用 MapKit 框架加载它,我使用这段代码成功地做到了。

我的问题:根据文档,如果我们为商业客户使用谷歌地图,我们将需要使用客户 ID 代替密钥。

所以如果我使用这段代码:

<script src="https://maps.googleapis.com/maps/api/js?v=3&client=gme-myclientId&sensor=false" type="text/javascript"></script>

我得到以下输出,其中所有位置都绘制在单点(可能是中心):

映射当前输出

如果我使用此代码:

 <script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>

我将得到预期的(正确的)输出,如下所示:

在不使用 clientId 的情况下映射预期输出

我还浏览了此文档以正确使用客户端 ID,但有帮助。我正在使用与 v2 相同的客户端 ID,希望不会造成任何问题。

4

2 回答 2

3

感谢所有对我的问题的评论,这让我解决了这个问题。所以,我想到了分享解决方案。

当我不使用客户端 ID 时,

<script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>

响应结构是

"overview_path": [{
                    "jb": 37.785610000000005,
                    "kb": -122.41127000000002
                }, … ];

但是,在使用客户端 ID 时,请说 gme-myClientId

<script src="https://maps.googleapis.com/maps/api/js?v=3&client=gme-myClientId&sensor=false" type="text/javascript"></script>

响应结构是

"overview_path": [{
                    "hb": 37.785610000000005,
                    "ib": -122.41127000000002
                }, …];

因此,jb,kb 到 hb,ib 的变化导致了问题,因为我使用变量作为获取值的关键。

我使用的是内部遵循此程序的第三方代码。

我邮寄了 Google 企业支持,他们回复我说我可能在我的 Javascript 库中使用了一些未记录的变量。变量名称在库被缩小时自动生成,并且可以(并且经常)在他们推送的每个版本中更改。正确的方法是仅使用记录在案的 API 方法。

可以在 此处找到使用文档化 API 方法的链接

我修改了我的代码以使用如下

var latT = someLocationObject.lat();
var longT = someLocationObject.lng();

它对我有用。

于 2013-06-13T07:29:32.137 回答
-1

好吧,要使用“gme-XXXXX”之类的客户端 ID,您需要购买 Google Maps for Business 许可证。你已经买了一个吗?

问候,

于 2013-06-11T16:28:30.803 回答