1 votos

TIleMill característica de diseño múltiple de la carretera de la etiqueta

¿Tiene TileMill la posibilidad de diseñar características/etiquetas en mi caso basadas en más de un comando? Tengo el siguiente código CSS de la caricatura

#mainroad_label[type='primary'][zoom>13], {
  text-name:'[name]';
  text-face-name:@sans;
  text-placement:line;
  text-fill:@road_text;
  text-halo-fill:@road_halo;
  text-halo-radius:1;
  text-min-distance:60;
  text-size:9.5;

¡Pero necesito un tipo de carretera "primaria" en el nivel de zoom de 12! Así que he escrito este código:

 #mainroad_label[type='primary'][zoom>13], {
          text-name:'[name]';
          text-face-name:@sans;
          text-placement:line;
          text-fill:@road_text;
          text-halo-fill:@road_halo;
          text-halo-radius:1;
          text-min-distance:60;
          text-size:9.5;
    [name='Leave Road'] [zoom>=12] {
      text-name: '[name]';
      text-face-name:@sans;
      text-placement:line;
      text-fill:@road_text;
      text-halo-fill:@road_halo;
      text-halo-radius:1;
      text-size:10; } 
}

No me mostró esta carretera en Z12 porque "Leave Road" es una carretera "primaria" y obviamente todas las carreteras "primarias" se muestran desde zoom>13 . Cuando lo he cambiado a zoom>=12 me mostró todas las carreteras "primarias" pero necesito mostrar sólo la carretera primaria "Leave Road" en este nivel de zoom. ¿Hay alguna manera de hacerlo? Simplemente escribiría algo como [type='primary'], [name='Leave Road'] {.....} El resultado será sólo esta carretera "primaria" con el nombre "Leave Road" que se muestra en mi nivel de zoom. Gracias

1voto

ane Puntos 116

Creo que está buscando este tipo de idea. Todos los estilos comunes se ponen en una sección del estilo. Esto se extenderá a otras partes del estilo. En zoom=12 se cambia el tamaño del texto y se añade el nombre a la condición. Todo pinta a partir del zoom 13. Al menos eso es lo que creo que estás tratando de hacer. La idea es del proyecto de ejemplo de MapBox "Geography Class". Mira el estilo labels.mss #nombre-del-país para ideas adicionales.

#mainroad_label {
     text-name:'[name]';
     text-face-name:@sans;
     text-placement:line;
     text-fill:@road_text;
     text-halo-fill:@road_halo;
     text-halo-radius:1;
     text-min-distance:60;

     [type='primary'][zoom=12][name='Leave Road'] {
         text-size:10;
     } 
     [type='primary'][zoom>=13] {
         text-size:9.5;
     }
}

He aquí una revisión basada en su comentario. La idea es que text-name: debe colocarse en cada condicional. Yo le haría pensar y organizar su código en orden de zoom primero. Esto le ayudará a aclarar sus objetivos.

#mainroad_label {
   text-face-name:@sans;
   text-placement:line;
   text-fill:@road_text;
   text-halo-fill:@road_halo;
   text-halo-radius:1;

   /*
    * Show only one important road's label at zoom 12.
    */
   [zoom=12][type='primary'][name='Orchard Road'] {
       text-size:9.5;
       text-name: '[name]';
   }
   /*
    * Show all road labels at zoom 13 and below
    * [][] means "logical and" while , means "logical or".
    * The or condition via the comma, cleans up displaying
    * all road labels starting at zoom 13.  I exclude
    * 'Orchard Road' in this group so that I can style it
    * elsewhere. 
    */
   [zoom>=13][type='primary'][name!='Orchard Road'],
   [zoom>=13][type='secondary'],
   [zoom>=13][type='tertiary'] {
       text-size:9.5;
       text-name: '[name]';
   }
   /*
    * Continue to make Orchard Road special at zoom 13 and below.
    * This condition sets us up for zoom 14 styling.
    */
   [zoom=13][type='primary'][name='Orchard Road'] {
       text-size:9.5;
       text-name: '[name]';
   }
   /*
    * Make Orchard Road stand out at zoom 14 with a larger
    * character size.
    */
   [zoom>=14][type='primary'][name='Orchard Road'] {
       text-size:13;
       text-name: '[name]';
   }
}

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X