Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[FEATURE][processing]Transect processing
Adds a C++ version of the "ststion lines" plugin as a
new processing algorithm for creating transect lines.
  • Loading branch information
lbartoletti authored and nyalldawson committed Oct 23, 2017
1 parent 65c6974 commit 977ce42
Show file tree
Hide file tree
Showing 25 changed files with 2,740 additions and 0 deletions.
32 changes: 32 additions & 0 deletions python/plugins/processing/tests/testdata/custom/transect_multi.gml
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ transect_multi.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1007699.25579326</gml:X><gml:Y>1334639.82712218</gml:Y></gml:coord>
<gml:coord><gml:X>-1007695.88013693</gml:X><gml:Y>1334643.37803237</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>

<gml:featureMember>
<ogr:transect_multi fid="transect_multi.0">
<ogr:geometryProperty><gml:MultiLineString srsName="EPSG:2154"><gml:lineStringMember><gml:LineString><gml:coordinates>-1007698.95456279,1334640.65650547 -1007699.25579326,1334640.08866873</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString></ogr:geometryProperty>
<ogr:id>1</ogr:id>
</ogr:transect_multi>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi fid="transect_multi.1">
<ogr:geometryProperty><gml:MultiLineString srsName="EPSG:2154"><gml:lineStringMember><gml:LineString><gml:coordinates>-1007697.88013693,1334641.37803237 -1007697.88013693,1334643.37803237 -1007695.88013693,1334643.37803237 -1007695.88013693,1334641.37803237 -1007696.96824319,1334641.37457822 -1007697.88013693,1334641.37803237</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
</ogr:transect_multi>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi fid="transect_multi.2">
<ogr:geometryProperty><gml:MultiLineString srsName="EPSG:2154"><gml:lineStringMember><gml:LineString><gml:coordinates>-1007698.37633878,1334641.09623271 -1007698.38672604,1334640.52493354 -1007697.94699881,1334640.31718839</gml:coordinates></gml:LineString></gml:lineStringMember><gml:lineStringMember><gml:LineString><gml:coordinates>-1007696.96824319,1334641.37457822 -1007697.2100332,1334640.79082807 -1007697.28602434,1334640.6008502 -1007697.39310278,1334640.32797291 -1007697.47945635,1334640.07927462 -1007697.52090606,1334639.82712218</gml:coordinates></gml:LineString></gml:lineStringMember></gml:MultiLineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
</ogr:transect_multi>
</gml:featureMember>
</ogr:FeatureCollection>
30 changes: 30 additions & 0 deletions python/plugins/processing/tests/testdata/custom/transect_multi.xsd
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://ogr.maptools.org/" xmlns:ogr="http://ogr.maptools.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="1.0">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/2.1.2/feature.xsd"/>
<xs:element name="FeatureCollection" type="ogr:FeatureCollectionType" substitutionGroup="gml:_FeatureCollection"/>
<xs:complexType name="FeatureCollectionType">
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureCollectionType">
<xs:attribute name="lockId" type="xs:string" use="optional"/>
<xs:attribute name="scope" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="transect_multi" type="ogr:transect_multi_Type" substitutionGroup="gml:_Feature"/>
<xs:complexType name="transect_multi_Type">
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="geometryProperty" type="gml:MultiLineStringPropertyType" nillable="true" minOccurs="0" maxOccurs="1"/>
<xs:element name="id" nillable="true" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ transect_single.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1007699.255793256</gml:X><gml:Y>1334639.827122184</gml:Y></gml:coord>
<gml:coord><gml:X>-1007695.880136931</gml:X><gml:Y>1334643.378032367</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>

<gml:featureMember>
<ogr:transect_single fid="1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.95456279,1334640.65650547 -1007699.25579326,1334640.08866873</gml:coordinates></gml:LineString></ogr:geometryProperty>
</ogr:transect_single>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_single fid="2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.37633878,1334641.09623271 -1007698.38672604,1334640.52493354 -1007697.94699881,1334640.31718839</gml:coordinates></gml:LineString></ogr:geometryProperty>
</ogr:transect_single>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_single fid="3">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007696.96824319,1334641.37457822 -1007697.2100332,1334640.79082807 -1007697.28602434,1334640.6008502 -1007697.39310278,1334640.32797291 -1007697.47945635,1334640.07927462 -1007697.52090606,1334639.82712218</gml:coordinates></gml:LineString></ogr:geometryProperty>
</ogr:transect_single>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_single fid="4">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007697.88013693,1334641.37803237 -1007697.88013693,1334643.37803237 -1007695.88013693,1334643.37803237 -1007695.88013693,1334641.37803237 -1007696.96824319,1334641.37457822 -1007697.88013693,1334641.37803237</gml:coordinates></gml:LineString></ogr:geometryProperty>
</ogr:transect_single>
</gml:featureMember>
</ogr:FeatureCollection>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://ogr.maptools.org/" xmlns:ogr="http://ogr.maptools.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="1.0">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/2.1.2/feature.xsd"/>
<xs:element name="FeatureCollection" type="ogr:FeatureCollectionType" substitutionGroup="gml:_FeatureCollection"/>
<xs:complexType name="FeatureCollectionType">
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureCollectionType">
<xs:attribute name="lockId" type="xs:string" use="optional"/>
<xs:attribute name="scope" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="transect_single" type="ogr:transect_single_Type" substitutionGroup="gml:_Feature"/>
<xs:complexType name="transect_single_Type">
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="geometryProperty" type="gml:LineStringPropertyType" nillable="true" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
@@ -0,0 +1,218 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ transect_multi_both_2_30.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1007700.103336036</gml:X><gml:Y>1334639.053668993</gml:Y></gml:coord>
<gml:coord><gml:X>-1007694.914623124</gml:X><gml:Y>1334644.343958196</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>

