0

スタイル付きの地図を使用しています - 今はボタンを適用して通りのラベルを表示/非表示にしたいです

など...しかし、「map.setOptions({styles: MyStylesArrayShowLabel});」でスタイルを設定すると すでに配置されているすべてのマーカーを殺します....

...マーカーを破壊せずにその場でスタイルを設定する方法はありますか?

(すべてのマーカー [ホーム マーカー/infowindo を除く] は、SQL および php を介してデータベースから生成されます)

4

1 に答える 1

1

はい、あります。 を使用してMapTypeIds、スタイル付きマップを ID に関連付ける必要があります。map.setMapTypeId([MapTypeId])次に、ではなく を使用してその場でマップ スタイルを変更しますmap.setOptions([options])Styled Maps docを参照用にざっと読むことをお勧めします。ただし、基本的に注意する必要があるのは、次の 3 点です。

  1. 新しい StyledMapType オブジェクトを作成する
  2. スタイル付きマップを MapTypeId に関連付ける
  3. MapType をディスプレイに設定します

注意すべき 3 つの重要なコンポーネントへのコメントとともに、jsfiddleの例を含めました。

新しい StyledMapType の作成は非常に簡単なので、まず StyledMapType と MapTypeID の関連付けについて説明します。

map.mapTypes.set('hide_street_names', hideLabels); 

基本的に、これは、この場合は -またはなどと同じようhideLabelsに、mapTypeID を使用して styledmap を参照できることを意味します。hide_street_namesgoogle.maps.MapTypeId.ROADMAPgoogle.maps.MapTypeId.TERRAIN

次に、マップの MapTypeId を設定して、クリック アクションで MapTypeId を切り替えて (または現在制御している方法で)、スタイルをトリガーします。

map.setMapTypeId('hide_street_names');

- を使用して mapTypeID を ROADMAP に戻すと、デフォルトのビューに戻ります。map.setMapTypeId(google.maps.MapTypeId.ROADMAP);

于 2012-10-23T21:06:20.263 に答える