3 votos

¿Generalizar la ubicación exacta de ciertos puntos de datos utilizando Carto CSS?

Estoy tratando con algunos datos sensibles para los que proporcionar una alta resolución de precisión de la ubicación sería perjudicial. Sin embargo, la ubicación general no es sensible y es útil compartirla.

Me gustaría utilizar Carto CSS para generalizar la visualización de puntos a partir de un determinado nivel de zoom. El objetivo sería estilizar los puntos como un marcador no escalable de un ancho fijo.. o un icono de signo de interrogación o algo similar. Sé que los naturalistas hacen esto con ciertos datos sensibles de la biodiversidad.

¿Algún consejo o ejemplo?

1voto

Azul Mascara Puntos 395

Solución 1. Introduzca lo siguiente en la pestaña "CSS" del editor de CartoDB

#your_data_layer{
  marker-line-width: 0;
  marker-line-opacity: 0;
  marker-fill-opacity: 1;
  marker-fill: #FF6600;
  marker-type: ellipse;
  marker-width: 8;
  marker-allow-overlap: true;
  [zoom > 10] {
      [zoom = 11] { marker-width: 16;}
      [zoom = 12] { marker-width: 32;}
      [zoom = 13] { marker-width: 64;}
      [zoom = 14] { marker-width: 128;}
      [zoom = 15] { marker-width: 256;}
      [zoom = 16] { marker-width: 512;}
      [zoom = 17] { marker-width: 1024;}
      [zoom >= 18] { marker-width: 2048;}
  }
}

Esto hace que el marcador de los datos tenga el mismo tamaño (en unidades de mapa) cuando el usuario se acerca más allá del nivel 10. Cada nivel de zoom es una duplicación de la escala del mapa (es decir, la misma distancia sobre el terreno ocupa el doble de distancia en la pantalla que el nivel de zoom inferior anterior), por lo que hay que duplicar el tamaño de los marcadores (que se especifican en píxeles) con cada nivel de zoom superior para que el marcador siga teniendo el mismo tamaño en unidades cartográficas.

Solución 2, introduzca esto en la pestaña "CSS" del editor CartoDB:

#your_data_layer{
  marker-line-width: 0;
  marker-line-opacity: 0;
  marker-fill-opacity: 1;
  marker-fill: #FF6600;
  marker-type: ellipse;
  marker-width: 8;
  marker-allow-overlap: true;
  [zoom > 10] {
    marker-fill-opacity: 0;
  }
}

Esto simplemente no renderiza los datos (porque hemos puesto la opacidad a cero) cuando el usuario se acerca demasiado (> nivel de zoom 10 en este ejemplo).

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