1

以前の質問の続き: Google マップで KML とタイル オーバーレイのレイヤーを変更するにはどうすればよいですか?

現在、配列を使用してタイル オーバーレイを有効または無効にするボタンに関するコードの一部を書き直しています。そうすることで、ボタンの個々の機能をすべて 1 つの機能に結合しようとしていますが、オーバーレイをレンダリングする方法が 2 つあるため、単純に 1 つの方法だけに集中したいと考えていました。最初は「overlayMapTypes」を使用します:

map.overlayMapTypes.insertAt(0, beloitMapType);

2 つ目は、前の質問で提供されたスクリプトを使用します。

this.getPanes().overlayShadow.appendChild(this.settings.div_);

前者の方法は私の独自のアプローチです。ただし、衛星ビューでポリゴンを使用しているため、色付きのポリゴンの上にアイコン/名前のオーバーレイを配置する方法が必要でした。これを実現するために、特定のオーバーレイをポリゴンよりも高いペインに配置して、ポリゴンの上に表示できる、後者の方法に似たものを探しました。

しかし、前回の質問から現在までの間、および私自身の調査を通じて、後者の方法は、タイルをその場所に配置するのではなく、タイルと場所の位置を推定することに気付きました画像オーバーレイとして。その結果、アクセシビリティ レイヤーの一部で、アクセスできないパスの色が 1 ~ 2 ピクセルずれていました。または、現在、建物名オーバーレイの 2 つのタイルの境界に名前があり、2 つのタイルが重なり合っているため、それらの境界線に鋭い線が引かれています。少し。さらに、これらの 2 つの問題は、マップがロードされるたびに、各タイルが任意の方向に 1 ~ 2 ピクセルの分散でマップ上に配置されて発生したり消えたりします。

したがって、すべてのオーバーレイで、より信頼性が高く正確なoverlayMapTypesで前者の方法を使用することを非常に好みますが、これらのオーバーレイのいくつかを「overlayLayer」ペインよりも上に移動する方法も必要ですポリゴン。これは可能ですか?


追加: overlayMapType メソッドを使用してペインの再割り当てを実現する方法を試して見つける必要があります。これを実現するために使用しているスクリプトは、IE7/8 では機能しないようです。この角度を自分で調査するつもりですが、可能であればスクリプトを完全に削除したいと思います。

4

1 に答える 1

0

さて、私は可能な解決策を思いつきました、そしてそれを共有するために、私に説明させてください:

  • クリックイベントとホバーイベントが発生するために、ポリゴンが必ずしも表示されている必要はありません。

  • ポリゴンは衛星ビューで建物やポイに色を付けるために使用されるため、このような視覚的なコンポーネントはオーバーレイによって簡単に実行できます。

したがって、考えられる解決策は、すべてのポリゴンを非表示にし、クリックイベントとホバーイベントにそれらを使用することです。同様に、2番目のオーバーレイ、または既存のオーバーレイの変更は、ポリゴンの元のビジュアルコンポーネントを置き換えます。このビジュアルコンポーネントは他のすべてと同じようにオーバーレイになっているため、「MapType」メソッドを使用して他のオーバーレイと簡単にレイヤー化できます。

(ただし、これは質問に答えません。つまり、タイルオーバーレイとポリゴンはMapTypeメソッドでのみレイヤー化できますか?それでも知りたいのですが、答えがない場合は、これが代替案として考えられます。 )。

于 2012-06-29T15:48:15.583 に答える