javascript - 在没有实例的情况下寻址 jQuery Google Maps 对象

标签 javascript google-maps dom kml jquery-widgets

我正在尝试将 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

它说 map 类型是“em”,这很奇怪,这是因为 GoogleMaps 库已缩小

关于javascript - 在没有实例的情况下寻址 jQuery Google Maps 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149441/

相关文章:

css - Polymer::host 和::content CSS 选择器的区别

android - 使用 XML Dom Parser 解析时如何检查根节点值?

javascript - 带有 Angular JS 的 Spring web MVC - 路由

google-maps - 当同一位置有多个标记时,重叠标记 Spiderfier 标记图标

javascript - 仅使用 javascript 自动双击

javascript - 如何打开和关闭 google-maps 自动完成功能?

android - 如何制作 map 对象(例如 : circle) clickable in android google maps v2?

javascript - 可拖动/可滚动区域内的 iFrame

javascript - Chrome 原生消息传递的替代方案

javascript - 如何在不刷新的情况下重新加载号码