有沒有辦法讓標記聚類(即makerclusterer)與Fusion表層一起工作?看起來您必須在使用融合表圖層時將標記分配給markerclusterer,Google正在處理標記/ infowindows?仍然試圖找出這個融合表的事情。標記羣集 - 融合表層 - 谷歌地圖v3
基本上在尋找一種方式來聚集大量的標記被通過融合表
有沒有辦法讓標記聚類(即makerclusterer)與Fusion表層一起工作?看起來您必須在使用融合表圖層時將標記分配給markerclusterer,Google正在處理標記/ infowindows?仍然試圖找出這個融合表的事情。標記羣集 - 融合表層 - 谷歌地圖v3
基本上在尋找一種方式來聚集大量的標記被通過融合表
Fusion Tables允許您使用服務器端呈現(來自Google服務器)一次查看數千個點。 Marker Clusterer通過從最近的點(從客戶端瀏覽器)構建一組集羣來解決問題。我不一定會同時使用它們,但它可能適用於您的使用情況,這取決於您。
你可以閱讀更多有關他們在這裏是如何工作的:
http://code.google.com/apis/maps/articles/toomanymarkers.html
如果你真的想太多,你可以使用Fusion Tables的API從數據融合表的標記聚類器填充數據。
希望這會有所幫助。
提供的,我不認爲你會得到它的融合工作表中。 IMO的融合表缺乏對空間索引的支持。 si有助於將2D複雜度降低到1d複雜度。它用於許多應用程序,如熱圖,樹圖,郵政編碼搜索,地圖應用程序。你想要找Nick的希爾伯特曲線空間索引四叉樹博客。
Fusion Table Layers爲地圖塊頂部的每個圖塊渲染一個額外的png圖像,其中包含該圖塊的數據點,這是服務器端渲染部分。所以它是每個tile包含數據點的多個數據點。
生成自己的標記從數據中,這是必要的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,代碼如下)是全局變量。你可以看到完整的工作示例here。
跑過這篇文章爲自己研究這個。以爲我會留下評論,是的,根據Google Fusion Tables Team的說法是可以的。 [https://groups.google。com/d/msg/fusion-tables-users-group/eW-der8-diM/UnaqHkpgeDcJ] – danagerous
@danagerous在FusionTablesLayer上執行此操作並使用Fusion Table中的數據(例如您提到的參考文獻)之間有很大區別。使用來自Fusion Table的數據可以做到這一點,但仍然不可能使用服務器端提供的FusionTablesLayer來完成。他們必須在服務器端的每個縮放級別創建一個分組項目層。 – Freddy
@danagerous你的鏈接似乎被打破。你有另一個嗎? – tentaclenorm