Google Maps API - Получить маркер значка из столбца строки в таблице слияния - PullRequest
0 голосов
/ 14 июня 2011

Я использую javascript и v3 API карт для извлечения некоторых данных из Fusion Table.Я успешно добавил некоторые пользовательские маркеры к определенным точкам, но теперь пытаюсь установить созданные по умолчанию маркеры для значка, указанного в столбце в моей таблице под названием «Значок».Я не использую слой таблиц слияния, а создаю маркеры в цикле for из данных.Столбец Icon в моей таблице содержит такие записи, как: 'poi', 'star' и т. Д. *

Есть ли способ использовать строку имени, чтобы каким-то образом получить эти значки по умолчанию, такие как слой fusion tableбыло бы?Кроме того, кто-нибудь знает, где я могу найти абсолютные местоположения значков по умолчанию для таблиц слияния (таких как POI и Star), чтобы я мог определить путь к ним в своем сценарии?

Вот пример кода.Если кто-то знает абсолютные URL-адреса для значков в Google, я мог бы просто написать функцию для ввода, основанную на строке из столбца «Значок».

      //if there's an image, use it as marker, else use default      
  if(row[3] != ''){
      // Create the marker
      var marker = new google.maps.Marker({
        map: map, 
        position: coordinate,
        icon: new google.maps.MarkerImage(row[3])
      });      
  } else {
      // Create the marker
      var marker = new google.maps.Marker({
        map: map, 
        position: coordinate

        //icon: row[2] (row[2] is the Icon column. 
        // I'm assuming I'll just need a conditional to check
        // for the name (such as 'poi') and then to put in the absolute URL for each respectively
        // the problem is I don't know the absolute URL's for these icons. Thanks.
      });
        }

1 Ответ

1 голос
/ 19 июля 2011

Я хотел сделать почти такой же точный процесс.Хотя в моей колонке Fusion Table просто описывался маркер, поэтому в вашем случае это были «Poi», «Star» и т. Д. Мои были «фотография», «видео», «песня»."Затем кодируйте следующим образом:

  var image = new google.maps.MarkerImage('img/CF_Orange.png',
  new google.maps.Size(25, 25),
  new google.maps.Point(0,0),
  new google.maps.Point(12.5,12.5));

  var image2 = new google.maps.MarkerImage('img/CF_Purple.png',
  new google.maps.Size(25, 25),
  new google.maps.Point(0,0),
  new google.maps.Point(12.5,12.5));

  var image3 = new google.maps.MarkerImage('img/CF_Green.png',
  new google.maps.Size(25, 25),
  new google.maps.Point(0,0),
  new google.maps.Point(12.5,12.5));

if(row[5] == 'photo'){
  var marker = new google.maps.Marker({
    map: map, 
    position: coordinate,
    icon: image
  });      
} else if(row[5] == 'video'){
  var marker = new google.maps.Marker({
    map: map, 
    position: coordinate,
    icon: image2
  });
} else {
  var marker = new google.maps.Marker({
    map: map, 
    position: coordinate,
    icon: image3
  });
    }
...