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

使用angularjs google maps在标记点击上自定义infowindow

濮君植
2023-03-14

我正在使用angularjs谷歌地图,我想自定义风格的信息,这是显示在一个标记点击。ui-gmap-window标记确实有自定义选项,它单独工作也很好。然而,当我试图在标记标记(ui-gmap-markers)中使用它时,它不会在标记点击上显示自定义样式的infoWindow。plunkr清楚地解释了这个问题。

     <ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options" bounds="map.bounds">
<!-- WORKS FINE STANDLONE WINDOW -->
           <ui-gmap-window show="show1" coords="map.center" options="windowOptions"></ui-gmap-window>

            <ui-gmap-markers models="randomMarkers" coords="'self'" icon="'icon'" click="onClick">
<!-- DOES NOT WORK INSIDE MARKERS TAG-->
                <ui-gmap-windows show="show" options="windowOptions">

                </ui-gmap-windows>
            </ui-gmap-markers>
        </ui-gmap-google-map>

共有1个答案

曹超
2023-03-14

你应该用和你在分数上一样的方法。因为windows需要models数组中属性的名称。

所以首先在代码中添加这个

        var createRandomWindows = function (i, bounds, idKey) {
        if (idKey == null) {
            idKey = "id";
        }
        var ret = {
            title: 'm' + i,
            options: {
                    boxClass: "infobox",
                    boxStyle: {
                        backgroundColor: "blue",
                        border: "1px solid red",
                        borderRadius: "5px",
                        width: "100px",
                        height: "100px"
                    },
                    content: "Window options box work standalone ------------BUT DOES NOT work on marker click"
                }
        };
        ret[idKey] = i;
        return ret;
    }
$scope.createWindows = [];

并添加这些

var windows = [];
windows.push(createRandomWindows(i, $scope.map.bounds))
$scope.randomWindows = windows;

在这样的旧代码中

 $scope.$watch(function() { return $scope.map.bounds; }, function(nv, ov) {
        // Only need to regenerate once
        if (!ov.southwest && nv.southwest) {
            var markers = [];
            var windows = [];
            for (var i = 0; i < 50; i++) {
                markers.push(createRandomMarker(i, $scope.map.bounds))
                windows.push(createRandomWindows(i, $scope.map.bounds))
            }
            $scope.randomMarkers = markers;
               $scope.randomWindows = windows;


        }
    }, true);

在html中,在 标记中添加以下models=“randomwindows”options=“'options'”

   <ui-gmap-windows models="randomWindows" coords="'self'" options="'options'" icon="'icon'">
        </ui-gmap-windows>

现在它应该起作用了:)

http://plnkr.co/edit/l0vjrvw9lkphykapdip4?p=preview

 类似资料:
  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 上面的代码在所有桌面浏览器上都能正常工作,但在所有移动浏览器上都失败了。但是,如果我移除自定义图形(即'icon'属性),它可以正常工作。 有什么想法吗?我在拔头发!

  • 定义和使用自定义标记可以吗?(这不会与将来的html标记冲突)-通过更改outerHTML替换/呈现这些标记?? 我在下面创建了一个演示,看起来效果不错 问题的最新情况: 让我进一步解释一下。请假设浏览器上启用了JavaScript-也就是说,应用程序不应该在没有javascript的情况下运行。 我见过使用自定义属性在指定标记中定义自定义行为的库。例如,角度。js大量使用自定义属性。(它还有关于

  • 因此,我想访问子标记result1、result2、result3中父标记属性test1、test2、test3(这些属性的返回值为true/false)的结果,以根据返回的条件值显示输出,不管它是true还是false。 谢谢,开发者。

  • 我正在使用React视图上的Highcharts。出于可访问性和搜索引擎优化的原因,我想定制标记,但我在文档中找不出如何实现。Highcharts会自动插入一个标记,如下所示: <代码> 有没有办法改变这一点,或者这是硬编码的?