Динамическое оформление маркера на основе сегодняшней даты - PullRequest
2 голосов
/ 13 марта 2012

Я пытаюсь выяснить, можно ли изменить значок в зависимости от того, совпадает ли дата, связанная с маркером, с сегодняшним днем ​​

Например, у меня есть серия событий, для которых я хочу показать местоположение на карте Google (данные загружаются в виде таблицы слияния). Я хочу показать все эти события, но я хочу иметь другой значок для тех событий, которые соответствуют дате загрузки карты.

Кто-нибудь знает примеры, демонстрирующие это? У меня был хороший поиск, но я ничего не могу найти.

Обновление: Я вернулся к этому после работы над другими вещами, но все еще не могу заставить это работать хорошо. Приведенный выше код хорошо работает для создания текущей строки даты, но тогда я не получаю ни одного запроса, который пытается использовать эту строку / var для работы. Я думаю, что я, должно быть, упускаю что-то очень очевидное, так как, когда я вручную вводю дату в запрос, все работает как надо.

Я вставил свой фрагмент кода ниже ... был бы признателен, если бы кто-то мог указать, что может быть не так.

var d = new Date();
var mon = d.getMonth() + 1; 
var day = d.getDate(); 
var year = d.getFullYear();
var date_string = '';
 if(mon < 10){
     date_string += "0" + mon; }else{
     date_string += mon; } 
     date_string += '/'; if(day < 10){
     date_string += "0" + day; }else{
     date_string += day; }
  date_string += '/'; year -= 2000;
 date_string += year;
  alert(date_string); 

layer = new google.maps.FusionTablesLayer({
        query: {
            select: 'Latitude',
            from: '3xxxxxx'
        },
        styles: [{ markerOptions: { iconName: "measle_white" } },
         { where: "'Date' = 'date_string'", 
        markerOptions: { iconName: "wht_pushpin"} }, 
        {where: "'Date' <= '05/07/12'", 
        markerOptions: { iconName: "measle_white" } }]


    });

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Это определенно возможно, но вы не указали, что если вы что-то пробовали до сих пор. Я не знаю ни одного примера, но есть ряд примеров, демонстрирующих использование ползунка времени с таблицами Fusion, которые, вероятно, стоит искать.

Я недавно ответил на вопрос о Fusion Tables datetime filters . Нужно убедиться, что ваш столбец Fusion Table напечатан как datetime, а также чтобы ваши даты использовали принятые форматы datetime.

Вот фрагмент кода, который может выполнить то, что вы хотите.

var where_date = "where Date = '03/13/12'";
var ftOpts = {
  query: {
     select: location_col,
     from: current_table_id
  },
  styles: [ {
      where: where_date,
      markerOptions:{
          iconName: "small_green"
       },
    },
    {
      markerOptions:{
          iconName: "small_red"
       },
    }
 ]
};

curr_layer = new google.maps.FusionTablesLayer(ftOpts);

curr_layer.setMap(map);
0 голосов
/ 14 марта 2012

Ну, вопрос изменился, см. Комментарий.Но учтите, что если вам нужна текущая дата,> = будет работать для запроса Fusion Table, даже если = не работает.

var d = new Date();
var mon = d.getMonth() + 1;
var day = d.getDate();
var year = d.getFullYear();

var date_string = '';
if(mon < 10){
    date_string += "0" + mon;
}else{
    date_string += mon;
}
date_string += '/';
if(day < 10){
    date_string += "0" + day;
}else{
    date_string += day;
}

date_string += '/';
year -= 2000;
date_string += year;

alert(date_string);

}

...