2

2 種類の位置情報があります。1 つは正確な位置、もう 1 つはおおよその地域レベルの位置情報です。これらの情報を地図上に表示する際、場所の種類ごとに異なるマーカー タイプを使用できるようにしたいと考えています。正確な場所は緑、おおよその場所は青になります。MarkerClusterer を使用してマーカーを 1 つのバブルにグループ化していますが、2 つの MarkerClusterer が必要です。1 つは近似位置用、もう 1 つは正確な位置用です。そうすることで、私の MarkerCluster はジオロケーションの種類ごとに 1 つになります。

私の問題は次のとおりです。2 つのクラスターが重なって混乱することがあります。

低倍率の画像

ご覧のとおり、そこに 7 つのマーカーがあることを示しています (ここでは青色ですが、実際には緑色のマーカーです。これらのジオロケーションは正確な種類です)。

拡大画像

しかし、ズームインすると、2 番目のクラスターが最初のクラスターの下にあるため、9 になります (今のところ、ブースのクラスターは同じ色で、緑 (7) と青 (2) であるはずだったことに注意してください。つまり、ユーザーは(2)の場所が近似していることを確認してください)

クラスターのクラスターを作成する方法についてのアイデアはありますか? または、2 種類の情報があることをユーザーに知らせる別のアプローチはありますか?

4

2 に答える 2

5

マーカーのクラスが 2 つ (または少数) しかない場合、1 つの方法は、2 つ目の MarkerClusterer インスタンスを作成することです。したがって、スタイル (表示されていません) が異なる 2 つのオプション セットを使用できます。

var mcOptions1 = {gridSize: 40, styles: clusterStyles1, maxZoom: 19};       
var mcOptions2 = {gridSize: 40, styles: clusterStyles2, maxZoom: 19 };

次に、マーカーの2つの個別の配列、たとえばmarker1とmarkers2を作成できます。これは、私の場合、マーカーのステータス属性に依存 します:

// push to the array, markers[]
    switch(status)
    {
    case 'Include':
        markers1.push(marker);
      break;
    case 'Exclude':
        markers2.push(marker);
      break;
    default:
        markers1.push(marker);
    };

最後に、それぞれ別の配列とオプションを持つ 2 つの MarkerClusterer インスタンスを作成します。

var markerClust1 = new MarkerClusterer(map, markers1, mcOptions1);
var markerClust2 = new MarkerClusterer(map, markers2, mcOptions2);

マップ上の結果には、2 つのスタイルのマーカー アイコンと 2 つのスタイルのクラスターが表示されます。ズームアウトすると、2 つの別々のマーカーが一緒にクラスター化されることはありません。これはまさに必要なものであり、マップ上で見栄えが良いと思います。(マップの写真を投稿したいのですが、評判が上がるまで画像を投稿できません!!)

以前のMasterClustererではなく、後の MasterClusterPlus を使用しましたが、このアプローチが以前のバージョンで機能しない理由はわかりません。

于 2013-06-05T11:03:23.633 に答える