我正在使用此link升级Google Maps JavaScript Application v2 To v3。基本上我的方法是从api获取输出,解析它并使用MapKit框架加载它,我使用这个code成功地完成了它。
我的问题:根据文档,如果我们为商业客户使用谷歌地图,我们将需要使用客户端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>
我将得到预期的(正确的)输出如下:
我也通过这个documentation来正确使用客户端ID,但dint帮助。 我使用的是与v2相同的客户端ID,希望不会产生任何问题。
答案 0 :(得分: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的变化导致了问题,因为我使用变量作为获取值的关键。
我正在使用third party Code,内部遵循此程序。
我邮寄了谷歌企业支持,他们回复说我可能在我的Javascript库中使用了一些未记录的变量。变量名称在库缩小时自动生成,并且可以(并且经常)在它们推送的每个版本上进行更改。正确的方法是仅使用记录的API方法。
可以找到使用文档化API方法的链接 Here
我修改了我的代码,使用如下所示
var latT = someLocationObject.lat();
var longT = someLocationObject.lng();
它对我有用。
答案 1 :(得分:-1)
好吧,要使用像“gme-XXXXX”这样的客户端ID,您需要购买Google Maps for Business许可证。你已经买了一个吗?
此致