<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.0">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007699.80210557,1334640.12577838 -1007698.10702001,1334641.18723256</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:TR_FID>0</ogr:TR_FID>
<ogr:TR_ID>0</ogr:TR_ID>
<ogr:TR_SEGMENT>1</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.0">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007700.10333604,1334639.55794164 -1007698.40825048,1334640.61939582</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:TR_FID>0</ogr:TR_FID>
<ogr:TR_ID>1</ogr:TR_ID>
<ogr:TR_SEGMENT>2</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.13712611,1334642.34444665 -1007697.62314775,1334640.41161809</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>2</ogr:TR_ID>
<ogr:TR_SEGMENT>1</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007696.9142111,1334643.63685142 -1007698.84606276,1334643.11921332</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>3</ogr:TR_ID>
<ogr:TR_SEGMENT>2</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007695.62131788,1334642.41210654 -1007696.13895598,1334644.3439582</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>4</ogr:TR_ID>
<ogr:TR_SEGMENT>3</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007696.84565074,1334641.11768051 -1007694.91462312,1334641.63838423</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>5</ogr:TR_ID>
<ogr:TR_SEGMENT>4</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007697.8341152,1334641.87484381 -1007696.10237118,1334640.87431263</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>6</ogr:TR_ID>
<ogr:TR_SEGMENT>5</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.1">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.13712611,1334642.34444665 -1007697.62314775,1334640.41161809</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>2</ogr:id>
<ogr:TR_FID>1</ogr:TR_FID>
<ogr:TR_ID>7</ogr:TR_ID>
<ogr:TR_SEGMENT>6</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.89199947,1334640.23943982 -1007697.86067809,1334641.9530256</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>8</ogr:TR_ID>
<ogr:TR_SEGMENT>1</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.35470119,1334639.52544647 -1007698.41875089,1334641.52442061</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>9</ogr:TR_ID>
<ogr:TR_SEGMENT>2</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007697.37754666,1334639.49516391 -1007698.51645096,1334641.13921287</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>10</ogr:TR_ID>
<ogr:TR_SEGMENT>3</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007697.7615901,1334640.76580842 -1007696.17489628,1334641.98334802</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>11</ogr:TR_ID>
<ogr:TR_SEGMENT>1</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007697.99965735,1334640.17723724 -1007696.42040905,1334641.4044189</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>12</ogr:TR_ID>
<ogr:TR_SEGMENT>2</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.06986252,1334639.97988506 -1007696.50218616,1334641.22181534</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>13</ogr:TR_ID>
<ogr:TR_SEGMENT>3</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.16235422,1334639.68902673 -1007696.62385134,1334640.96691909</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>14</ogr:TR_ID>
<ogr:TR_SEGMENT>4</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.17714137,1334639.36286998 -1007696.78177133,1334640.79567926</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>15</ogr:TR_ID>
<ogr:TR_SEGMENT>5</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
<gml:featureMember>
<ogr:transect_multi_both_2_30 fid="transect_multi.2">
<ogr:geometryProperty><gml:LineString srsName="EPSG:2154"><gml:coordinates>-1007698.15475949,1334639.05366899 -1007696.88705263,1334640.60057537</gml:coordinates></gml:LineString></ogr:geometryProperty>
<ogr:id>3</ogr:id>
<ogr:TR_FID>2</ogr:TR_FID>
<ogr:TR_ID>16</ogr:TR_ID>
<ogr:TR_SEGMENT>6</ogr:TR_SEGMENT>
<ogr:TR_ANGLE>30.00</ogr:TR_ANGLE>
<ogr:TR_LENGTH>2.000000</ogr:TR_LENGTH>
<ogr:TR_ORIENT>2</ogr:TR_ORIENT>
</ogr:transect_multi_both_2_30>
</gml:featureMember>
</ogr:FeatureCollection>

0 comments on commit 977ce42

Please sign in to comment.