Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何模拟用户单击包含特定标记的google maps群集_Javascript_Jquery_Google Maps_Google Maps Api 3_Angular Google Maps - Fatal编程技术网

Javascript 如何模拟用户单击包含特定标记的google maps群集

Javascript 如何模拟用户单击包含特定标记的google maps群集,javascript,jquery,google-maps,google-maps-api-3,angular-google-maps,Javascript,Jquery,Google Maps,Google Maps Api 3,Angular Google Maps,我得到了一个应用程序,其中用户搜索某个地址周围的房产列表,结果显示为 地图上的标记,有些将被聚集 以列表格式包含搜索结果的div div中的每个列表与标记之间没有1:1的关系。。b/c一些标记包含在一个簇中 我试图实现的用例是用户单击div上的一个列表,然后会自动执行 将地图平移到列表上 显示列表的信息框 这适用于已经存在的标记。但是,对于隐藏在簇后面的标记。。这不管用 我尝试设置一个事件侦听器,以便在地图按如下方式缩放时使用: google.maps.event.addListener(m

我得到了一个应用程序,其中用户搜索某个地址周围的房产列表,结果显示为

  • 地图上的标记,有些将被聚集
  • 以列表格式包含搜索结果的div div中的每个列表与标记之间没有1:1的关系。。b/c一些标记包含在一个簇中

    我试图实现的用例是用户单击div上的一个列表,然后会自动执行

    • 将地图平移到列表上
    • 显示列表的信息框
    这适用于已经存在的标记。但是,对于隐藏在簇后面的标记。。这不管用

    我尝试设置一个事件侦听器,以便在地图按如下方式缩放时使用:

    google.maps.event.addListener(map, 'zoom_changed', function() {
       // assume that the the cluster broke up and the marker got rendered by now
       ..
    });
    

    但这不起作用。这也可能是因为缩放级别不足以分解集群。。但在这种情况下,我如何确定该级别是多少?我基本上要做的是模拟用户点击他们感兴趣的列表所属的集群,这将导致集群解体、地图放大和标记显示

    我也在做类似的事情。我显示一个表格,当在地图上单击一行时,平移到匹配的标记。我建议您在markers指令中使用clusteroptions属性。我的看起来像这样:

     clusteroptions="{ averageCenter: true, minimumClusterSize: 8, gridSize: 30, maxZoom: 14 }
    
    然后,当您单击一行时:

            $scope.zoomToSelectedOrder = function(orderNumber) {
            var matchingMarker = $scope.filteredMarkers.filter(function(matchingMarker) {
                return matchingMarker.orderNumber === orderNumber;
            })[0];
    
            $scope.map.center = { latitude: matchingMarker.latitude, longitude: matchingMarker.longitude };
            $scope.map.zoom = 22;
        };
    
    通过将“贴图缩放”设置为22(高于clusteroptions的最大缩放的任何数字),可以确保群集被拆分

    下面是一个示例,显示了一些随机生成的标记的第0个数组元素被缩放到的位置,以及单击按钮时显示的窗口: