マーカー クラスタリング (つまりmakerclusterer ) をフュージョン テーブル レイヤーと連携させる方法はありますか? フュージョン テーブル レイヤーを使用する場合、マーカーを markerclusterer に割り当てる必要があるようですが、Google はマーカー/情報ウィンドウを処理していますか? まだこのフュージョン テーブルのことを理解しようとしています。
基本的に、Fusion Table を介して提供される大量のマーカーをクラスター化する方法を探しています
マーカー クラスタリング (つまりmakerclusterer ) をフュージョン テーブル レイヤーと連携させる方法はありますか? フュージョン テーブル レイヤーを使用する場合、マーカーを markerclusterer に割り当てる必要があるようですが、Google はマーカー/情報ウィンドウを処理していますか? まだこのフュージョン テーブルのことを理解しようとしています。
基本的に、Fusion Table を介して提供される大量のマーカーをクラスター化する方法を探しています
フュージョン テーブル レイヤーは、マップ タイルの上に重ねられる各タイルの追加の png 画像をレンダリングします。これには、そのタイルのデータ ポイントが含まれます。これは、サーバー側のレンダリング部分です。したがって、データ ポイントを含むタイルごとに複数のデータ ポイントです。
MarkerClusterer に必要なデータからの独自のマーカーの生成は、タイルごとに画像をオーバーレイするのではなく、マップ上にデータ ポイントごとに個別のマーカーを作成し、その上にスプライト画像をオーバーレイします。
これに基づいて、MarkerClusterer と FusionTablesLayer を使用することはできません。
これは私自身のコードです。以前のリンクの手法を試していましたが、うまくいきませんでした。これが私がやった方法です。
最初に、通常のチャート API クエリを使用してフュージョン テーブルをクエリしました
function initialize() {
mapMain = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(37.4, -100.1),
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
mc = new MarkerClusterer(mapMain);
var queryText = encodeURIComponent("select wikipedia_article, xy from "+tableid);
var query = new google.visualization.Query("https://www.google.com/fusiontables/gvizdata?tq="+queryText);
query.send(handleQueryResponse);
}
次に、handleQueryResponse で動的にマーカーを作成し、Mapclusterer に追加しました。
function handleQueryResponse(response){
dataTable = response.getDataTable();
for(var i=0; i< dataTable.getNumberOfRows();i++){
var hrefval = dataTable.getValue(i,0).toString();
var arr = dataTable.getValue(i,1).toString().split(" ");
var latlng = new google.maps.LatLng(arr[0], arr[1]);
var marker = new google.maps.Marker({
position: latlng,
map:mapMain
});
fn = markerClick(i, marker);
google.maps.event.addListener(marker,'click', fn);
markers.push(marker);
}
mc.addMarkers(markers);
}
この場合、メイン マップ、マーカーの配列 (以下のコードの mc) はグローバル変数です。ここで完全な動作例を見ることができます。
フュージョンテーブルで動作することはないと思います。IMOフュージョンテーブルには、空間インデックスのサポートがありません。siは、2次元の複雑さを1次元の複雑さに減らすのに役立ちます。ヒートマップ、ツリーマップ、郵便番号検索、マップアプリケーションなどの多くのアプリケーションで使用されます。Nickのヒルベルト曲線空間インデックス四分木ブログを探したいと思います。
Fusion Tablesを使用すると、サーバー側のレンダリング(Googleサーバーから)を使用して、一度に数千のポイントを表示できます。Marker Clustererは、(クライアントブラウザーから)最も近いポイントからクラスターのセットを構築することで問題を解決します。私は必ずしも両方を同時に使用するわけではありませんが、それはあなたのユースケースでうまくいくかもしれません。それはあなた次第です。
それらがどのように機能するかについての詳細は、ここで読むことができます。
http://code.google.com/apis/maps/articles/toomanymarkers.html
本当に必要な場合は、Fusion Tables APIを使用して、FusionTablesからMarkerClustererにデータをフィードできます。
お役に立てれば。