データベースの値に基づいてマーカーがプログラム上に配置されたマップがあります。マーカーをクリックすると、その場所の詳細ページに移動します。Google Maps API:別のマーカーによってマーカーが隠されているかどうかを確認する方法はありますか?
私の問題は、マップが十分にズームアウトされていると、互いに十分近くにあるマーカーが単一のマーカーとして表示され、マーカーの一部が実際に隠れていることです。 マーカーがマーカーのグループの一部であるか、他のマーカーによって隠されているかどうかをプログラムで確認する方法はありますか?
私の意図は、各動的に生成されたマーカーのためにこのような何かを行うことです。
marker.addListener('click', function() {
// if marker is not hiding any other markers
window.location.href = markerURL;
// else if it is hiding markers/is part of a group of markers
map.setZoom(15);
map.setCenter(marker.getPosition());
});
私はMarker API documentationをチェックしていますが、任意の有用な方法を見つけるように見えることはできません。私の場合、getClickable
とgetVisible
はいつもtrue
を返します。マーカーが別のマーカーで覆われているかどうかは関係ありません。助言がありますか?ありがとうございました!
あなたは[MarkerClusterer](https://github.comを使用する場合があります/ googlemaps/js-marker-clusterer)を使用して、複数のマーカーがクラスタ化されていることを明示します。 – geocodezip
@geocodezip提案していただきありがとうございます。私はこれを考えましたが、より簡単な方法があることを望んでいました。私はクラスタリングを制御する必要はありません、私はそれが起こったかどうかを知りたいだけです。よりよい解決策が見つからない場合、私はそのライブラリを使い終わってしまうかもしれません。 – elethan
このようなことをするためにAPIに組み込まれているものは何もありません。あなたが思いつくアルゴリズムは、マーカーclustererのように単純でも直感的でもないと思われます。 – geocodezip