模拟从外部地图上单击MarkerCluster + Marker

问题描述

我在使用React Leaflet / Marker Cluster时遇到一个棘手的问题。

我有一个带有标记簇的地图

    <div id="map-container">
            <Map>
                <TileLayer
                    url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
                />

                <MarkerClusterGroup showCoverageOnHover={false}>
                    { itemsArray.map((item) => {
                        return (
                            <Marker
                                onClick={(e) => mapRef.current.leafletElement.setView(e.latlng)}
                                position={latitude[0],longitude[0]]}>
                                <Popup closeButton={true} autopan={true} autopanPadding={[50,50]}>
                                    <Thumbnail
                                        onClick={() => handleClick(item.link)}
                                        src={item.feature_image} />
                                    <div
                                        onClick={() => handleClick(link)} >
                                        <span>{item.title}</span>
                                        <span>&#x2794;</span>
                                    </div>
                                </Popup>
                            </Marker>
                        )
                    })}
                </MarkerClusterGroup>
            </Map>
    </div>

我在地图旁边还有一个元素列表。该列表基于MarkerCluster也基于的itemsArray。

                  <ul>
                    {
                        itemsArray.map((item) => {
                            return (
                                <li>
                                    <img src={item.feature_img} />
                                    <h3>{item.title}</h3>
                                </li>
                            )
                        })
                    }
                  </ul>

我希望在单击该列表的某个元素时,地图上的相应标记(而不是簇,标记,这很棘手)触发其弹出窗口。就是说,我尝试 marker.fire('click');打开相应的弹出窗口,但是没有用。

有人有什么想法吗?

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)