Tengo coordenadas x, y en lat / long y necesito crear celdas cuadradas de 5x5 grados alrededor de ellas, siendo las coordenadas lat / long los centroides.
Mi primera opción es crear un búfer alrededor de los centroides con 1 segmento y una distancia de 1/2 (5 °) * sqrt (2) (debe multiplicarse por sqrt (2) bc, la herramienta usa el centroide en la esquina del cuadrado como la distancia del búfer, en oposición al centroide al borde), que da como resultado cuadrados laterales alrededor de mis puntos, luego gira cada entidad 45 grados. Prefiero no hacer esto ya que la distancia no es tan precisa y no sé cómo rotar cada función de búfer individual rápidamente.
Mi segunda opción, que parece mucho más simple, es crear un búfer alrededor de los centroides con la distancia que necesito ((1/2) * 5 °) y luego usar algo como la herramienta Característica para envolver de ArcMap.
Veo que alguien tiene la misma pregunta aquí y se proporcionó una respuesta, pero no tengo idea de cómo hacerlo mediante programación.
QgsMapLayerRegistry
en la última línea conQgsProject
. Para obtener más información, vea estoQGIS 3 ofrece una alternativa rápida y sucia: - Vector -> Herramientas de geoprocesamiento -> Buffer
Seleccione su capa de puntos como capa de entrada, asegúrese de que el estilo de la tapa final esté configurado en cuadrado y la distancia debe ser la mitad de la longitud del cuadrado deseado (por lo que un cuadrado de 1 km por lado debe tener una distancia de 500 m).
fuente
Para transformar puntos en cuadrados, puede probar el
native:buffer
algoritmo de procesamiento con elEND_CAP_STYLE
parámetro establecido en2
(cuadrado).¡Advertencia! Los resultados pueden variar y dependen del sistema de coordenadas de la capa de entrada. Por ejemplo, si usa WGS 84 y establece la distancia a
5000
esto, se obtendrá una línea cuadrada de 5000 grados (no metros).Probado con pyQGIS 3.6.1:
Ejemplo de uso:
fuente