【发布时间】:2013-07-19 16:16:43
【问题描述】:
几年前我曾研究过 google map api,并编写了一个可重用的小实用程序。那时添加 google map api 参考确实会在页面的全局命名空间中添加所有 api 类。因为这是工作样本
<script src="http://maps.google.com/maps?SOMEPARAMETERS">
<script>
var map= new GMap2(document.getElementById("map_canvas"));
var point= new LatLng(31,75);
var line= new Polyline(OPTIONS);
</script>
在 v3 中,所有 Google 地图 JavaScript API 代码都存储在 google.maps.* 命名空间中,而不是全局命名空间中。作为此过程的一部分,大多数对象也已重命名,并且还进行了一些更改。
现在你要把上面的代码写成如下
<script src="APIURL">
<script>
var map= new google.map.Map(document.getElementById("map_canvas"));
var point= new google.mapLatLng(31,75);
var line= new google.map.Polyline(OPTIONS);
</script>
问题
我早在 Google v2 API 时代就编写了一个库,并在许多项目中使用过,并且运行良好。但现在我正在开发一个新项目并使用 Google V3 API 并希望重用那个旧的 v2 库。但是添加 v3 库不会在全局命名空间中添加 API 类,并且我的库不起作用。有什么方法可以像我们在 C# 中那样将命名空间添加到我们的 JavaScript 文件中,它允许我们在不附加命名空间的情况下编写类
【问题讨论】:
-
地图 API 的第三个版本使用不同的方法和新的方法名称,所以即使你可以像这样命名你的 javascript(你不能)你必须改变所有的名字,参数等来匹配新的 API,所以你最好只重写你的库。
标签: javascript google-maps google-maps-api-3 javascript-namespaces