Google マップ コントロールに統合されたチェックボックスに少し問題があります。
Google Maps API v3 ドキュメントでは、「カスタム コントロール」( https://developers.google.com/maps/documentation/javascript/examples/control-custom )を使用できると書かれていますが、ドロップダウン メニューについては何もありません。私はネットサーフィンをしていて、ブリアナ・サリバンのこの例を見つけました:
http://vislab-ccom.unh.edu/~briana/examples/gdropdown/index.html
Google マップ コントロールに統合されたチェックボックスを含むドロップダウン メニューが表示されます。
私は自分のウェブでそれを行うことができ、さらに何かを追加してコーディングしました。その例では、チェックボックスをオンにすると、基本的なアラートが表示されます。私の場合、チェックボックスをオンにすると、Google マップのマーカーが非表示になり、同じチェックボックスをもう一度クリックすると、Google マップのマーカーが再び表示されます。
マーカー カテゴリごとに 1 つのチェックボックスを含むドロップダウン メニューを使用します。このようにして、マップ内のすべてのマーカーをカテゴリごとに表示/非表示にすることができます。
私の問題は、Javascript からチェックボックスをチェックする方法も、デフォルトでチェックされているようにそれらのチェックボックスを初期化する方法も知らないことです。
これらのチェックボックスをマウスでクリックせずにチェックするのを手伝ってくれませんか?
上記でリンクしたブリアナの例にすべてがあるため、ここではjsfiddleの例を使用しません。
ありがとう!!
編集:コードを追加しています...
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 が定義されているすべてのマーカーがマップ上で非表示/表示されます。