GoogleマップのKMLオーバーレイをクラスター化する方法


8

Googleマップ(v3 API)に読み込むkmzファイルに数千のマーカーが保存されています。

オーバーレイデータをクラスタ化する方法を探すために周りを見回しましたが、役に立ちませんでした。
MarkerClustererは見栄えは良いですが、マーカー配列でしか機能しないようです。

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(25,-20);
    var myOptions = {
        zoom: 2,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var ctaLayer = new google.maps.KmlLayer('thedata.kmz');
    ctaLayer.setMap(map);

    //cluster
    var mcOptions = {gridSize: 50, maxZoom: 15};
    var mc = new MarkerClusterer(map, ctaLayer, mcOptions);
}

markerclustererと同じように、オーバーレイのマーカーをクラスター化するにはどうすればよいですか?

回答:


5

KMLファイルは実際にはGoogleサーバーによって読み取られ、画像タイルとしてマップに提供されます。したがって、実際のポイントオブジェクトにはアクセスできません。クラスタリングを行う場合は、KMLを別の方法で読み込み、ポイントを配列に解析する必要があります。その後、必要なクライアント側のクラスタリングを使用できます。

GoogleマップV3のAPIドキュメント

KmlLayer内のコンポーネントはオンデマンドでレンダリングされるため、レイヤーを使用すると、何千ものマーカー、ポリライン、ポリゴンのレンダリングを簡単に管理できます。これらの構成オブジェクトには直接アクセスできないことに注意してください。ただし、それぞれの構成オブジェクトは、それらの個々のオブジェクトに関するデータを返すクリックイベントを提供します。


1
kml / kmzファイルに約3500のマーカーがあります。それらをjavascript配列にロードするのは非常にメモリを消費しませんか?また、マーカーの読み込みにはかなり時間がかかると思います。
レジー

1
クラスタリング手法にはさまざまなソリューションがあります。通常、サーバー側のオプションが最適です。ただし、クライアント側のみに移動する場合は、必ずしも3500ポイントすべてを常にロードする必要はありません。たとえば、特定のスケールや範囲でロードするだけです。
アンソニー-GISCOE- 2011年

1
では、優れたサーバーサイドソリューションとは何でしょうか。simpleXMLを使用してkmlをロードし、それをgoogle maps javascriptの(非常に大きな)配列として出力しますか?
レジー

1
サーバーを使用してクラスタリングを行います(たとえば、「google maps server side clustering」の場合はgoogleだけ)。次に、クライアントは、すべてのデータではなく、クラスターの場所のポイントのみを取得するように要求します。
アンソニー-GISCOE- 2011年

2

これは可能です。各マーカーのすべてのデータにアクセスできるJavaScript KMLパーサーライブラリを使用できます。

Maps V2で一番良かったのはこちらです。

econym.org.uk/gmap/egeoxml.htm

V3では、次のいずれかを使用できます2。

code.google.com/p/geoxml3/

code.google.com/p/geoxml/

一度使用すると、各KMLマーカーをループ処理し、JavaScriptを使用して同じ場所にポイントをグループ化し、JSを使用して各マーカーの異なる情報ウィンドウを同じ場所に表示できます。

私のYour Mapperサイトでこれを行います。黒い番号のマーカーをクリックして、実際の動作を確認してください。

http://www.yourmapper.com/map/111/crime-reports/crime-in-metro-louisville-ky-since-jan-2003.htm

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.