From 938818599ec2d96623d499857c1adb1b996eb966 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud <denis.rouzaud@gmail.com> Date: Tue, 30 Jan 2024 15:00:16 +0100 Subject: [PATCH] enable azimut editing through lines fix #108 --- datamodel/app/create_app.py | 2 + datamodel/app/vw_azimut_edit.sql | 30 +++ project/signalo.qgs | 408 ++++++++++++++++++++++++++++++- 3 files changed, 432 insertions(+), 8 deletions(-) create mode 100644 datamodel/app/vw_azimut_edit.sql diff --git a/datamodel/app/create_app.py b/datamodel/app/create_app.py index 34fbaffc..0a93bbf0 100755 --- a/datamodel/app/create_app.py +++ b/datamodel/app/create_app.py @@ -34,6 +34,8 @@ def create_views(srid: int, pg_service: str): run_sql("datamodel/app/create_schema.sql", pg_service, variables) run_sql("datamodel/app/vw_edited_support.sql", pg_service, variables) + run_sql("datamodel/app/vw_azimut_edit.sql", pg_service, variables) + vw_sign_symbol(pg_service=pg_service, srid=srid) diff --git a/datamodel/app/vw_azimut_edit.sql b/datamodel/app/vw_azimut_edit.sql new file mode 100644 index 00000000..3841a575 --- /dev/null +++ b/datamodel/app/vw_azimut_edit.sql @@ -0,0 +1,30 @@ + + +CREATE OR REPLACE VIEW signalo_app.vw_azimut_edit +AS +SELECT + az.id, + ST_MakeLine(su.geometry, ST_SetSRID(St_MakePoint(ST_X(su.geometry) + 10 * sin(radians(az.azimut)), ST_Y(su.geometry) + 10 *cos(radians(az.azimut))), 2056))::geometry(LineString, 2056) as geometry +FROM signalo_db.azimut az +INNER JOIN signalo_db.support su ON az.fk_support = su.id; + + +CREATE FUNCTION signalo_app.ft_azimut_edit() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + IF ST_Equals(ST_StartPoint(NEW.geometry), ST_StartPoint(OLD.geometry)) THEN + RAISE WARNING 'start point should remain unchanged'; + END IF; + + UPDATE signalo_db.azimut SET azimut = degrees(ST_Azimuth(ST_StartPoint(NEW.geometry), ST_EndPoint(NEW.geometry))) WHERE id = NEW.id; + + RETURN NEW; + END; + $$; + + +CREATE TRIGGER azimut_update + INSTEAD OF UPDATE ON signalo_app.vw_azimut_edit + FOR EACH ROW + EXECUTE FUNCTION signalo_app.ft_azimut_edit(); diff --git a/project/signalo.qgs b/project/signalo.qgs index 0b0da369..408e147f 100644 --- a/project/signalo.qgs +++ b/project/signalo.qgs @@ -1,5 +1,5 @@ <!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'> -<qgis saveUserFull="Rouzaud Denis" saveUser="rouzauddenis" saveDateTime="2024-01-30T10:50:18" version="3.28.11-Firenze" projectname="Signalo - Demo"> +<qgis saveUserFull="Rouzaud Denis" saveUser="rouzauddenis" saveDateTime="2024-01-30T14:56:34" version="3.28.11-Firenze" projectname="Signalo - Demo"> <homePath path=""/> <title>Signalo - Demo</title> <transaction mode="AutomaticGroups"/> @@ -21,6 +21,11 @@ <customproperties> <Option/> </customproperties> + <layer-tree-layer name="vw_azimut_edit" id="vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359" legend_split_behavior="0" legend_exp="" source="service='pg_signalo' sslmode=disable key='id' srid=2056 type=LineString checkPrimaryKeyUnicity='1' table="signalo_app"."vw_azimut_edit" (geometry)" providerKey="postgres" checked="Qt::Checked" expanded="1" patch_size="-1,-1"> + <customproperties> + <Option/> + </customproperties> + </layer-tree-layer> <layer-tree-layer name="Support" id="support_347aa750_1661_498f_a7e8_017adc616ba0" legend_split_behavior="0" legend_exp="" source="service='pg_signalo' sslmode=disable key='id' srid=2056 type=Point checkPrimaryKeyUnicity='1' table="signalo_db"."support" (geometry)" providerKey="postgres" checked="Qt::Checked" expanded="1" patch_size="-1,-1"> <customproperties> <Option/> @@ -163,11 +168,13 @@ <item>Landeskarten__farbig__a4d140cf_7103_4db6_a9bc_52ef09d7ea6b</item> <item>vw_edited_support_9e44c97f_e06b_4184_b445_881318a02e8b</item> <item>SWISSIMAGE_Fond_de_plan_7d61cf38_35d1_4208_a775_1d854d304e6f</item> + <item>vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359</item> </custom-order> </layer-tree-group> <snapping-settings minScale="0" scaleDependencyMode="0" maxScale="0" unit="1" self-snapping="0" intersection-snapping="0" mode="2" type="1" enabled="1" tolerance="12"> <individual-layer-settings> <layer-setting minScale="0" id="support_347aa750_1661_498f_a7e8_017adc616ba0" maxScale="0" units="1" type="1" enabled="0" tolerance="12"/> + <layer-setting minScale="0" id="vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359" maxScale="0" units="1" type="1" enabled="0" tolerance="12"/> <layer-setting minScale="0" id="vw_edited_support_9e44c97f_e06b_4184_b445_881318a02e8b" maxScale="0" units="1" type="1" enabled="0" tolerance="12"/> <layer-setting minScale="0" id="vw_sign_symbol_a4db15ac_b65f_46c3_b5d8_bcf3dbf10405" maxScale="0" units="1" type="1" enabled="0" tolerance="12"/> </individual-layer-settings> @@ -193,10 +200,10 @@ <mapcanvas annotationsVisible="1" name="theMapCanvas"> <units>meters</units> <extent> - <xmin>2537484.14173737168312073</xmin> - <ymin>1152444.50175221986137331</ymin> - <xmax>2537643.73349062167108059</xmax> - <ymax>1152552.67514334036968648</ymax> + <xmin>2537260.64139086147770286</xmin> + <ymin>1152307.63188518956303596</ymin> + <xmax>2537758.07089852774515748</xmax> + <ymax>1152644.79615335632115602</ymax> </extent> <rotation>0</rotation> <destinationsrs> @@ -217,6 +224,11 @@ </mapcanvas> <projectModels/> <legend updateDrawingOrder="true"> + <legendlayer name="vw_azimut_edit" open="true" showFeatureCount="0" drawingOrder="-1" checked="Qt::Checked"> + <filegroup hidden="false" open="true"> + <legendlayerfile visible="1" layerid="vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359" isInOverview="0"/> + </filegroup> + </legendlayer> <legendlayer name="Support" open="true" showFeatureCount="0" drawingOrder="-1" checked="Qt::Checked"> <filegroup hidden="false" open="true"> <legendlayerfile visible="1" layerid="support_347aa750_1661_498f_a7e8_017adc616ba0" isInOverview="0"/> @@ -345,6 +357,31 @@ </legendgroup> </legend> <mapViewDocks/> + <mapcanvas annotationsVisible="1" name="mAreaCanvas"> + <units>degrees</units> + <extent> + <xmin>0</xmin> + <ymin>0</ymin> + <xmax>0</xmax> + <ymax>0</ymax> + </extent> + <rotation>0</rotation> + <destinationsrs> + <spatialrefsys nativeFormat="Wkt"> + <wkt>GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt> + <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4> + <srsid>3452</srsid> + <srid>4326</srid> + <authid>EPSG:4326</authid> + <description>WGS 84</description> + <projectionacronym>longlat</projectionacronym> + <ellipsoidacronym>EPSG:7030</ellipsoidacronym> + <geographicflag>true</geographicflag> + </spatialrefsys> + </destinationsrs> + <rendermaptile>0</rendermaptile> + <expressionContextScope/> + </mapcanvas> <main-annotation-layer autoRefreshTime="0" autoRefreshEnabled="0" legendPlaceholderImage="" refreshOnNotifyEnabled="0" refreshOnNotifyMessage="" type="annotation"> <id>Annotations_12d93f67_97ee_4956_a1a1_ce69a09e6c74</id> <datasource></datasource> @@ -1247,6 +1284,10 @@ <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> + <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> + <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> + <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> + <Option value="COALESCE( "azimut", '<NULL>' )" type="QString"/> </Option> <Option name="embeddedWidgets/count" value="0" type="QString"/> <Option name="variableNames" type="invalid"/> @@ -9350,7 +9391,7 @@ def my_form_open(dialog, layer, feature): <Option type="Map"> <Option name="angle" value="0" type="QString"/> <Option name="cap_style" value="square" type="QString"/> - <Option name="color" value="139,196,33,255" type="QString"/> + <Option name="color" value="255,0,0,255" type="QString"/> <Option name="horizontal_anchor_point" value="1" type="QString"/> <Option name="joinstyle" value="bevel" type="QString"/> <Option name="name" value="circle" type="QString"/> @@ -9363,7 +9404,7 @@ def my_form_open(dialog, layer, feature): <Option name="outline_width_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> <Option name="outline_width_unit" value="MM" type="QString"/> <Option name="scale_method" value="diameter" type="QString"/> - <Option name="size" value="2.6" type="QString"/> + <Option name="size" value="2" type="QString"/> <Option name="size_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> <Option name="size_unit" value="MM" type="QString"/> <Option name="vertical_anchor_point" value="1" type="QString"/> @@ -11529,6 +11570,356 @@ def my_form_open(dialog, layer, feature): <previewExpression>"id" || ' ' || attribute(concat('value_',@qgis_locale))</previewExpression> <mapTip></mapTip> </maplayer> + <maplayer simplifyMaxScale="1" readOnly="0" simplifyDrawingHints="1" simplifyAlgorithm="0" simplifyDrawingTol="1" refreshOnNotifyEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="1" minScale="2500" refreshOnNotifyMessage="" type="vector" legendPlaceholderImage="" autoRefreshEnabled="0" autoRefreshTime="0" simplifyLocal="1" styleCategories="AllStyleCategories" symbologyReferenceScale="-1" wkbType="LineString" geometry="Line" labelsEnabled="0"> + <extent> + <xmin>2537380.54506333312019706</xmin> + <ymin>1152420.06054681539535522</ymin> + <xmax>2538449.47999999998137355</xmax> + <ymax>1152830.11123771546408534</ymax> + </extent> + <wgs84extent> + <xmin>6.62254270433546655</xmin> + <ymin>46.52014266455409341</ymin> + <xmax>6.63652751045478606</xmax> + <ymax>46.52393046604049687</ymax> + </wgs84extent> + <id>vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359</id> + <datasource>service='pg_signalo' sslmode=disable key='id' srid=2056 type=LineString checkPrimaryKeyUnicity='1' table="signalo_app"."vw_azimut_edit" (geometry)</datasource> + <keywordList> + <value></value> + </keywordList> + <layername>vw_azimut_edit</layername> + <srs> + <spatialrefsys nativeFormat="Wkt"> + <wkt>PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]]</wkt> + <proj4>+proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs</proj4> + <srsid>47</srsid> + <srid>2056</srid> + <authid>EPSG:2056</authid> + <description>CH1903+ / LV95</description> + <projectionacronym>somerc</projectionacronym> + <ellipsoidacronym>EPSG:7004</ellipsoidacronym> + <geographicflag>false</geographicflag> + </spatialrefsys> + </srs> + <resourceMetadata> + <identifier></identifier> + <parentidentifier></parentidentifier> + <language></language> + <type>dataset</type> + <title></title> + <abstract></abstract> + <links/> + <fees></fees> + <encoding></encoding> + <crs> + <spatialrefsys nativeFormat="Wkt"> + <wkt>PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]]</wkt> + <proj4>+proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs</proj4> + <srsid>47</srsid> + <srid>2056</srid> + <authid>EPSG:2056</authid> + <description>CH1903+ / LV95</description> + <projectionacronym>somerc</projectionacronym> + <ellipsoidacronym>EPSG:7004</ellipsoidacronym> + <geographicflag>false</geographicflag> + </spatialrefsys> + </crs> + <extent/> + </resourceMetadata> + <provider encoding="">postgres</provider> + <vectorjoins/> + <layerDependencies/> + <dataDependencies/> + <expressionfields/> + <map-layer-style-manager current="défaut"> + <map-layer-style name="défaut"/> + </map-layer-style-manager> + <auxiliaryLayer/> + <metadataUrls/> + <flags> + <Identifiable>1</Identifiable> + <Removable>1</Removable> + <Searchable>1</Searchable> + <Private>0</Private> + </flags> + <temporal startField="" startExpression="" fixedDuration="0" endField="" durationUnit="min" limitMode="0" durationField="" endExpression="" mode="0" accumulate="0" enabled="0"> + <fixedRange> + <start></start> + <end></end> + </fixedRange> + </temporal> + <elevation zoffset="0" clamping="Terrain" extrusionEnabled="0" showMarkerSymbolInSurfacePlots="0" extrusion="0" symbology="Line" binding="Centroid" respectLayerSymbol="1" zscale="1" type="IndividualFeatures"> + <data-defined-properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data-defined-properties> + <profileLineSymbol> + <symbol alpha="1" frame_rate="10" name="" is_animated="0" force_rhr="0" clip_to_extent="1" type="line"> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <layer locked="0" class="SimpleLine" pass="0" enabled="1"> + <Option type="Map"> + <Option name="align_dash_pattern" value="0" type="QString"/> + <Option name="capstyle" value="square" type="QString"/> + <Option name="customdash" value="5;2" type="QString"/> + <Option name="customdash_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="customdash_unit" value="MM" type="QString"/> + <Option name="dash_pattern_offset" value="0" type="QString"/> + <Option name="dash_pattern_offset_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="dash_pattern_offset_unit" value="MM" type="QString"/> + <Option name="draw_inside_polygon" value="0" type="QString"/> + <Option name="joinstyle" value="bevel" type="QString"/> + <Option name="line_color" value="190,207,80,255" type="QString"/> + <Option name="line_style" value="solid" type="QString"/> + <Option name="line_width" value="0.6" type="QString"/> + <Option name="line_width_unit" value="MM" type="QString"/> + <Option name="offset" value="0" type="QString"/> + <Option name="offset_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="offset_unit" value="MM" type="QString"/> + <Option name="ring_filter" value="0" type="QString"/> + <Option name="trim_distance_end" value="0" type="QString"/> + <Option name="trim_distance_end_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="trim_distance_end_unit" value="MM" type="QString"/> + <Option name="trim_distance_start" value="0" type="QString"/> + <Option name="trim_distance_start_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="trim_distance_start_unit" value="MM" type="QString"/> + <Option name="tweak_dash_pattern_on_corners" value="0" type="QString"/> + <Option name="use_custom_dash" value="0" type="QString"/> + <Option name="width_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + </Option> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + </layer> + </symbol> + </profileLineSymbol> + <profileFillSymbol> + <symbol alpha="1" frame_rate="10" name="" is_animated="0" force_rhr="0" clip_to_extent="1" type="fill"> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <layer locked="0" class="SimpleFill" pass="0" enabled="1"> + <Option type="Map"> + <Option name="border_width_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="color" value="190,207,80,255" type="QString"/> + <Option name="joinstyle" value="bevel" type="QString"/> + <Option name="offset" value="0,0" type="QString"/> + <Option name="offset_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="offset_unit" value="MM" type="QString"/> + <Option name="outline_color" value="136,148,57,255" type="QString"/> + <Option name="outline_style" value="solid" type="QString"/> + <Option name="outline_width" value="0.2" type="QString"/> + <Option name="outline_width_unit" value="MM" type="QString"/> + <Option name="style" value="solid" type="QString"/> + </Option> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + </layer> + </symbol> + </profileFillSymbol> + <profileMarkerSymbol> + <symbol alpha="1" frame_rate="10" name="" is_animated="0" force_rhr="0" clip_to_extent="1" type="marker"> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <layer locked="0" class="SimpleMarker" pass="0" enabled="1"> + <Option type="Map"> + <Option name="angle" value="0" type="QString"/> + <Option name="cap_style" value="square" type="QString"/> + <Option name="color" value="190,207,80,255" type="QString"/> + <Option name="horizontal_anchor_point" value="1" type="QString"/> + <Option name="joinstyle" value="bevel" type="QString"/> + <Option name="name" value="diamond" type="QString"/> + <Option name="offset" value="0,0" type="QString"/> + <Option name="offset_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="offset_unit" value="MM" type="QString"/> + <Option name="outline_color" value="136,148,57,255" type="QString"/> + <Option name="outline_style" value="solid" type="QString"/> + <Option name="outline_width" value="0.2" type="QString"/> + <Option name="outline_width_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="outline_width_unit" value="MM" type="QString"/> + <Option name="scale_method" value="diameter" type="QString"/> + <Option name="size" value="3" type="QString"/> + <Option name="size_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="size_unit" value="MM" type="QString"/> + <Option name="vertical_anchor_point" value="1" type="QString"/> + </Option> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + </layer> + </symbol> + </profileMarkerSymbol> + </elevation> + <renderer-v2 symbollevels="0" forceraster="0" type="singleSymbol" enableorderby="0" referencescale="-1"> + <symbols> + <symbol alpha="1" frame_rate="10" name="0" is_animated="0" force_rhr="0" clip_to_extent="1" type="line"> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <layer locked="0" class="ArrowLine" pass="0" enabled="1"> + <Option type="Map"> + <Option name="arrow_start_width" value="1" type="QString"/> + <Option name="arrow_start_width_unit" value="MM" type="QString"/> + <Option name="arrow_start_width_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="arrow_type" value="0" type="QString"/> + <Option name="arrow_width" value="1" type="QString"/> + <Option name="arrow_width_unit" value="MM" type="QString"/> + <Option name="arrow_width_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="head_length" value="2.5" type="QString"/> + <Option name="head_length_unit" value="MM" type="QString"/> + <Option name="head_length_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="head_thickness" value="2.4" type="QString"/> + <Option name="head_thickness_unit" value="MM" type="QString"/> + <Option name="head_thickness_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="head_type" value="0" type="QString"/> + <Option name="is_curved" value="1" type="QString"/> + <Option name="is_repeated" value="1" type="QString"/> + <Option name="offset" value="0" type="QString"/> + <Option name="offset_unit" value="MM" type="QString"/> + <Option name="offset_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="ring_filter" value="0" type="QString"/> + </Option> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <symbol alpha="1" frame_rate="10" name="@0@0" is_animated="0" force_rhr="0" clip_to_extent="1" type="fill"> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + <layer locked="0" class="SimpleFill" pass="0" enabled="1"> + <Option type="Map"> + <Option name="border_width_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="color" value="0,104,192,255" type="QString"/> + <Option name="joinstyle" value="miter" type="QString"/> + <Option name="offset" value="0,0" type="QString"/> + <Option name="offset_map_unit_scale" value="3x:0,0,0,0,0,0" type="QString"/> + <Option name="offset_unit" value="MM" type="QString"/> + <Option name="outline_color" value="255,255,255,140" type="QString"/> + <Option name="outline_style" value="solid" type="QString"/> + <Option name="outline_width" value="0.26" type="QString"/> + <Option name="outline_width_unit" value="MM" type="QString"/> + <Option name="style" value="solid" type="QString"/> + </Option> + <data_defined_properties> + <Option type="Map"> + <Option name="name" value="" type="QString"/> + <Option name="properties"/> + <Option name="type" value="collection" type="QString"/> + </Option> + </data_defined_properties> + </layer> + </symbol> + </layer> + </symbol> + </symbols> + <rotation/> + <sizescale/> + </renderer-v2> + <customproperties> + <Option/> + </customproperties> + <blendMode>0</blendMode> + <featureBlendMode>0</featureBlendMode> + <layerOpacity>1</layerOpacity> + <geometryOptions removeDuplicateNodes="0" geometryPrecision="0"> + <activeChecks type="StringList"> + <Option value="" type="QString"/> + </activeChecks> + <checkConfiguration/> + </geometryOptions> + <legend showLabelLegend="0" type="default-vector"/> + <referencedLayers/> + <fieldConfiguration> + <field name="id" configurationFlags="None"> + <editWidget type=""> + <config> + <Option/> + </config> + </editWidget> + </field> + </fieldConfiguration> + <aliases> + <alias name="" field="id" index="0"/> + </aliases> + <defaults> + <default field="id" expression="" applyOnUpdate="0"/> + </defaults> + <constraints> + <constraint unique_strength="1" notnull_strength="1" exp_strength="0" field="id" constraints="3"/> + </constraints> + <constraintExpressions> + <constraint desc="" field="id" exp=""/> + </constraintExpressions> + <expressionfields/> + <attributeactions> + <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/> + </attributeactions> + <attributetableconfig sortExpression="" actionWidgetStyle="dropDown" sortOrder="0"> + <columns/> + </attributetableconfig> + <conditionalstyles> + <rowstyles/> + <fieldstyles/> + </conditionalstyles> + <storedexpressions/> + <editform tolerant="1"></editform> + <editforminit/> + <editforminitcodesource>0</editforminitcodesource> + <editforminitfilepath></editforminitfilepath> + <editforminitcode><![CDATA[]]></editforminitcode> + <featformsuppress>0</featformsuppress> + <editorlayout>generatedlayout</editorlayout> + <editable/> + <labelOnTop/> + <reuseLastValue/> + <dataDefinedFieldProperties/> + <widgets/> + <previewExpression></previewExpression> + <mapTip></mapTip> + </maplayer> <maplayer simplifyMaxScale="1" readOnly="0" simplifyDrawingHints="1" simplifyAlgorithm="0" simplifyDrawingTol="1" refreshOnNotifyEnabled="0" maxScale="0" hasScaleBasedVisibilityFlag="0" minScale="100000000" refreshOnNotifyMessage="" type="vector" legendPlaceholderImage="" autoRefreshEnabled="0" autoRefreshTime="0" simplifyLocal="1" styleCategories="AllStyleCategories" symbologyReferenceScale="-1" wkbType="Point" geometry="Point" labelsEnabled="0"> <extent> <xmin>2537381.93679434293881059</xmin> @@ -15017,6 +15408,7 @@ END</previewExpression> <layer id="Landeskarten__farbig__a4d140cf_7103_4db6_a9bc_52ef09d7ea6b"/> <layer id="vw_edited_support_9e44c97f_e06b_4184_b445_881318a02e8b"/> <layer id="SWISSIMAGE_Fond_de_plan_7d61cf38_35d1_4208_a775_1d854d304e6f"/> + <layer id="vw_azimut_edit_b7acca0e_e618_4f1d_8de3_08e2eb5bf359"/> </layerorder> <properties> <DefaultStyles/> @@ -15408,7 +15800,7 @@ END</previewExpression> <Bookmarks/> <ProjectViewSettings UseProjectScales="0" rotation="0"> <Scales/> - <DefaultViewExtent ymin="1152405.40327656571753323" ymax="1152591.77361899451352656" xmin="2537484.14173737168312073" xmax="2537643.73349062167108059"> + <DefaultViewExtent ymin="1152307.63188518956303596" ymax="1152644.79615335632115602" xmin="2537250.72028661053627729" xmax="2537767.99200277868658304"> <spatialrefsys nativeFormat="Wkt"> <wkt>PROJCRS["CH1903+ / LV95",BASEGEOGCRS["CH1903+",DATUM["CH1903+",ELLIPSOID["Bessel 1841",6377397.155,299.1528128,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4150]],CONVERSION["Swiss Oblique Mercator 1995",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",46.9524055555556,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",7.43958333333333,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth of initial line",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor on initial line",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",2600000,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",1200000,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],AREA["Liechtenstein; Switzerland."],BBOX[45.82,5.96,47.81,10.49]],ID["EPSG",2056]]</wkt> <proj4>+proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs</proj4>