在地图上显示多个标记及其自己的信息窗口

2023-12-05

我需要在地图上显示多个标记,每个标记都有自己的 信息窗口。我已经毫无问题地创建了单独的标记, 但不知道如何为每个创建信息窗口。

我正在基于 ASP 的网站中使用 V3 API 生成地图, 从一组数据库记录创建标记。标记是 通过循环 rs 并使用以下命令定义 Marker() 创建 相关变量:

            var myLatlng = new google.maps.LatLng(lat,long);
            var marker = new google.maps.Marker({
                    map: map,
                    position: myLatlng,
                    title: 'locationname',
                    icon: 'http://google-maps-icons.googlecode.com/files/park.png'
            });

这将在正确的位置创建所有相关标记。

我现在需要做的,并且不确定如何实现是给每个 其中有自己独特的信息窗口,我可以用它来显示 与该标记相关的信息和链接。

Source

                <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
                <script language="javascript">
                $(document).ready(function() {

                     //Google Maps 
                        var myOptions = {
                          zoom: 5,
                          center: new google.maps.LatLng(-26.66, 122.25),
                       mapTypeControl: false,
                          mapTypeId: google.maps.MapTypeId.ROADMAP,
                       navigationControl: true,
                       navigationControlOptions: {
                         style: google.maps.NavigationControlStyle.SMALL
                       }

                        }

                        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

                      <!-- While locations_haslatlong not BOF.EOF -->
                            <% While ((Repeat1__numRows <> 0) AND (NOT locations_haslatlong.EOF)) %>
                      var myLatlng = new google.maps.LatLng(<%=(locations_haslatlong.Fields.Item("llat").Value)%>,<%=(locations_haslatlong.Fields.Item("llong").Value)%>);
                      var marker = new google.maps.Marker({
                       map: map,
                       position: myLatlng,
                       title: '<%=(locations_haslatlong.Fields.Item("ldescription").Value)%>',
                       icon: 'http://google-maps-icons.googlecode.com/files/park.png',
                       clickable: true,
                      }); 
                      <% 
                      Repeat1__index=Repeat1__index+1
                      Repeat1__numRows=Repeat1__numRows-1
                      locations_haslatlong.MoveNext()
                      Wend
                      %>           
                            <!-- End While locations_haslatlong not BOF.EOF -->

                      google.maps.event.addListener(marker, 'click', function() {
                      infowindow.open(map,marker);
                      });

                      google.maps.event.addListener(marker, 'dblclick', function() {
                      map.setZoom(14);
                      });


                                    });

问题出在你的电话上addListener()

当您循环遍历记录集并一次又一次地编写 JavaScript 以将标记添加到地图时,您只调用事件侦听器一次。此外,您实际上从未创建过任何对象信息窗口输入,这样你就没有任何东西可以调用open() on.

The 又快又脏解决方案是在创建后添加它marker但在你结束之前While loop.

var infowindow = new google.maps.InfoWindow({ 
    content: '<%=(locations_haslatlong.Fields.Item("field_or_fields_containing_data_for_info_window").Value)%>' 
});
google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(map,marker);
});

但不要这样做——您正在使用 VB 为您编写完全多余的 Javascript,而您可以使用 VB 来获取您需要的内容,然后让 Javascript 完成您需要处理数据的工作。

The better做你想做的事情的方法是重写你的VB来创建一个Javascript对象数组,每个对象都包含一个公园的信息。然后使用 Javascript 循环该数组并为您设置标记及其关联的 infoWindows。

概述建议的解决方案:

// Create an array to hold a series of generic objects
// Each one will represent an individual marker, and contain all the 
// information we need for that marker.  This way, we can reuse the data
// on the client-side in other scripts as well.
var locations_array = [<%
While (
    (Repeat1__numRows <> 0) 
    AND (NOT locations_haslatlong.EOF)
) 
%>
{ 
latitude: <%=(locations_haslatlong.Fields.Item("llat").Value)%>,
longitude: <%=(locations_haslatlong.Fields.Item("llong").Value)%>,
title: "<%=(locations_haslatlong.Fields.Item("ldescription").Value)%>",
infoWindowContent: "<%=(locations_haslatlong.Fields.Item("field_or_fields_containing_data_for_info_window").Value)%>"
},
<% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  locations_haslatlong.MoveNext()
  Wend
%>];

var x = locations_array.length;
while (--x) {
    // Grab an individual park object out of our array
    var _park = locations_array[x]
    var myLatlng = new google.maps.LatLng(_park.latitude,_park.longitude);
    var marker = new google.maps.Marker({
        map: map,
        position: myLatlng,
        title: _park.title,
        icon: 'http://google-maps-icons.googlecode.com/files/park.png',
        clickable: true,
    }); 
    var infowindow = new google.maps.InfoWindow({ 
        content: _park.infoWindowContent
    });
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map,marker);
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在地图上显示多个标记及其自己的信息窗口 的相关文章

  • 在 Bootstrap 按钮下拉列表标题/占位符文本中显示所选项目

    这个问题已经在 Stackoverflow 上被问过几次了 但是我仍然无法弄清楚它的真相 而且我的查询正在抛出更多的下拉菜单 所以我有两个下拉菜单和一个搜索 我想从下拉列表和 选定 中进行选择以替换下拉占位符文本 但我还需要记住 点击搜索后
  • 验证消息对于日期时间选择器无法正常工作?

    这里的问题是验证日期时间选择器并在页面加载后重置值 在页面加载验证正常工作 但日期时间选择器值未重置 页面加载后 这两个问题值都不会重置 验证也不起作用 这是小提琴 http jsfiddle net XHW3w 6 http jsfidd
  • 使用 jQuery .load 时防止滚动到顶部

    我的网站上有三个按钮 当您单击每个按钮时 它们会使用 load 将不同的内容添加到 DIV 中 我遇到的问题是 每当您单击按钮时 它都会将您带回页面顶部 我尝试过使用 PreventDefault 并返回 false 但它对我不起作用 我可
  • 获取要在新浏览器中显示的选择值

    嘿 基本上这是我的代码 运行的第一个脚本允许在 URL 中显示所选值
  • 更新 Parse.com 中的一行

    我所拥有的是 当单击编辑按钮时 两个输入字段中的值将创建一个新行 并删除旧行 下面是我使用的代码 但我想要的是更新原始行而不是删除原始行 实例 http jsbin com uyonek 2使用下面的代码是如何工作的 editBtn onc
  • 标题的固定高度和更改宽度(HTML 表格)

    我需要确保表格标题的高度是固定的 并且宽度是根据标题单元格内容进行调整的 标题文本最多显示两行 我们如何使用样式来做到这一点 另外 我想确保表行的宽度与标题行的宽度相同 即标题行决定宽度 注 目前 交易部门负责人别名 是按行排列的 它需要分
  • 使用 JQuery 将 SVG 动态加载到 SVGWeb 中

    我正在尝试动态显示一些 SVG 内容 此内容作为字符串存储在我的数据源中 示例字符串如下所示
  • ASP经典:如何在服务器端调度函数

    我只研究 ASP classic 我知道我必须学习新的东西 但现在 这就是我的问题 在我的数据库中 我存储网站的帐户 一年后 这些账户需要被停用 我创建了一个工作正常的函数 但我需要一个预定的调用 每天晚上 00 00 有可能吗 我需要拨打
  • jQuery和PHP中如何知道返回数据是Json还是String?

    我想在客户端 jQuery 检查 PHP 函数返回的数据是否是 Json 对象或 String 来分配不同的函数 如果 json 的格式不正确 jQuery 的 parseJson 将生成异常 您可以将调用包装在 try catch 块中
  • jQuery 或 JavaScript 中的“$”符号是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中 符号的含义是什么 https stackoverflow com questions 1150381 what is the meaning of sign in javas
  • 使用 jQuery UI 图标

    jQuery UI 在精灵图像中提供了方便的图标 看到主题滚轮 http jqueryui com themeroller 我有一个input我想要时钟图标的元素 带有类 ui icon clock 作为背景图像 怎样才能有一个背景图标in
  • 如何使用ckeditore通过ajax发送数据?

    我在 django 中有一个表格 这是 撰写邮件 形式 我将此表单从视图发送到我的模板 然后应用 ckeditor 来更改正文样式 我希望通过 ajax 发布此表单 当使用 ckeditor 时 body 字段的值不会随 request P
  • 如何使用JQuery调用SWAL中成功的函数?

    第二个功能不起作用 它没有收到从第一个函数传递的 id 这是我的 JQuery 代码 swal title Are you sure text You will not be able to recover this record type
  • ASP 会话变量:“”与 IsEmpty 相同吗?

    在 ASP 中 未初始化的会话变量为空 我知道检查会话值并删除值的正确方法如下 IF NOT IsEmpty Session myVar THEN Go ahead and use Session myVar Now if we re al
  • 第一个单词选择器

    如何选择 div 中的第一个单词 我需要能够在第一个单词后插入换行符 或者将其包装在 span 标记中 我需要对具有相同类的页面上的多个 div 执行此操作 替换 HTML 将导致事件处理程序解除绑定 替换元素的整个文本将导致 HTML 标
  • 带有子节点的拖放区域

    我有一个带有多个子节点的拖放区域 主要元素有dropenter and dropleave事件 但是 如果您将文件拖动到主元素内部和子节点上方 则dropleave被触发 如何处理 以便dropleave仅当拖动的元素和鼠标位于主元素之外时
  • 如何将 jquery 添加到 Appcelerator Titanium Mobile Work?

    是否可以将 jquery 集成到 Titanium Appcelerator 中并且它可以正常工作吗 否则我们不能将jquery集成到titanium appcelerator中 有人帮助我吗 你到底想做什么 我不确定它在没有 DOM 的情
  • 将 jQuery 单击处理程序添加到多个元素?

    我需要有一个for在我的 jQuery 中循环 Example for i 0 i
  • 只返回 $.ajax 传递的 JSON 数据的前 20 个结果?

    我有以下简单的 jquery 片段 document ready function ajax url myjson json dataType json success function json each json function al
  • Chrome 上的 contenteditable 中未显示编辑光标

    当您打开此页面时 请参阅现场演示 http jsfiddle net gs3p1a6r 3 show 与 Chrome span span CSS myspan border 0 outline 0 JS myspan focus the

随机推荐

  • Sklearn MLP 特征选择

    带交叉验证的递归特征消除 RFEVC 不适用于多层感知器估计器 以及其他几个分类器 我希望在许多分类器中使用特征选择 执行交叉验证来验证其特征选择 有什么建议么 对于结构化数据 有一个独立于模型选择的特征选择 称为排列重要性 解释得很好he
  • 在 V8 中执行函数的具体执行次数是多少之后变得很热?

    我正在学习 V8 的内部工作原理 发现有 JIT 编译器 它可以通过内联缓存技术动态优化热函数 我只有两个问题 第一 函数只要连续执行几次就算热函数吗 其次 V8 中函数在重复执行多少次之后就会变热 V8 开发者在这里 函数的 热度 不仅仅
  • 静态方法内存消耗

    我有以下具有以下方法的类 public class Foo public string A get set public static Foo New string a Foo newFoo new Foo newFoo A a retur
  • TShellTreeView 在哪里?

    我正在尝试在 Delphi 10 Seattle 中编译一个旧项目并收到以下错误消息 类 TShellTreeView 未找到单击取消忽略 TShellTreeView是一个设计时组件 是ShellCtrls软件包 始终随 Delphi 一
  • Delphi 和 PHP 中的安全密钥对加密解决方案?

    我的应用程序通过互联网发送加密文件 我需要能够执行以下操作 客户端 Delphi 2010 使用加密文件公钥随我的应用程序一起提供并上传到服务器 服务器端 PHP 使用我的解密上传的文件私钥存储在服务器上 处理上传的文件 听起来很简单 但我
  • MATCH 或 VLOOKUP 从范围末尾开始

    我有一张看起来像这样的桌子 A B ID1 data 123 ID2 data 234 ID1 data 456 ID2 data 567 我正在尝试找到最好的检索方法data 567对于 ID2 在 ID2 上使用 MATCH 使用选项
  • 如何显示尽可能多的项目适合一行,如果全部不适合显示剩余项目的数量

    我刚刚开始学习Svelte 我想在一行中显示尽可能多的电子邮件 并使用如下数字显示剩余的电子邮件 https i stack imgur com 9k7np jpg 我想在不修改父组件中的代码的情况下实现这一点 我只是想改变DisplayE
  • Java 获取屏幕上的像素颜色?

    您好 我正在尝试获取 JFrame 上特定像素的颜色 这是我的代码 我的镜框是红色的 我遇到的问题是 当我单击框架时 它应该返回红色的 RGB 颜色 即 255 0 0 但是当我单击不同的点时 有时会得到白色的 RGB 颜色 255 255
  • 获取某个国家/地区的默认时区(通过 CultureInfo)

    是否有程序或表格提供每个国家 地区的默认时区 是的 美国 加拿大和俄罗斯有多个时区 我认为其他每个国家 地区都只有一个 但是 最好从最有可能知道的国家 地区开始 而不是仅提供从 GMT 开始的列表 最好使用 C 但我会将其放入任何内容中并转
  • java中的html截断器

    是否有任何实用程序 或示例源代码 可以在 Java 中截断 HTML 用于预览 我想在服务器上而不是在客户端上进行截断 我正在使用 HTMLUnit 来解析 HTML UPDATE 我希望能够预览 HTML 因此截断器将保持 HTML 结构
  • Pytorch 张量 - 如何通过特定张量获取索引

    我有一个张量 t torch tensor 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 和一个查询张量 q torch tensor 1 0 0 0 有没有办法获取索引q like indexes t index q g
  • 从 Cordova Capture 获取音频数据的 base64

    我正在使用 ngCordova Capture 通过录制音频并将 Base64 发送到某处 通过 REST 来编写此代码 我可以让捕获音频工作 但是一旦它返回audioURI 我就无法从文件系统获取base64 的数据 我的代码如下 cor
  • 无法解析 org.springframework.transaction.annotation.Transactional 的依赖关系

    我是基于注释的编程的新手 不知道要添加到我的 pom xml 中的 Maven 工件org springframework transaction annotation Transactional 我用谷歌搜索 如搜索结果的前 5 页 但无
  • 安装 Graphviz 2.38 后出现“运行时错误:确保 Graphviz 可执行文件位于系统路径上”

    我下载了Graphviz 2 38MSI 版本并安装在文件夹下C Python34 然后我跑pip install Graphviz 一切顺利 在系统路径中我添加了C Python34 bin 当我尝试运行测试脚本时 filename do
  • 从 sns.kdeplot 中提取数据

    是否可以从a中提取数据sns kdeplot 在策划之前 IE 不使用该功能y get lines 0 get data 后绘图 这可以通过从 matplotlib Axes 对象中提取线条数据来完成 import numpy as np
  • 从 x86 CPU 生成 64 字节读取 PCIe TLP

    将数据写入 PCIe 设备时 可以使用写入组合映射来提示 CPU 应生成针对该设备的 64 字节 TLP 是否可以对读取做类似的事情 以某种方式提示 CPU 读取整个缓存行或更大的缓冲区 而不是一次读取一个字 英特尔有关于从视频 RAM 复
  • Codeigniter GROUP_CONCAT

    I have this gt db gt select GROUP CONCAT prod poster poster2 poster3 poster4 poster5 poster6 poster7 我对此有错误并显示 sql 查询 SE
  • 在mysql的列底部显示总和

    除了使用 Union 查询之外 是否还有其他方法 而不是使用以下查询来显示底部列的总和 select amount from receipt UNION select SUM amount from receipt 带汇总应该完全执行您正在
  • 按Json对象中的某些字段排序

    我有一个 Json 文件 其中包含对象数组 例如 tId Something StartTime 05 29 2013 5 28 33 PM CompleteTime 05 29 2013 5 28 33 PM Status success
  • 在地图上显示多个标记及其自己的信息窗口

    我需要在地图上显示多个标记 每个标记都有自己的 信息窗口 我已经毫无问题地创建了单独的标记 但不知道如何为每个创建信息窗口 我正在基于 ASP 的网站中使用 V3 API 生成地图 从一组数据库记录创建标记 标记是 通过循环 rs 并使用以