Pregunta

Estoy usando JavaScript y V3 de la API MAPS para extraer algunos datos de una tabla de fusión. He agregado con éxito algunos marcadores personalizados a ciertos puntos, pero ahora estoy tratando de obtener los marcadores que creo para 'predeterminado' al icono especificado de una columna en mi cuenta llamada 'icono'. No estoy usando una capa de tablas de fusión, sino creando marcadores en un bucle for a partir de los datos. La columna de icono en mi tabla tiene entradas como: 'Poi', 'estrella', etc ...

¿Hay alguna forma de usar una cadena de nombre para obtener de alguna manera esos iconos 'predeterminados' como lo haría la capa de tabla de fusión? Alternativamente, ¿alguien sabe dónde podría encontrar las ubicaciones absolutas de los iconos de la tabla de fusión predeterminados (como POI y STAR) para poder definir el camino hacia ellos en mi guión?

Aquí hay algún código de ejemplo. Si alguien conoce las URL absolutas para los iconos en Google, podría escribir una función para ingresar que se basa en la cadena de la columna 'icono'.

      //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.
      });
        }
¿Fue útil?

Solución

Estaba buscando hacer casi este mismo proceso exacto. Sin embargo, lo que hice fue simplemente hacer que mi columna en la tabla de fusiones describa el marcador, por lo que, en su caso, sería "Poi", "estrella", etc. La mía fueron "Photo", "Video", "" Video ". " Luego, código de la siguiente manera:

  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
  });
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top