当前位置: 首页 > 知识库问答 >
问题:

谷歌地图自定义下拉框与复选框

呼延骏俊
2023-03-14

我有一个小问题与复选框集成在谷歌地图控件。

在谷歌地图API v3文档中,它说你可以使用“自定义控件”(https://developers.google.com/maps/documentation/javascript/examples/control-custom),但没有关于下拉框的内容。我在网上冲浪,发现了布里亚纳·沙利文的这个例子:

http://vislab-ccom.unh.edu/~briana/examples/gdropdown/index.html

它显示了一个下拉菜单,其中的复选框集成在谷歌地图控件中。

我能够在我的网络上做到这一点,我用更多的东西编码了它。在该示例中,当您选中复选框时,会显示一个基本警报。在我的例子中,当我选中一个复选框时,谷歌地图标记被隐藏,当再次单击同一个复选框时,谷歌地图标记再次可见。

我使用一个下拉菜单,每个标记类别有一个复选框。这样,我可以显示/隐藏地图中每个类别的每个标记。

我的问题是,我不知道如何从Javascript中选中复选框,也不知道如何初始化默认选中的复选框。

你能帮我选中那些复选框而不用鼠标点击它们吗?

这里我不使用JSFIDLE示例,因为我在上面链接的Briana示例中包含了所有内容。

谢谢

编辑:添加代码...

var checkOptions0 = {
    gmap: map,
    title: "aaa",
    id: "1",
    label: "aaa",
    action: function(){
        showhide("1");
    }
}
var check0 = new checkBox(checkOptions0);
var checkOptions1 = {
    gmap: map,
    title: "bbb",
    id: "2",
    label: "bbb",
    action: function(){
        showhide("2");
    }
}
var check1 = new checkBox(checkOptions1);
var ddDivOptions = {
    items: [check0, check1],
    id: "myddOptsDiv"
}
var dropDownDiv = new dropDownOptionsDiv(ddDivOptions);               
var dropDownOptions = {
    gmap: map,
    name: 'Boxes',
    id: 'ddControl',
    title: 'Boxes',
    position: google.maps.ControlPosition.TOP_RIGHT,
    dropDown: dropDownDiv
}
var dropDown1 = new dropDownControl(dropDownOptions);

function showhide(category) {
    for (var i=0; i<gmarkers.length; i++) {
        if (gmarkers[i].id == category) {
            estado = gmarkers[i].getVisible();
            gmarkers[i].setVisible(!estado);
        }
    }
}

“gmarkers”是一个数组,包含地图上打印的每个标记。“gmarkers[i].id”是每个标记的类别,当单击复选框时,在其上定义的id等于复选框的每个标记将在地图上隐藏/显示。

共有1个答案

阎晔
2023-03-14

终于找到了解决办法。我想前几天我没那么聪明:D

Briana使用的脚本是:http://vislab-ccom.unh.edu/~briana/examples/gdropdown/gdropdown.js

修改它并在之后添加新行

bDiv.id = options.id;

这种方式:

bDiv.id = options.id;
bDiv.style.display = options.display == "" ? "none" : options.display;

现在,您可以定义是否要使用新选项“display”初始化复选框;使用两个值:“无”或“块”。

然后,使用新选项“显示”设置我自己问题中显示的复选框选项:

var checkOptions0 = {
    gmap: map,
    title: "aaa",
    id: "1",
    label: "aaa",
    action: function(){
        showhide("1");
    },
    display: 'block'
}

谢谢@geocodezip!!:)

 类似资料:
  • 我正在为Android制作基于谷歌地图服务的公共交通地图。地图应该包含很多标记(超过300个),它们应该在地图放大和缩小(缩放)时调整大小。现在标记只是互相重叠,有没有办法创建像这样的自定义标记? 我自己也试过,但没有成功。使用android-map-utils库(https://github.com/googlemaps/android-maps-utils)标记现在看起来更好了,但它们不能调整

  • 情况是我使用Fragments在main活动中显示2个视图,这意味着我有两个选项卡,而在第二个选项卡中,我使用以下代码显示谷歌地图 这是第二个选项卡,我想自定义地图,为此我在上面的函数中使用了这段代码。 imap=SupportMapFragment)getSupportFragmentManager()。findFragmentById(R.id.map))。getMap(); imap是在创建

  • 本文向大家介绍jQuery自定义多选下拉框效果,包括了jQuery自定义多选下拉框效果的使用技巧和注意事项,需要的朋友参考一下 项目中需要自定义一个下拉框多选插件,业务问题还是自己实现比较好 通过$.fn 向jQuery添加新的方法 下拉数据通过参数传递进去,通过调用该插件时接收,选择后的确定与取消事件采用事件传递方式 代码如下:   1.效果图 2.代码 3.Jquery插件 4.页面调用示例

  • 我正在尝试自定义信息窗口,并在加载地图时显示它。自定义信息窗口出现了,但是,除了默认的信息窗口背景(白色)之外,我还没有为出现的标记设置图标?为什么我会得到这个默认值? 以下是我尝试的内容的屏幕截图: 我不想要白色窗口和标记图标?我正在尝试实现以下截图:如何使用Android map API v2创建自定义形状的位图标记 以下是我正在尝试的:

  • 我试图实现一个地图使用谷歌地图与离子。我遵循了这个链接中的编码,但我得到的只是一个空白屏幕,不知道我哪里出错了。请帮忙 这是控制器 这是html文件 请帮忙。

  • 我在我的flutter应用程序中使用google_maps_flutter来使用谷歌地图我有自定义标记图标,我用BitmapDescriptor.from字节(mark erIcon)加载它,但我想用一些文本显示Url的图标。 这就是我们要达到的目的 是否可以通过flutter或任何可以动态创建图像的外部图像依赖来实现相同的效果。