问题标签 [infowindow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
267 浏览

google-maps-api-3 - 在 Google 地图上创建 1000 个信息窗口的优化策略

我是 Google Maps API 的新手,刚刚接管了一个 RoR 应用程序,该应用程序使用 MarkerClusterer 在地图上绘制多达 2,000 个标记,每个标记都有一个关联的信息窗口。

当前实现在 JavaScript 中创建一个信息窗口内容字符串数组,并将 JavaScript 下载到浏览器。未压缩(没有服务器内容压缩),数组和 Javascript 可以大到 9 MB。

我发现与此实现相关的性能瓶颈是: 1. 在服务器上创建 2000 个字符串并将它们放入 JavaScript 数组的时间。(~4-5 秒) 2. 在发送到浏览器之前,服务器上压缩数兆字节 JavaScript 的时间。(~2-3 秒)

我最初的想法是为包含所有 HTML 格式的 infowindow 内容字符串创建一个模板,以便 infowindow 内容数组中包含的唯一数据是要显示的实际原始数字。这应该会大大减少在服务器上组装内容字符串数组的计算时间,并相应地减少数组在浏览器中消耗的内存。此外,一次只需要打开一个信息窗口。

由于不熟悉 Google Maps v3 API,我正在寻找有关这是否是最佳优化策略的任何指导。并且,任何指向实现此类策略的代码示例的指针。

提前致谢,

-斯科特

0 投票
1 回答
23394 浏览

javascript - 向 Google Maps API InfoWindow 中的元素添加事件

我想在 Google Maps API (v3) InfoWindow 中放置一个带有输入字段和提交按钮的表单。

提交后,我想调用一个函数,该函数使用输入字段中输入的地址启动路线服务。

这是我的代码(我目前只测试方向事件是否被触发。我已经编写了完整的getDirections()事件并且可以确认它有效并在正确触发时返回方向):

我尝试使用 MooTools 添加事件侦听器,如下所示:

当我在我网站的其他地方使用 MooTools 时,我将所有代码放入window.addEvent('load', function(){...});

dbug.log($("map-form"));请注意正确输出表单元素但事件未触发的控制台跟踪。

我已将相同的事件添加到 DOM 中的另一个表单(具有不同的 ID),它工作正常。

那么,如果 MooTools 可以找到该元素并假设添加了事件侦听器,那么是什么阻止了事件触发呢?这是范围问题吗?

0 投票
1 回答
2798 浏览

google-maps - Google Maps API v3 中的 GInfoWindowTab 等效项

在 Google Maps API v2 中:GInfoWindowTab (title,content) - 将弹出窗口中的信息拆分为多个部分。

例如:

等等。

在 Google Maps API v3 中,此功能不起作用。

并且最新对应的官方参考中没有这个功能: http ://code.google.com/intl/ru/apis/maps/documentation/javascript/reference.html#InfoWindow

有谁知道,如何替换该功能或模仿它?

0 投票
1 回答
458 浏览

android - 如何在我的地图上定位 infoWindow?

我有一个RelativeLayout持有一些观点的人。其中一个视图是MapView,基本上是在画布中呈现位图的视图。

现在我想实现某种信息窗口。

我已经为它创建了一个布局,其中包含FrameLayout一个TextView. 我在图像上使用了 9patch,因此它可以拉伸以容纳任何内容。

我已经在我的设备上实现了手势(长按),MapView并且我知道infoWindow应该可见的屏幕点。然后我尝试膨胀信息窗口视图并以某种方式定位它......但问题是我无法测量它(值为0),所以我不知道如何将它定位在我的地图上。

任何提示如何定位我的信息窗口将不胜感激。

0 投票
2 回答
2662 浏览

javascript - Google Map API v3 InfoWindow 无法使用函数中的 setContent 打开

我有一个简单的谷歌地图 v3 代码。它创建地图并向markerCluster 添加一个标记。一切正常,除了将内容设置到 infoWindow 并打开它。该函数getSupplierDetails()只返回一个短字符串(即“Red Supply”)。

这就是问题所在:如果我将文本“Red Supply”硬编码到 setContent 行,infoWindow.setContent("Red Supply");那么信息窗口会随着内容正常打开。

但是,如果我将其保留在下面的代码中,则信息窗口根本不会打开,尽管该getSupplierDetails()函数返回“红色供应”。

getSupplierDetails()函数返回此 JSON 字符串: {"popupContent": "Red Suppplier"}来自 Firebug。

花了这么长时间没有任何解决方案。任何帮助表示赞赏。

谢谢

0 投票
2 回答
20183 浏览

google-maps-api-3 - 谷歌地图 v3 向圆圈添加信息窗口

有没有办法将 infoWindow 添加到由 google.maps.Circle 创建的圈子中

像这样的东西

或者有一种方法可以在圆的中心创建一个不可见的标记,可以点击它来访问 infoWindow

0 投票
1 回答
4723 浏览

google-maps-api-3 - 更改谷歌地图信息窗口的内容

根据选定的国家和日期,结果列表将显示在地图上。带有 html 数据的标记的放置工作正常,我遇到的问题是处理带有重复标记的情况。

我找到了一种检查重复内容的方法,但我希望能够修改已经存在的信息窗口中的内容。这样我就可以将重复标记的内容添加到位于同一位置的现有标记中。

我遇到的问题是我找不到在现有信息窗口中访问重复数据的正确方法。

如果我执行 alert(infoWindow.getContent());,那么我只会得到“未定义”。我也尝试了markers[i].getContent(),但这也没有做任何事情。

关于如何访问先前添加的标记的信息窗口、使用 getContent() 获取其内容并将重复的数据添加到其中的任何想法或建议?

0 投票
2 回答
19909 浏览

google-maps-api-3 - 谷歌地图 v3 在 infoWindow 中格式化多行内容

我正在尝试在 google maps v3 中创建一个包含多行内容的 infoWindow。但是,我用来插入换行符的“\n”似乎不起作用。插入换行符的推荐方法是什么?

见代码:

0 投票
6 回答
41982 浏览

google-maps-api-3 - 谷歌地图 v3 更改信息窗口的大小

我想设置一个信息窗口的大小以适应里面的内容。标准信息窗口太宽我尝试使用 maxWidth 但它似乎不起作用。调整信息窗口大小的最佳方法是什么?

见代码:

气泡中将显示的信息如下所示(\n 表示下一行)

纽约\n总计 60 \n2009: 10 \n2010: 20 \n2011: 30

0 投票
1 回答
2660 浏览

google-maps-api-3 - Google Maps API v3 - 在另一个信息窗口打开时单击标记时未触发单击事件

我有一个设置,其中存在多个标记,每个标记在单击时将内容加载到单个信息窗口。

不幸的是,当另一个窗口打开时,似乎没有触发标记的点击事件。

这似乎是一种奇怪的行为。有没有其他人发现是这种情况?

谢谢

我的代码如下: