2013-03-27 103 views
0

我將要開發一個谷歌地圖應用程序,其中標記將從表中填入以下結構(簡化):改變谷歌地圖的一個子集的顏色標記

marker_id (INT) 
label (TEXT) 
latitude (FLOAT) 
longitude (FLOAT) 
creation_date (DATE/TIME) 

的信息可能存儲在Fusion表(首選)或MySQL中。 所有標記將以紅色顯示在地圖上。 在地圖旁邊會有日期選擇器組件,並且我希望所有標記的creation_date在所選日期的顏色改變爲某種其他顏色(例如黃色)。 有沒有什麼辦法可以做到這一點,而不必在客戶端創建所有的標記,並保存對它們的引用? 可能有很多標記(超過10K,可能高達100K),所以我不確定這在客戶端會如何工作(這就是爲什麼我更喜歡融合表層)。

回答

1

這可以通過GMaps API通過FT層完成。基礎知識請參見API Docs

styles: [{ 
    where: "creation_date = '4/1/2013' ", 
    markerOptions: { 
     iconName: "small_yellow" 
    } 
    }, 
    { // default style 
    markerOptions: { 
    iconName: "small_red" 
    } ] 

有這麼多標記FT是要走的路。

0

編輯:沒有看到你想避免在客戶端引用。據我所知它不可能在不創建標記以顯示谷歌地圖上的標記......也許,如果你遇到的可擴展性的問題,你可以想出辦法在一次顯示更少的標記


設置或更改圖標根據需要手動:

var redIcon = { 
    url:'/icons/redIcon.png', 
}; 

var yellowIcon = { 
    url:'/icons/yellowIcon.png', 
}; 

// Populate some data structure to associate pins with data 
var dataPlusMarkers = [ 
{ data: 99, pin: new google.maps.Marker(...) }, 
{ data: 200, pin: new google.maps.Marker(...) } 
]; 

function setColors(){ 
    dataPlusMarkers.forEach(function(one){ 
    if(one.data > 100){ 
     one.pin.setIcon(yellowIcon); 
    } else { 
     one.pin.setIcon(redIcon); 
    } 
    }); 
};