Quiero mostrar una red celular en un mapa. Los datos de entrada son un archivo .csv donde cada cadena es un sector celular. Los atributos son: identificación del sector, sus coordenadas, su acimut y un ángulo del ancho del haz de la antena.
Los valores de ancho del haz de la antena están en un rango de 30 a 360 grados. El ancho del haz de antena de 360 significa que debe mostrarse en el mapa como un círculo. Las antenas con otros anchos de haz deben mostrarse como sectores con ángulos de apertura apropiados.
¿Es posible mostrar las antenas usando solo símbolos? Sé cómo crear mi propio símbolo SVG y espero encontrar cómo rotarlo de acuerdo con el acimut. Pero, ¿hay alguna forma de aplicar un ancho de haz de antena variable de acuerdo con su valor de atributo de 30 a 360 grados?
Creo que los símbolos son la mejor manera de dibujar las antenas debido a la visualización dinámica en el mapa de acuerdo con la escala de visión, si esto es posible en QGIS.
Por supuesto, la tarea se puede resolver dibujando polígonos apropiados como una característica de capa, pero eso sería una solución alternativa.
fuente
Respuestas:
Hace unos días se agregó un nuevo complemento a QGIS llamado Algoritmo de procesamiento de búfer en cuña . Parece que podría ser de interés.
Como su nombre indica, es un algoritmo de procesamiento, por lo que deberá ejecutarlo desde la caja de herramientas de procesamiento. Sin embargo, aún no tuve la oportunidad de probarlo.
Crea sectores de círculos, como un búfer circular normal, pero el ángulo y el radio de la cuña se pueden establecer utilizando valores de campo.
La documentación y las capturas de pantalla se pueden ver en la página de Github
fuente
Si desea utilizar solo la simbología, le propongo una solución inspirada en mi respuesta de una pregunta similar: ¿ Crear luces de sector en QGIS? .
Siguiendo un enfoque similar, y suponiendo que está trabajando en un CRS proyectado (en cambio, si está utilizando un Sistema de coordenadas geográficas, vea la nota al final de la respuesta), quiero subrayar que enfocaré la atención en la explicación de las cosas mínimas para reproducir el resultado deseado: esto significa que algunos otros parámetros menores (como tamaños, anchos, etc.) deben ser ajustados fácilmente por usted para adaptarse mejor a sus necesidades.
Además, supongo que ese
"AZIMUTH"
es el campo que almacena los valores de acimut y"BEAMWIDTH"
es el campo que almacena los anchos del haz de la antena.Solución
Representaremos los puntos con
Single symbol
ay recurriendo a unaSimple Marker
y dosGeometry generator
capas de símbolos:En la explicación adicional, seguiré el mismo orden de los símbolos en la imagen de arriba.
1) Marcador simple
Elegí un símbolo predeterminado de un círculo rojo (esta es la parte más fácil de este tutorial), que tiene un tamaño de 3 mm y un ancho de 0.4 mm.
2) Geometry Generator No. 1
Agregue una nueva capa de símbolo y seleccione
Geometry generator
losLineString / MultiLineString
tipos y:Inserte esta expresión en el
Expression
campo:Acabamos de definir la flecha que apunta hacia el conjunto de acimut (para crear la flecha, recuerde seleccionar el
Arrow
tipo de capa de símbolo en laLine
opción del menú de símbolo principal). Tenga en cuenta que300
representa una distancia en metros y es un valor arbitrario, así que siéntase libre de cambiarlo según sus necesidades.3) Geometry Generator No. 2
Agregue una nueva capa de símbolo y seleccione el
Geometry generator
tipo y losPolygon / MultiPolygon
tipos:Inserte esta expresión en el
Expression
campo:Acabamos de definir el sector. Tenga en cuenta eso
200
y2000
represente distancias en metros y son valores arbitrarios porque estoy tratando de crear un polígono para intersecar con el círculo que tiene un radio de 200 m, así que siéntase libre de cambiarlos según sus necesidades.Resultado final
Si realiza correctamente las tareas anteriores, debería poder obtener resultados como estos (las etiquetas se agregan aparte de esta solución y solo deberían explicar mejor el contexto):
Nota
Si está utilizando un Sistema de coordenadas geográficas , es decir, si está tratando con grados y no con distancias, debería ser suficiente con los valores adecuados cuando utilicé una distancia en las fórmulas anteriores. Las distancias que utilicé son:
por lo que puede reemplazarlo con otros valores arbitrarios expresadas en grados (por ejemplo,
0.0002
,0.002
y así sucesivamente).Prima
He adjuntado el estilo aquí : puede abrir este código con cualquier editor de texto y guardarlo como un archivo de estilo de capa QGIS (es decir, con una
.qml
extensión).El estilo anterior se creó con QGIS 2.18.4 (debe tener el mismo nombre del archivo de forma que está utilizando).
fuente
Grandes felicitaciones a mgri.
En nuestra capa de prueba, todo funcionó sin problemas. En una capa de producción, después de dos o tres horas, logré localizar un problema con $ geometry . Había estado exportando una capa de puntos desde una plataforma, no lo noté, pero era MultiPoint . Esto parecía causar problemas: la flecha no estaba dibujada; y curiosamente solo los puntos calculados formaron el polígono de los círculos.
Otra cosa es que estoy usando un radio variable . (no estoy seguro de si es la palabra correcta en este caso, también podría llamarlo 'longitud del haz' o lo que sea).
Esto es lo que estoy usando ahora, con una capa de tipo de geometría MultiPoints (aunque de hecho todas las características son un solo punto), y me funciona en QGis 2.18.3
Expresión de flecha Sin flecha si 360 °.
Expresión poligonal
fuente
Me regalaron una solución parcial en la web sin complementos adicionales, solo qgis fuera de la caja. No muestra el ancho del haz de la antena, solo gire el marcador simple en la dirección correcta: use un marcador simple y gírelo con acimut de antena + 180 grados (Propiedades de capa> Simbol simple-> Marcador-> Marcador simple-> triángulo-> rotación-> editar -> escriba <180 + "antena azimut"> en el campo de expresión. Y también establezca Top en el campo Punto de anclaje del marcador). El uso de <180 + "antena azimut"> es necesario debido a la dirección inapropiada del marcador de triángulo simple incrustado. De lo contrario, mostrará una dirección de antena incorrecta.
fuente