我正在尝试将 KML 图层添加到现有的谷歌地图对象,但无法控制对象实例(和初始化)。
到目前为止,我发现该对象位于(DOM): 窗口.谷歌. map ... (好吧,这只是构造函数,而不是渲染的 Map 对象本身)
这是我想要添加到 google.maps.Map 对象的现有(?)实例中的内容:
var kmlUrl = 'http://.../polygon-simple.kml';
var kmlOptions = {
suppressInfoWindows: false,
preserveViewport: true
};
var kmlLayer = new window.google.maps.KmlLayer(kmlUrl, kmlOptions);
包含 Map 对象的页面由托管公司提供,并使用其自己的 jQuery 小部件来生成该对象。我可以在 html-body 中添加我的 JavaScript( map 的“服务器端”创建也发生在其中)。
由于我无法更改所使用的 JS 文件和 CMS 添加的 JS 的来源,因此我需要解决现有对象并执行以下操作:
kmlLayer.set(obj.Map);
应用我的添加并更新 map 对象。但显然它不起作用。
我对整个网站进行了 firebug,并试图找到由 jQuery 小部件生成的 Map 实例 - 什么也没有。我遍历了网站上的每个对象 - 什么都没有。
完全自己编写 Google map 代码是行不通的,因为我需要在后端为非开发人员保留它的可配置性。
我猜问题会转向 jQuery 小部件问题...提前致谢!
最佳答案
window.google.maps.Map 不是 map 对象,它是该对象的构造函数。该对象本身位于另一个城堡(变量)中。
obj instanceof google.maps.Map
如果对象是 googlemaps map 对象,则应返回 true。如果您确实找不到该变量,您可以编写一个循环,递归地遍历页面上的所有对象,以找到该行返回 true 的对象。
作为 chrome 调试器中的旁注,Map 对象如下所示:
它说 map 类型是“em”,这很奇怪,这是因为 GoogleMaps 库已缩小
关于javascript - 在没有实例的情况下寻址 jQuery Google Maps 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149441/