diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomMvcRegistrations.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomMvcRegistrations.java index 2f147277..2ef30cf1 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomMvcRegistrations.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomMvcRegistrations.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.configuration; +package au.org.aodn.ogcapi.server.core.configuration; import io.swagger.v3.oas.annotations.Hidden; import org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomWebMvcConfigurer.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomWebMvcConfigurer.java index 952372d7..29ac5f1c 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomWebMvcConfigurer.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CustomWebMvcConfigurer.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.configuration; +package au.org.aodn.ogcapi.server.core.configuration; import au.org.aodn.ogcapi.tile.model.TileMatrixSets; import org.springframework.format.FormatterRegistry; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ElasticSearchConfig.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ElasticSearchConfig.java index b7619a82..5a1f2550 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ElasticSearchConfig.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ElasticSearchConfig.java @@ -34,6 +34,7 @@ public RestClientTransport restClientTransport() { // Create the low-level client RestClient restClient = RestClient .builder(HttpHost.create(serverUrl)) + .setCompressionEnabled(true) .setDefaultHeaders(new Header[]{ new BasicHeader("Authorization", "ApiKey " + apiKey) }) diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/BinaryResponseToBytes.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/BinaryResponseToBytes.java index a3da0789..5c20eb40 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/BinaryResponseToBytes.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/BinaryResponseToBytes.java @@ -16,7 +16,7 @@ public abstract class BinaryResponseToBytes implements Converter { Logger logger = LoggerFactory.getLogger(Converter.class); + GeometryVisitor visitor = GeometryVisitor.builder() + .build(); + + @Builder + @Getter + @Setter + class Param { + CQLCrsType coordinationSystem; + String filter; + } - T convert(F from); + T convert(F from, Param param); default au.org.aodn.ogcapi.features.model.Link getSelfCollectionLink(String hostname, String id) { au.org.aodn.ogcapi.features.model.Link self = new au.org.aodn.ogcapi.features.model.Link(); @@ -52,7 +80,7 @@ default au.org.aodn.ogcapi.tile.model.Link getTileSchema(String hostname) { * @param m - Income object to be transformed * @return A mapped JSON which match the St */ - default Collection getCollection(D m, String host) { + default Collection getCollection(D m, Filter filter, String host) { ExtendedCollection collection = new ExtendedCollection(); collection.setId(m.getUuid()); @@ -113,8 +141,15 @@ default Collection getCollection(D m, String hos } if(m.getSummaries() != null ) { - if (m.getSummaries().getCentroid() != null) { - collection.getProperties().put(CollectionProperty.centroid, m.getSummaries().getCentroid()); + if (m.getSummaries().getGeometryNoLand() != null) { + GeometryUtils.readGeometry(m.getSummaries().getGeometryNoLand()) + .ifPresent(input -> { + Geometry g = filter != null ? (Geometry)filter.accept(visitor, input) : input; + collection.getProperties().put( + CollectionProperty.centroid, + createCentroid(g) + ); + }); } if (m.getSummaries().getStatus() != null) { diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollection.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollection.java index c3e220a6..8c3f2b5c 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollection.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollection.java @@ -6,6 +6,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.Map; + @Service @Mapper(componentModel = "spring") public abstract class StacToCollection implements Converter { @@ -14,7 +16,7 @@ public abstract class StacToCollection implements Converter collections = model.getCollections().stream() - .map(m -> getCollection(m, hostname)) + public Collections convert(ElasticSearch.SearchResult model, Param param) { + CQLToStacFilterFactory factory = CQLToStacFilterFactory.builder() + .cqlCrsType(param.getCoordinationSystem()) + .build(); + + Filter f = null; + try { + f = param.getFilter() != null ? CompilerUtil.parseFilter(Language.CQL, param.getFilter(), factory) : null; + } + catch(Exception ex) { + // Do nothing + } + final Filter filter = f; + + List collections = model.getCollections().parallelStream() + .map(m -> getCollection(m, filter, hostname)) .collect(Collectors.toList()); ExtendedCollections result = new ExtendedCollections(); result.setTotal(model.getTotal()); + if(model.getSortValues() != null) { result.setSearchAfter(model.getSortValues().stream().map(String::valueOf).toList()); } diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToInlineResponse2002.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToInlineResponse2002.java index 422e0941..2d0232bb 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToInlineResponse2002.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToInlineResponse2002.java @@ -21,7 +21,7 @@ public abstract class StacToInlineResponse2002 implements Converter items = model.getCollections().stream() .map(m -> { TileSetItem item = new TileSetItem(); diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToTileSetWmWGS84Q.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToTileSetWmWGS84Q.java index e8164db8..50f6b453 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToTileSetWmWGS84Q.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/StacToTileSetWmWGS84Q.java @@ -28,7 +28,7 @@ protected class TileSetWorldMercatorWGS84Quad extends TileSet { } @Override - public TileSet convert(ElasticSearch.SearchResult from) { + public TileSet convert(ElasticSearch.SearchResult from, Param noUse) { TileSetWorldMercatorWGS84Quad tileSet = new TileSetWorldMercatorWGS84Quad(); tileSet.setTileMatrixSetURI("http://www.opengis.net/def/tilematrixset/OGC/1.0/WorldMercatorWGS84Quad"); diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ConceptModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ConceptModel.java index 93620e43..89912760 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ConceptModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ConceptModel.java @@ -1,16 +1,15 @@ package au.org.aodn.ogcapi.server.core.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class ConceptModel { protected String id; protected String url; - - public ConceptModel(String id, String url) { - this.id = id; - this.url = url; - } } diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ContactModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ContactModel.java index 09267d7d..ce1c3718 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ContactModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ContactModel.java @@ -1,12 +1,16 @@ package au.org.aodn.ogcapi.server.core.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class ContactModel { // Not include all fields according to this: https://github.com/stac-extensions/contacts diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/LinkModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/LinkModel.java index 322c7b9a..8b25da12 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/LinkModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/LinkModel.java @@ -1,10 +1,14 @@ package au.org.aodn.ogcapi.server.core.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class LinkModel { protected String rel; protected String href; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/StacCollectionModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/StacCollectionModel.java index 0306bf81..0711994e 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/StacCollectionModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/StacCollectionModel.java @@ -1,9 +1,7 @@ package au.org.aodn.ogcapi.server.core.model; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Builder; -import lombok.Data; -import lombok.Getter; +import lombok.*; import java.util.List; @@ -12,6 +10,8 @@ */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class StacCollectionModel { protected String description; @@ -22,6 +22,7 @@ public class StacCollectionModel { protected List contacts; protected List themes; protected String license; + @JsonProperty("sci:citation") protected String citation; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java index 2258f4cf..d88f9021 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java @@ -2,8 +2,11 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; +import org.locationtech.jts.geom.GeometryCollection; import java.math.BigDecimal; import java.util.List; @@ -11,6 +14,8 @@ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class SummariesModel { // Do not create constructor, it will create by lombook, you can use builder() to create object. @@ -19,11 +24,13 @@ public class SummariesModel { protected List credits; protected String creation; protected String revision; - protected List> centroid; @JsonProperty("proj:geometry") protected Map geometry; + @JsonProperty("proj:geometry_noland") + protected Map geometryNoLand; + @JsonProperty("temporal") protected List> temporal; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ThemeModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ThemeModel.java index 2a00e895..6825d2e6 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ThemeModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/ThemeModel.java @@ -1,12 +1,16 @@ package au.org.aodn.ogcapi.server.core.model; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class ThemeModel { protected String scheme; protected String description; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CQLFields.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CQLFields.java index 535024be..48991459 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CQLFields.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CQLFields.java @@ -50,8 +50,8 @@ public enum CQLFields implements CQLFieldsInterface { null ), centroid( - StacSummeries.Centroid.searchField, - StacSummeries.Centroid.displayField, + StacSummeries.GeometryNoLand.searchField, + StacSummeries.GeometryNoLand.displayField, null, null ), diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/StacSummeries.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/StacSummeries.java index a5f14877..654500b5 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/StacSummeries.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/StacSummeries.java @@ -3,9 +3,9 @@ import java.util.List; public enum StacSummeries { - Centroid("summaries.centroid","summaries.centroid"), Score("summaries.score", "summaries.score", "summaries.score", null), Geometry("summaries.proj:geometry","extent.bbox"), + GeometryNoLand("summaries.proj:geometry_noland","summaries.proj:geometry_noland"), TemporalStart("summaries.temporal.start", ""), TemporalEnd("summaries.temporal.end", ""), Temporal("summaries.temporal", "extent.temporal", "summaries.temporal", List.of(TemporalStart, TemporalEnd)), diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/ElasticSetting.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/ElasticSetting.java deleted file mode 100644 index dec7fb2a..00000000 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/ElasticSetting.java +++ /dev/null @@ -1,4 +0,0 @@ -package au.org.aodn.ogcapi.server.core.parser; - -public interface ElasticSetting { -} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AfterImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AfterImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AfterImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AfterImpl.java index 1b7b4ef6..7ae9a39c 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AfterImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AfterImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFields; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AndImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AndImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AndImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AndImpl.java index 13c48154..2a1e32b6 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/AndImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/AndImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery; import co.elastic.clients.elasticsearch._types.query_dsl.Query; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/BeforeImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/BeforeImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/BeforeImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/BeforeImpl.java index 4df8d927..7cfef21a 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/BeforeImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/BeforeImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFields; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/CQLToElasticFilterFactory.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/CQLToElasticFilterFactory.java similarity index 99% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/CQLToElasticFilterFactory.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/CQLToElasticFilterFactory.java index e0882dac..d3e1cad7 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/CQLToElasticFilterFactory.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/CQLToElasticFilterFactory.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLElasticSetting; @@ -96,13 +96,13 @@ public static Map getDefaultSetting() { */ @Override public Intersects intersects(Expression geometry1, Expression geometry2) { - logger.debug("INTERSECTS {}, {}", geometry1, geometry2); + logger.debug("INTERSECTS expression {}, {}", geometry1, geometry2); return new IntersectsImpl<>(geometry1, geometry2, collectionFieldType, cqlCoorSystem); } @Override public Intersects intersects(String s, org.opengis.geometry.Geometry geometry) { - logger.debug("INTERSECTS {}, {}", s, geometry); + logger.debug("INTERSECTS with geometry {}, {}", s, geometry); return null; } @@ -112,6 +112,11 @@ public Intersects intersects(String s, org.opengis.geometry.Geometry geometry, M return null; } + @Override + public Intersects intersects(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + @Override public Parameter parameter(String name, Class type, InternationalString title, InternationalString description, boolean required, int minOccurs, int maxOccurs, T defaultValue) { return new org.geotools.data.Parameter<>(name, type, title, description, required, minOccurs, maxOccurs, defaultValue, null); @@ -696,7 +701,6 @@ public Literal literal(Object obj) { return new LiteralExpressionImpl(obj); } catch (IllegalFilterException var3) { - (new IllegalArgumentException()).initCause(var3); return null; } } @@ -916,11 +920,6 @@ public Equals equal(Expression expression, Expression expression1, MultiValuedFi return null; } - @Override - public Intersects intersects(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { - return null; - } - @Override public Overlaps overlaps(Expression expression, Expression expression1) { return null; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/DuringImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/DuringImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/DuringImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/DuringImpl.java index d4b98e53..778c8af1 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/DuringImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/DuringImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFields; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/ElasticSetting.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/ElasticSetting.java new file mode 100644 index 00000000..da3a6dcd --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/ElasticSetting.java @@ -0,0 +1,4 @@ +package au.org.aodn.ogcapi.server.core.parser.elastic; + +public interface ElasticSetting { +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IntersectsImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IntersectsImpl.java similarity index 89% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IntersectsImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IntersectsImpl.java index 44f49b94..e6a31891 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IntersectsImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IntersectsImpl.java @@ -1,7 +1,8 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; +import au.org.aodn.ogcapi.server.core.util.GeometryUtils; import org.geotools.filter.AttributeExpressionImpl; import org.geotools.filter.LiteralExpressionImpl; import org.locationtech.jts.io.ParseException; @@ -28,7 +29,7 @@ public IntersectsImpl(Expression expression1, Expression expression2, Class e if(expression1 instanceof AttributeExpressionImpl attribute && expression2 instanceof LiteralExpressionImpl literal) { try { - String geojson = convertToGeoJson(literal, cqlCrsType); + String geojson = GeometryUtils.convertToGeoJson(literal, cqlCrsType); // Create elastic query here T v = Enum.valueOf(enumType, attribute.toString().toLowerCase()); this.query = v.getIntersectsQuery(geojson); @@ -42,12 +43,12 @@ public IntersectsImpl(Expression expression1, Expression expression2, Class e @Override public Expression getExpression1() { - return null; + return expression1; } @Override public Expression getExpression2() { - return null; + return expression2; } @Override diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IsNullImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IsNullImpl.java similarity index 94% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IsNullImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IsNullImpl.java index 9c1585f6..f97f6e91 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/IsNullImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/IsNullImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; import org.opengis.filter.FilterVisitor; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/LikeImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/LikeImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/LikeImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/LikeImpl.java index d81e088f..e7d9d2df 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/LikeImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/LikeImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; import lombok.Setter; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/NotImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/NotImpl.java similarity index 92% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/NotImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/NotImpl.java index f81393c0..9ff4168c 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/NotImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/NotImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery; import org.opengis.filter.Filter; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/OrImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/OrImpl.java similarity index 98% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/OrImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/OrImpl.java index 8d5b1c8d..1fed3d2a 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/OrImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/OrImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery; import co.elastic.clients.elasticsearch._types.query_dsl.Query; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyEqualToImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyEqualToImpl.java similarity index 97% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyEqualToImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyEqualToImpl.java index 6bc9f85d..0234e85b 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyEqualToImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyEqualToImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; import org.geotools.filter.AttributeExpressionImpl; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsEqualToElasticSettingImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsEqualToElasticSettingImpl.java similarity index 97% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsEqualToElasticSettingImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsEqualToElasticSettingImpl.java index 1cac6157..579c319d 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsEqualToElasticSettingImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsEqualToElasticSettingImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLElasticSetting; import lombok.Getter; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java similarity index 95% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java index 5eb33d0b..43a670cc 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToElasticSettingImpl.java @@ -1,11 +1,10 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLElasticSetting; import lombok.Getter; import org.geotools.filter.AttributeExpressionImpl; import org.geotools.filter.LiteralExpressionImpl; import org.opengis.filter.FilterVisitor; -import org.opengis.filter.PropertyIsEqualTo; import org.opengis.filter.PropertyIsGreaterThanOrEqualTo; import org.opengis.filter.expression.Expression; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToImpl.java similarity index 97% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToImpl.java index 41f669cf..8552229f 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/PropertyIsGreaterThanOrEqualToImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/PropertyIsGreaterThanOrEqualToImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; import org.geotools.filter.AttributeExpressionImpl; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/QueryHandler.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/QueryHandler.java similarity index 56% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/QueryHandler.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/QueryHandler.java index e9033c6d..8ab8609b 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/QueryHandler.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/QueryHandler.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; import co.elastic.clients.elasticsearch._types.query_dsl.Query; @@ -36,26 +36,4 @@ public abstract class QueryHandler { public void addErrors(CQLException... e) { this.errors.addAll(List.of(e)); } public void addErrors(List e) { this.errors.addAll(e); } - /** - * Convert the WKT format from the cql to GeoJson use by Elastic search - * @param literalExpression - * @return - * @throws ParseException - * @throws IOException - */ - protected String convertToGeoJson(LiteralExpressionImpl literalExpression, CQLCrsType cqlCoorSystem) throws ParseException, IOException, FactoryException, TransformException { - GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); - WKTReader reader = new WKTReader(geometryFactory); - Geometry geo = reader.read(literalExpression.toString()); - - try(StringWriter writer = new StringWriter()) { - GeometryJSON geometryJson = new GeometryJSON(); - Geometry t = CQLCrsType.transformGeometry(geo, cqlCoorSystem, CQLCrsType.EPSG4326); - geometryJson.write(t, writer); - - String r = writer.toString(); - logger.debug("Converted to GeoJson {}", r); - return r; - } - } } diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/TEqualsImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/TEqualsImpl.java similarity index 96% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/parser/TEqualsImpl.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/TEqualsImpl.java index ba4b5652..a2e97e91 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/TEqualsImpl.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/elastic/TEqualsImpl.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.parser; +package au.org.aodn.ogcapi.server.core.parser.elastic; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; import org.opengis.filter.FilterVisitor; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/AndImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/AndImpl.java new file mode 100644 index 00000000..3cdc95bb --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/AndImpl.java @@ -0,0 +1,44 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +import org.opengis.filter.And; +import org.opengis.filter.Filter; +import org.opengis.filter.FilterVisitor; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class AndImpl implements And { + + protected List filters= new ArrayList<>(); + + public AndImpl(Filter filter1, Filter filter2) { + if(filter1 != null) { + filters.add(filter1); + } + + if(filter2 != null) { + filters.add(filter2); + } + } + + public AndImpl(List fs) { + filters.addAll(fs.stream().filter(Objects::nonNull).toList()); + } + + @Override + public List getChildren() { + return filters; + } + + @Override + public boolean evaluate(Object o) { + return true; + } + + @Override + public Object accept(FilterVisitor visitor, Object extraData) { + // Do nothing for now. + return visitor.visit(this, extraData); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/CQLToStacFilterFactory.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/CQLToStacFilterFactory.java new file mode 100644 index 00000000..a3aaade7 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/CQLToStacFilterFactory.java @@ -0,0 +1,835 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.geotools.filter.AttributeExpressionImpl; +import org.geotools.filter.IllegalFilterException; +import org.geotools.filter.LiteralExpressionImpl; +import org.geotools.filter.identity.FeatureIdImpl; +import org.geotools.filter.identity.FeatureIdVersionedImpl; +import org.geotools.filter.identity.GmlObjectIdImpl; +import org.geotools.filter.identity.ResourceIdImpl; +import org.opengis.feature.type.Name; +import org.opengis.filter.*; +import org.opengis.filter.capability.*; +import org.opengis.filter.capability.SpatialOperator; +import org.opengis.filter.expression.*; +import org.opengis.filter.identity.*; +import org.opengis.filter.sort.SortBy; +import org.opengis.filter.sort.SortOrder; +import org.opengis.filter.spatial.*; +import org.opengis.filter.temporal.*; +import org.opengis.geometry.BoundingBox; +import org.opengis.geometry.BoundingBox3D; +import org.opengis.geometry.Geometry; +import org.opengis.parameter.Parameter; +import org.opengis.util.InternationalString; +import org.xml.sax.helpers.NamespaceSupport; + +import java.util.Date; +import java.util.List; +import java.util.Set; + +@Setter +@Getter +@Builder +@Slf4j +public class CQLToStacFilterFactory implements FilterFactory2 { + + protected CQLCrsType cqlCrsType; + + @Override + public Parameter parameter(String name, Class type, InternationalString title, InternationalString description, boolean required, int minOccurs, int maxOccurs, T defaultValue) { + return new org.geotools.data.Parameter<>(name, type, title, description, required, minOccurs, maxOccurs, defaultValue, null); + } + + @Override + public FunctionName functionName(String s, int i, List list) { + return null; + } + + @Override + public FunctionName functionName(Name name, int i, List list) { + return null; + } + + @Override + public FunctionName functionName(String s, List> list, Parameter parameter) { + return null; + } + + @Override + public FunctionName functionName(Name name, List> list, Parameter parameter) { + return null; + } + + @Override + public Id id(FeatureId... featureIds) { + return null; + } + + @Override + public PropertyName property(String s) { + return new AttributeExpressionImpl(s); + } + + @Override + public PropertyName property(Name name) { + return new AttributeExpressionImpl(name); + } + + @Override + public PropertyName property(String name, NamespaceSupport namespaceSupport) { + return (namespaceSupport == null ? this.property(name) : new AttributeExpressionImpl(name, namespaceSupport)); + } + + @Override + public FeatureId featureId(String id) { + return new FeatureIdImpl(id); + } + + @Override + public FeatureId featureId(String fid, String featureVersion) { + return new FeatureIdVersionedImpl(fid, featureVersion); + } + + @Override + public GmlObjectId gmlObjectId(String id) { + return new GmlObjectIdImpl(id); + } + + @Override + public ResourceId resourceId(String fid, String featureVersion, Version version) { + return new ResourceIdImpl(fid, featureVersion, version); + } + + @Override + public ResourceId resourceId(String fid, Date startTime, Date endTime) { + return new ResourceIdImpl(fid, startTime, endTime); + } + + @Override + public And and(Filter filter1, Filter filter2) { + return new AndImpl(filter1, filter2); + } + + @Override + public And and(List list) { + return new AndImpl(list); + } + + @Override + public Or or(Filter filter, Filter filter1) { + return null; + } + + @Override + public Or or(List list) { + return null; + } + + @Override + public Not not(Filter filter) { + return null; + } + + @Override + public Id id(Set set) { + return null; + } + + @Override + public PropertyIsBetween between(Expression expression, Expression expression1, Expression expression2) { + return null; + } + + @Override + public PropertyIsBetween between(Expression expression, Expression expression1, Expression expression2, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsEqualTo equals(Expression expression, Expression expression1) { + return null; + } + + @Override + public PropertyIsEqualTo equal(Expression expression, Expression expression1, boolean b) { + return null; + } + + @Override + public PropertyIsEqualTo equal(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsNotEqualTo notEqual(Expression expression, Expression expression1) { + return null; + } + + @Override + public PropertyIsNotEqualTo notEqual(Expression expression, Expression expression1, boolean b) { + return null; + } + + @Override + public PropertyIsNotEqualTo notEqual(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsGreaterThan greater(Expression expression, Expression expression1) { + return null; + } + + @Override + public PropertyIsGreaterThan greater(Expression expression, Expression expression1, boolean b) { + return null; + } + + @Override + public PropertyIsGreaterThan greater(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsGreaterThanOrEqualTo greaterOrEqual(Expression expression, Expression expression1) { + return greaterOrEqual(expression, expression1, true); + } + + @Override + public PropertyIsGreaterThanOrEqualTo greaterOrEqual(Expression expression, Expression expression1, boolean b) { + return greaterOrEqual(expression, expression1, b, null); + } + + @Override + public PropertyIsGreaterThanOrEqualTo greaterOrEqual(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + log.debug("PropertyIsGreaterThanOrEqualTo {} {}, {} {}", expression, expression1, b, matchAction); + return null; + } + + @Override + public PropertyIsLessThan less(Expression expression, Expression expression1) { + return null; + } + + @Override + public PropertyIsLessThan less(Expression expression, Expression expression1, boolean b) { + return null; + } + + @Override + public PropertyIsLessThan less(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsLessThanOrEqualTo lessOrEqual(Expression expression, Expression expression1) { + return null; + } + + @Override + public PropertyIsLessThanOrEqualTo lessOrEqual(Expression expression, Expression expression1, boolean b) { + return null; + } + + @Override + public PropertyIsLessThanOrEqualTo lessOrEqual(Expression expression, Expression expression1, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsLike like(Expression expression, String s) { + return null; + } + + @Override + public PropertyIsLike like(Expression expression, String s, String s1, String s2, String s3) { + return null; + } + + @Override + public PropertyIsLike like(Expression expression, String s, String s1, String s2, String s3, boolean b) { + return null; + } + + @Override + public PropertyIsLike like(Expression expression, String s, String s1, String s2, String s3, boolean b, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public PropertyIsNull isNull(Expression expression) { + return null; + } + + @Override + public PropertyIsNil isNil(Expression expression, Object o) { + return null; + } + + @Override + public BBOX bbox(String s, double v, double v1, double v2, double v3, String s1) { + return null; + } + + @Override + public BBOX bbox(Expression expression, Expression expression1) { + return null; + } + + @Override + public BBOX bbox(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public BBOX3D bbox(String s, BoundingBox3D boundingBox3D) { + return null; + } + + @Override + public BBOX3D bbox(String s, BoundingBox3D boundingBox3D, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public BBOX bbox(String s, double v, double v1, double v2, double v3, String s1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Beyond beyond(String s, Geometry geometry, double v, String s1) { + return null; + } + + @Override + public Beyond beyond(String s, Geometry geometry, double v, String s1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Contains contains(String s, Geometry geometry) { + return null; + } + + @Override + public Contains contains(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Crosses crosses(String s, Geometry geometry) { + return null; + } + + @Override + public Crosses crosses(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Disjoint disjoint(String s, Geometry geometry) { + return null; + } + + @Override + public Disjoint disjoint(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public DWithin dwithin(String s, Geometry geometry, double v, String s1) { + return null; + } + + @Override + public DWithin dwithin(String s, Geometry geometry, double v, String s1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Equals equals(String s, Geometry geometry) { + return null; + } + + @Override + public Equals equals(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Intersects intersects(String s, Geometry geometry) { + return this.intersects(s, geometry, null); + } + + @Override + public Intersects intersects(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + log.debug("INTERSECTS {}, {} {}", s, geometry, matchAction); + return null; + } + + @Override + public Overlaps overlaps(String s, Geometry geometry) { + return null; + } + + @Override + public Overlaps overlaps(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Touches touches(String s, Geometry geometry) { + return null; + } + + @Override + public Touches touches(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Within within(String s, Geometry geometry) { + return null; + } + + @Override + public Within within(String s, Geometry geometry, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public After after(Expression expression, Expression expression1) { + return null; + } + + @Override + public After after(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public AnyInteracts anyInteracts(Expression expression, Expression expression1) { + return null; + } + + @Override + public AnyInteracts anyInteracts(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Before before(Expression expression, Expression expression1) { + return null; + } + + @Override + public Before before(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Begins begins(Expression expression, Expression expression1) { + return null; + } + + @Override + public Begins begins(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public BegunBy begunBy(Expression expression, Expression expression1) { + return null; + } + + @Override + public BegunBy begunBy(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public During during(Expression expression, Expression expression1) { + return null; + } + + @Override + public During during(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public EndedBy endedBy(Expression expression, Expression expression1) { + return null; + } + + @Override + public EndedBy endedBy(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Ends ends(Expression expression, Expression expression1) { + return null; + } + + @Override + public Ends ends(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Meets meets(Expression expression, Expression expression1) { + return null; + } + + @Override + public Meets meets(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public MetBy metBy(Expression expression, Expression expression1) { + return null; + } + + @Override + public MetBy metBy(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public OverlappedBy overlappedBy(Expression expression, Expression expression1) { + return null; + } + + @Override + public OverlappedBy overlappedBy(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public TOverlaps toverlaps(Expression expression, Expression expression1) { + return null; + } + + @Override + public TOverlaps toverlaps(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public TContains tcontains(Expression expression, Expression expression1) { + return null; + } + + @Override + public TContains tcontains(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public TEquals tequals(Expression expression, Expression expression1) { + return null; + } + + @Override + public TEquals tequals(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Add add(Expression expression, Expression expression1) { + return null; + } + + @Override + public Divide divide(Expression expression, Expression expression1) { + return null; + } + + @Override + public Multiply multiply(Expression expression, Expression expression1) { + return null; + } + + @Override + public Subtract subtract(Expression expression, Expression expression1) { + return null; + } + + @Override + public Function function(String s, Expression... expressions) { + return null; + } + + @Override + public Function function(Name name, Expression... expressions) { + return null; + } + + @Override + public Literal literal(Object obj) { + try { + return new LiteralExpressionImpl(obj); + } + catch (IllegalFilterException var3) { + return null; + } + } + + @Override + public Literal literal(byte b) { + return new LiteralExpressionImpl(b); + } + + @Override + public Literal literal(short i) { + return new LiteralExpressionImpl(i); + } + + @Override + public Literal literal(int i) { + return new LiteralExpressionImpl(i); + } + + @Override + public Literal literal(long l) { + return new LiteralExpressionImpl(l); + } + + @Override + public Literal literal(float v) { + return new LiteralExpressionImpl(v); + } + + @Override + public Literal literal(double v) { + return new LiteralExpressionImpl(v); + } + + @Override + public Literal literal(char c) { + return new LiteralExpressionImpl(c); + } + + @Override + public Literal literal(boolean b) { + return new LiteralExpressionImpl(b); + } + + @Override + public SortBy sort(String s, SortOrder sortOrder) { + return null; + } + + @Override + public Operator operator(String s) { + return null; + } + + @Override + public SpatialOperator spatialOperator(String s, GeometryOperand... geometryOperands) { + return null; + } + + @Override + public TemporalOperator temporalOperator(String s) { + return null; + } + + @Override + public FunctionName functionName(String s, int i) { + return null; + } + + @Override + public FunctionName functionName(Name name, int i) { + return null; + } + + @Override + public Functions functions(FunctionName... functionNames) { + return null; + } + + @Override + public SpatialOperators spatialOperators(SpatialOperator... spatialOperators) { + return null; + } + + @Override + public ComparisonOperators comparisonOperators(Operator... operators) { + return null; + } + + @Override + public ArithmeticOperators arithmeticOperators(boolean b, Functions functions) { + return null; + } + + @Override + public ScalarCapabilities scalarCapabilities(ComparisonOperators comparisonOperators, ArithmeticOperators arithmeticOperators, boolean b) { + return null; + } + + @Override + public SpatialCapabilities spatialCapabilities(GeometryOperand[] geometryOperands, SpatialOperators spatialOperators) { + return null; + } + + @Override + public IdCapabilities idCapabilities(boolean b, boolean b1) { + return null; + } + + @Override + public TemporalCapabilities temporalCapabilities(TemporalOperator... temporalOperators) { + return null; + } + + @Override + public FilterCapabilities capabilities(String s, ScalarCapabilities scalarCapabilities, SpatialCapabilities spatialCapabilities, IdCapabilities idCapabilities) { + return null; + } + + @Override + public FilterCapabilities capabilities(String s, ScalarCapabilities scalarCapabilities, SpatialCapabilities spatialCapabilities, IdCapabilities idCapabilities, TemporalCapabilities temporalCapabilities) { + return null; + } + + @Override + public BBOX bbox(Expression expression, double v, double v1, double v2, double v3, String s) { + return null; + } + + @Override + public BBOX bbox(Expression expression, double v, double v1, double v2, double v3, String s, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public BBOX3D bbox(Expression expression, BoundingBox3D boundingBox3D) { + return null; + } + + @Override + public BBOX3D bbox(Expression expression, BoundingBox3D boundingBox3D, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public BBOX bbox(Expression expression, BoundingBox boundingBox) { + return null; + } + + @Override + public BBOX bbox(Expression expression, BoundingBox boundingBox, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Beyond beyond(Expression expression, Expression expression1, double v, String s) { + return null; + } + + @Override + public Beyond beyond(Expression expression, Expression expression1, double v, String s, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Contains contains(Expression expression, Expression expression1) { + return null; + } + + @Override + public Contains contains(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Crosses crosses(Expression expression, Expression expression1) { + return null; + } + + @Override + public Crosses crosses(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Disjoint disjoint(Expression expression, Expression expression1) { + return null; + } + + @Override + public Disjoint disjoint(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public DWithin dwithin(Expression expression, Expression expression1, double v, String s) { + return null; + } + + @Override + public DWithin dwithin(Expression expression, Expression expression1, double v, String s, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Equals equal(Expression expression, Expression expression1) { + return null; + } + + @Override + public Equals equal(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Intersects intersects(Expression expression, Expression expression1) { + return new IntersectsImpl<>(expression, expression1, cqlCrsType); + } + + @Override + public Intersects intersects(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return new IntersectsImpl<>(expression, expression1, cqlCrsType); + } + + @Override + public Overlaps overlaps(Expression expression, Expression expression1) { + return null; + } + + @Override + public Overlaps overlaps(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Touches touches(Expression expression, Expression expression1) { + return null; + } + + @Override + public Touches touches(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } + + @Override + public Within within(Expression expression, Expression expression1) { + return null; + } + + @Override + public Within within(Expression expression, Expression expression1, MultiValuedFilter.MatchAction matchAction) { + return null; + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/GeometryVisitor.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/GeometryVisitor.java new file mode 100644 index 00000000..31f7de6b --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/GeometryVisitor.java @@ -0,0 +1,33 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +import lombok.Builder; +import lombok.extern.slf4j.Slf4j; +import org.geotools.filter.visitor.DefaultFilterVisitor; +import org.locationtech.jts.geom.Geometry; +import org.locationtech.jts.geom.GeometryCollection; +import org.locationtech.jts.geom.Polygon; +import org.opengis.filter.spatial.Intersects; + +@Slf4j +@Builder +public class GeometryVisitor extends DefaultFilterVisitor { + + @Override + public Object visit(Intersects filter, Object data) { + if(filter instanceof IntersectsImpl impl) { + if(impl.getPreparedGeometry().isPresent()) { + if (data instanceof Polygon || data instanceof GeometryCollection) { + // To handle minor precision issues, try applying a small buffer (like 0.0) to clean up + // minor topology errors. This is a trick commonly used with JTS + return impl.getPreparedGeometry().get() + .getGeometry() + .intersection(((Geometry) data).buffer(0.0)); + } + else { + return data; + } + } + } + return null; + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/IntersectsImpl.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/IntersectsImpl.java new file mode 100644 index 00000000..b09e6af0 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/IntersectsImpl.java @@ -0,0 +1,72 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLFieldsInterface; +import au.org.aodn.ogcapi.server.core.util.GeometryUtils; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.geotools.filter.AttributeExpressionImpl; +import org.geotools.filter.LiteralExpressionImpl; +import org.locationtech.jts.geom.Geometry; +import org.locationtech.jts.geom.GeometryCollection; +import org.locationtech.jts.geom.prep.PreparedGeometry; +import org.locationtech.jts.geom.prep.PreparedGeometryFactory; +import org.opengis.filter.FilterVisitor; +import org.opengis.filter.expression.Expression; +import org.opengis.filter.spatial.Intersects; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; + +@Slf4j +public class IntersectsImpl & CQLFieldsInterface> implements Intersects { + + protected Logger logger = LoggerFactory.getLogger(IntersectsImpl.class); + + protected Expression expression1; + protected Expression expression2; + + @Getter + protected Optional preparedGeometry = Optional.empty(); + + public IntersectsImpl(Expression expression1, Expression expression2, CQLCrsType cqlCrsType) { + if(expression1 instanceof AttributeExpressionImpl attribute && expression2 instanceof LiteralExpressionImpl literal) { + this.expression1 = attribute; + this.expression2 = literal; + + try { + String geojson = GeometryUtils.convertToGeoJson(literal, cqlCrsType); + preparedGeometry = GeometryUtils.readGeometry(geojson).map(g -> PreparedGeometryFactory.prepare(g)); + } + catch(Exception ex) { + logger.warn("Exception in parsing, query result will be wrong", ex); + } + } + } + + @Override + public Expression getExpression1() { + return expression1; + } + + @Override + public Expression getExpression2() { + return expression2; + } + + @Override + public MatchAction getMatchAction() { + return null; + } + + @Override + public boolean evaluate(Object o) { + return false; + } + + @Override + public Object accept(FilterVisitor visitor, Object extraData) { + return visitor.visit(this, extraData); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/NoOps.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/NoOps.java new file mode 100644 index 00000000..113db48f --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/parser/stac/NoOps.java @@ -0,0 +1,4 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +public interface NoOps { +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearch.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearch.java index 9d0d3b40..cea256d0 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearch.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearch.java @@ -4,8 +4,8 @@ import au.org.aodn.ogcapi.server.core.model.DatasetSearchResult; import au.org.aodn.ogcapi.server.core.model.dto.SearchSuggestionsDto; import au.org.aodn.ogcapi.server.core.model.enumeration.*; -import au.org.aodn.ogcapi.server.core.parser.CQLToElasticFilterFactory; -import au.org.aodn.ogcapi.server.core.parser.QueryHandler; +import au.org.aodn.ogcapi.server.core.parser.elastic.CQLToElasticFilterFactory; +import au.org.aodn.ogcapi.server.core.parser.elastic.QueryHandler; import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.SortOptions; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearchBase.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearchBase.java index a026357d..316b343e 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearchBase.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ElasticSearchBase.java @@ -24,7 +24,6 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; -import java.util.stream.Collectors; /** * This class contains the core function to do the search, it includes some common item like ordering etc, @@ -98,8 +97,8 @@ protected SearchRequest buildSearchAsYouTypeRequest( /** * Core function to do the search, it used pageableSearch to make sure all records are return. * - * @param queries - * @param should + * @param queries - The query come from text query + * @param should - This query will use in the should block of elastic search * @param filters - The Query coming from CQL parser * @param properties - The fields you want to return in the search, you can search a field but not include in the return * @return - The search result from Elastic query and format in StacCollectionModel @@ -118,7 +117,7 @@ protected SearchResult searchCollectionBy(final List queries, SearchRequest.Builder builder = new SearchRequest.Builder(); builder.index(indexName) // If user query request a page that is smaller then the internal default, then - // we use the smaller one. The internal page size is use to get the result by + // we use the smaller one. The internal page size is used to get the result by // batch, lets say page is 20 and internal is 10, then we do it in two batch. // But if we request 5 only, then there is no point to load 10 .size(maxSize != null && maxSize < pageSize ? maxSize.intValue() : pageSize) @@ -167,15 +166,11 @@ protected SearchResult searchCollectionBy(final List queries, .stream() .flatMap(v -> CQLFields.valueOf(v).getDisplayField().stream()) .filter(Objects::nonNull) - .collect(Collectors.toList()); + .toList(); // Set fetch to false so that it do not return the original document but just the field // we set - builder.source(f -> f - .filter(sf -> sf - .includes(fs) - ) - ); + builder.source(f -> f.filter(sf -> sf.includes(fs))); } else { throw new IllegalArgumentException(String.format("Invalid properties in query %s, check ?properties=xx", invalid)); @@ -229,10 +224,10 @@ protected SearchResult searchCollectionBy(final List queries, * Count the total number hit. There are two ways to get the total, one is use search but set the size to 0, * then it will fill the size with total. * - * @param requestBuilder - * @return + * @param requestBuilder - A query builder, this make the function general count given a query + * @return - The number of record that matches the requestBuilder */ - protected Long countRecordsHit(Supplier requestBuilder) { + protected Long countRecordsHit(Supplier requestBuilder) { try { SearchRequest sr = requestBuilder.get().size(0).build(); SearchResponse response = esClient.search(sr, ObjectNode.class); @@ -247,9 +242,9 @@ protected Long countRecordsHit(Supplier requestBuilde * need to keep loading until you reach the end of records * * @param requestBuilder, assume it is sorted with order, what order isn't important, as long as it is sorted - * @param clazz - * @return - * @param + * @param clazz - The type + * @return - The items that matches the query mentioned in the requestBuilder + * @param A generic type for Elastic query */ protected Iterable> pagableSearch(Supplier requestBuilder, Class clazz, Long maxSize) { try { @@ -303,9 +298,7 @@ public Hit next() { count.incrementAndGet(); if(index < response.get().hits().hits().size()) { - Hit hit = response.get().hits().hits().get(index++); - log.info("id {}, score {}", hit.id(), hit.score()); - return hit; + return response.get().hits().hits().get(index++); } else { return null; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/OGCApiService.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/OGCApiService.java index 749e81ff..62d907e4 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/OGCApiService.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/OGCApiService.java @@ -1,5 +1,6 @@ package au.org.aodn.ogcapi.server.core.service; +import au.org.aodn.ogcapi.server.core.mapper.Converter; import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; import au.org.aodn.ogcapi.server.core.model.enumeration.OGCMediaTypeMapper; import au.org.aodn.ogcapi.server.core.exception.CustomException; @@ -11,6 +12,7 @@ import org.springframework.http.ResponseEntity; import java.util.List; +import java.util.function.BiFunction; import java.util.function.Function; /** @@ -35,14 +37,19 @@ public ResponseEntity getCollectionList(List keywords, String sortBy, OGCMediaTypeMapper f, CQLCrsType coor, - Function converter) { + BiFunction converter) { try { switch (f) { case json -> { ElasticSearchBase.SearchResult result = search.searchByParameters(keywords, filter, properties, sortBy, coor); + Converter.Param param = Converter.Param.builder() + .coordinationSystem(coor) + .filter(filter) + .build(); + return ResponseEntity.ok() - .body(converter.apply(result)); + .body(converter.apply(result, param)); } default -> { /** diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/util/GeometryUtils.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/util/GeometryUtils.java new file mode 100644 index 00000000..236d7eb3 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/util/GeometryUtils.java @@ -0,0 +1,211 @@ +package au.org.aodn.ogcapi.server.core.util; + +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.Getter; +import lombok.Setter; +import org.geotools.filter.LiteralExpressionImpl; +import org.geotools.geojson.geom.GeometryJSON; +import org.geotools.geometry.jts.JTSFactoryFinder; +import org.locationtech.jts.geom.*; +import org.locationtech.jts.io.ParseException; +import org.locationtech.jts.io.WKTReader; +import org.opengis.referencing.FactoryException; +import org.opengis.referencing.operation.TransformException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.StringWriter; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.concurrent.*; + +public class GeometryUtils { + + protected static final int PRECISION = 15; + + protected static GeometryFactory factory = new GeometryFactory(new PrecisionModel(), 4326); + + protected static ObjectMapper mapper = new ObjectMapper(); + // This number of decimal is needed to do some accurate + protected static GeometryJSON json = new GeometryJSON(PRECISION); + + @Getter + @Setter + protected static int centroidScale = 5; + + // Create an ExecutorService with a fixed thread pool size + @Getter + @Setter + protected static ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1); + + protected static Logger logger = LoggerFactory.getLogger(GeometryUtils.class); + /** + * Create a centroid point for the polygon, this will help to speed up the map processing as there is no need + * to calculate large amount of data. + * @param collection - The polygon that describe the spatial extents. + * @return - The points that represent the centroid or use interior point if centroid is outside of the polygon. + */ + public static List> createCentroid(Geometry collection) { + try { + + // Flatten the map and extract all polygon, some of the income geometry is GeometryCollection + List coordinates = calculateGeometryCentroid(collection); + + if(coordinates != null) { + return coordinates + .stream() + .filter(Objects::nonNull) + .map(coordinate -> List.of( + // We do not need super high precision for centroid, this help to speed up the transfer + // on large area + BigDecimal.valueOf(coordinate.getX()).setScale(getCentroidScale(), RoundingMode.HALF_UP), + BigDecimal.valueOf(coordinate.getY()).setScale(getCentroidScale(), RoundingMode.HALF_UP)) + ) + .toList(); + } + else { + return null; + } + } + catch (Exception e) { + return null; + } + } + + protected static List calculateGeometryCentroid(Geometry geometry) { + if(geometry instanceof GeometryCollection gc) { + return calculateCollectionCentroid(gc); + } + else if(geometry instanceof Polygon pl) { + return List.of(calculatePolygonCentroid(pl).getCoordinate()); + } + else if(geometry instanceof LineString) { + return List.of(geometry.getCentroid().getCoordinate()); + } + else if(geometry instanceof Point p) { + return List.of(p.getCoordinate()); + } + else { + logger.info("Skip geometry centroid for {}", geometry.getGeometryType()); + return null; + } + } + + protected static Point calculatePolygonCentroid(Geometry geometry) { + // Make sure the point will not fall out of the shape, for example a U shape will make + // centroid fall out of the U, so we check if the centroid is out of the shape? if yes then use + // interior point + return geometry.contains(geometry.getCentroid()) ? + geometry.getCentroid() : + geometry.getInteriorPoint(); + } + + protected static List calculateCollectionCentroid(GeometryCollection geometryCollection) { + // Try simplified the polygon to reduce the number of centroid. + Geometry geometry = geometryCollection.union(); + + try { + Point centroid = calculatePolygonCentroid(geometry); + return List.of(new Coordinate(centroid.getX(), centroid.getY())); + } + catch(Exception e) { + // That means it cannot be simplified to a polygon that able to calculate centroid, + // we need to calculate it one by one + List coordinates = new ArrayList<>(); + for (int i = 0; i < geometryCollection.getNumGeometries(); i++) { + geometry = geometryCollection.getGeometryN(i); + + // Make sure the point will not fall out of the shape, for example a U shape will make + // centroid fall out of the U, so we check if the centroid is out of the shape? if yes then use + // interior point + Point centroid = calculatePolygonCentroid(geometry); + coordinates.add(new Coordinate(centroid.getX(), centroid.getY())); + } + return coordinates; + } + } + /** + * Create a grid based on the area of the spatial extents. Once we have the grid, we can union the area + * @param envelope - An envelope that cover the area of the spatial extents + * @param cellSize - How big each cell will be + * @return - List of polygon that store the grid + */ + protected static List createGridPolygons(Envelope envelope, double cellSize) { + List gridPolygons = new ArrayList<>(); + + double minX = envelope.getMinX(); + double minY = envelope.getMinY(); + double maxX = envelope.getMaxX(); + double maxY = envelope.getMaxY(); + + // Check if the cellSize is too small on both side, that is we need to split even if the + // envelope have long width but short height etc + if (cellSize <= 0 || (cellSize > (maxX - minX) && cellSize > (maxY - minY))) { + Polygon itself = factory.createPolygon(new Coordinate[]{ + new Coordinate(minX, minY), + new Coordinate(maxX, minY), + new Coordinate(maxX, maxY), + new Coordinate(minX, maxY), + new Coordinate(minX, minY) // Closing the polygon + }); + gridPolygons.add(itself); + } + else { + // Loop to create grid cells + for (double x = minX; x < maxX; x += cellSize) { + for (double y = minY; y < maxY; y += cellSize) { + // Create a polygon for each grid cell + Polygon gridCell = factory.createPolygon(new Coordinate[]{ + new Coordinate(x, y), + new Coordinate(x + cellSize, y), + new Coordinate(x + cellSize, y + cellSize), + new Coordinate(x, y + cellSize), + new Coordinate(x, y) // Closing the polygon + }); + gridPolygons.add(gridCell); + } + } + } + return gridPolygons; + } + /** + * Convert the WKT format from the cql to GeoJson use by Elastic search + * @param literalExpression - Expression from parser + * @return A Json string represent the literalExpression + * @throws ParseException - Not expected to parse + * @throws IOException - Not expected to parse + */ + public static String convertToGeoJson(LiteralExpressionImpl literalExpression, CQLCrsType cqlCoorSystem) throws ParseException, IOException, FactoryException, TransformException { + GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); + WKTReader reader = new WKTReader(geometryFactory); + Geometry geo = reader.read(literalExpression.toString()); + + try(StringWriter writer = new StringWriter()) { + Geometry t = CQLCrsType.transformGeometry(geo, cqlCoorSystem, CQLCrsType.EPSG4326); + json.write(t, writer); + + String r = writer.toString(); + logger.debug("Converted to GeoJson {}", r); + return r; + } + } + /** + * Please use this function as it contains the parser with enough decimal to make it work. + * @param input - A Json of GeoJson + * @return - An GeometryCollection that represent the GeoJson + */ + public static Optional readGeometry(Object input) { + try { + if(!(input instanceof String)) { + input = mapper.writeValueAsString(input); + } + return Optional.of(json.read(input)); + } + catch (IOException e) { + return Optional.empty(); + } + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/features/RestServices.java b/server/src/main/java/au/org/aodn/ogcapi/server/features/RestServices.java index e35ead31..34d146d2 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/features/RestServices.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/features/RestServices.java @@ -34,7 +34,7 @@ public ResponseEntity getCollection(String id, String sortBy) throws } return ResponseEntity.ok() - .body(StacToCollection.convert(model.getCollections().get(0))); + .body(StacToCollection.convert(model.getCollections().get(0), null)); } else { log.error("UUID {} not found", id); return ResponseEntity.notFound().build(); diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/tile/RestService.java b/server/src/main/java/au/org/aodn/ogcapi/server/tile/RestService.java index fc7e5356..90b4dc2c 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/tile/RestService.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/tile/RestService.java @@ -1,5 +1,6 @@ package au.org.aodn.ogcapi.server.tile; +import au.org.aodn.ogcapi.server.core.mapper.Converter; import au.org.aodn.ogcapi.server.core.model.enumeration.OGCMediaTypeMapper; import au.org.aodn.ogcapi.server.core.service.ElasticSearch; import au.org.aodn.ogcapi.server.core.service.OGCApiService; @@ -11,6 +12,7 @@ import java.io.IOException; import java.util.List; +import java.util.function.BiFunction; import java.util.function.Function; @Service("TileRestService") @@ -21,14 +23,22 @@ public List getConformanceDeclaration() { return List.of("http://www.opengis.net/spec/ogcapi-tiles-1/1.0"); } - public ResponseEntity getVectorTileOfCollection(TileMatrixSets coordinateSystem, List ids, Integer tileMatrix, Integer tileRow, Integer tileCol, Function converter) { + @SuppressWarnings("unchecked") + public ResponseEntity getVectorTileOfCollection( + TileMatrixSets coordinateSystem, + List ids, + Integer tileMatrix, + Integer tileRow, + Integer tileCol, + BiFunction converter) { + // TODO: Implements additional filters try { switch (coordinateSystem) { case WEBMERCATORQUAD -> { return ResponseEntity.ok() .contentType(OGCMediaTypeMapper.mapbox.getMediaType()) - .body(converter.apply((T) search.searchCollectionVectorTile(ids, tileMatrix, tileRow, tileCol))); + .body(converter.apply((T) search.searchCollectionVectorTile(ids, tileMatrix, tileRow, tileCol), null)); } default -> { // We support WEBMERCATORQUAD at the moment, so if it isn't return empty set. @@ -41,7 +51,8 @@ public ResponseEntity getVectorTileOfCollection(TileMatrixSets coordin } } - public ResponseEntity getTileSetsListOfCollection(List id, String sortBy, OGCMediaTypeMapper f, Function converter) { + public ResponseEntity getTileSetsListOfCollection(List id, String sortBy, OGCMediaTypeMapper f, + BiFunction converter) { try { switch (f) { case json -> { @@ -50,7 +61,7 @@ public ResponseEntity getTileSetsListOfCollection(List id, String search.searchCollectionWithGeometry(id, sortBy); return ResponseEntity.ok() - .body(converter.apply(result)); + .body(converter.apply(result, null)); } default -> { /** diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/BaseTestClass.java b/server/src/test/java/au/org/aodn/ogcapi/server/BaseTestClass.java index 7e692213..6c36dcea 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/BaseTestClass.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/BaseTestClass.java @@ -25,6 +25,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -239,4 +241,9 @@ protected void assertClusterHealthResponse() throws IOException { Response response = getClusterHealth(); assertEquals(200, response.getStatusLine().getStatusCode(), "Elastic 200 response"); } + + public static String readResourceFile(String path) throws IOException { + File f = ResourceUtils.getFile(path); + return Files.readString(f.toPath(), StandardCharsets.UTF_8); + } } diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java index 5b62c842..f63c3a1f 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java @@ -3,7 +3,9 @@ import au.org.aodn.ogcapi.server.core.configuration.Config; import au.org.aodn.ogcapi.server.core.configuration.TestConfig; import au.org.aodn.ogcapi.server.core.model.*; +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; import au.org.aodn.ogcapi.server.core.model.enumeration.CollectionProperty; +import au.org.aodn.ogcapi.server.core.service.ElasticSearch; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -12,11 +14,14 @@ import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import static au.org.aodn.ogcapi.server.BaseTestClass.readResourceFile; + @SpringBootTest(classes = {TestConfig.class, Config.class, JacksonAutoConfiguration.class, CacheAutoConfiguration.class}) public class StacToCollectionTest { @@ -33,7 +38,7 @@ public void verifyBBoxEmptyOrNullWorks() { .build(); // Should not throw null pointer - stacToCollection.convert(model); + stacToCollection.convert(model, null); model = StacCollectionModel .builder() @@ -41,7 +46,7 @@ public void verifyBBoxEmptyOrNullWorks() { .build(); // Empty bbox no issue - stacToCollection.convert(model); + stacToCollection.convert(model, null); } @Test @@ -95,7 +100,7 @@ public void verifyAddingPropertyWorks() { .build(); // Should not throw null pointer - ExtendedCollection collection = (ExtendedCollection) stacToCollection.convert(model); + ExtendedCollection collection = (ExtendedCollection) stacToCollection.convert(model, null); Assertions.assertEquals("Completed", collection.getProperties().get(CollectionProperty.status)); Assertions.assertEquals(credits, collection.getProperties().get(CollectionProperty.credits)); Assertions.assertEquals(Collections.singletonList(contact), collection.getProperties().get(CollectionProperty.contacts)); @@ -110,4 +115,22 @@ public void verifyAddingPropertyWorks() { Assertions.assertEquals("creation date", collection.getProperties().get(CollectionProperty.creation)); Assertions.assertEquals("revision date", collection.getProperties().get(CollectionProperty.revision)); } + + @Test + public void verifyConvertWorks1() throws IOException { + String json = readResourceFile("classpath:databag/0c681199-06cd-435c-9468-be6998799b1f.json"); + StacCollectionModel model = objectMapper.readValue(json, StacCollectionModel.class); + StacToCollectionsImpl impl = new StacToCollectionsImpl(); + + Converter.Param param = Converter.Param.builder() + .coordinationSystem(CQLCrsType.EPSG4326) + .filter("score>=1.5 AND INTERSECTS(geometry,POLYGON ((104 -43, 163 -43, 163 -8, 104 -8, 104 -43)))") + .build(); + + ElasticSearch.SearchResult result = new ElasticSearch.SearchResult(); + result.setCollections(List.of(model)); + + // Should not throw any exception + impl.convert(result, param); + } } diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/parser/stac/ParserTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/parser/stac/ParserTest.java new file mode 100644 index 00000000..102521ea --- /dev/null +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/parser/stac/ParserTest.java @@ -0,0 +1,88 @@ +package au.org.aodn.ogcapi.server.core.parser.stac; + +import au.org.aodn.ogcapi.server.BaseTestClass; +import au.org.aodn.ogcapi.server.core.mapper.Converter; +import au.org.aodn.ogcapi.server.core.model.StacCollectionModel; +import au.org.aodn.ogcapi.server.core.model.enumeration.CQLCrsType; +import au.org.aodn.ogcapi.server.core.util.GeometryUtils; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.geotools.filter.LiteralExpressionImpl; +import org.geotools.filter.text.commons.CompilerUtil; +import org.geotools.filter.text.commons.Language; +import org.geotools.filter.text.cql2.CQLException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.locationtech.jts.geom.Geometry; +import org.locationtech.jts.io.ParseException; +import org.opengis.filter.Filter; +import org.opengis.referencing.FactoryException; +import org.opengis.referencing.operation.TransformException; + +import java.io.IOException; +import java.util.Optional; + +@Slf4j +public class ParserTest { + + protected static CQLToStacFilterFactory factory = CQLToStacFilterFactory + .builder() + .cqlCrsType(CQLCrsType.EPSG4326) + .build(); + protected static ObjectMapper mapper = new ObjectMapper(); + + @BeforeAll + public static void init() { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + factory.setCqlCrsType(CQLCrsType.EPSG4326); + } + /** + * Verify CQL parse for STAC, this parse is used to apply after STAC created, at this time we have a very + * specific use case to generate the centroid point dynamically. This is because it is too costly to generate + * and store in the elastic search. + * We created a spatial extents with no land area. Then we need to consider the CQL INTERSECTION form the query + * and then apply the INTERSECTION to this spatial extents. By doing so we do not need to consider zoom level + * but able to create one centroid that falls within the visible area. + * @throws CQLException - Will not throw + * @throws IOException - Will not throw + * @throws FactoryException - Will not throw + * @throws TransformException - Will not throw + * @throws ParseException - Will not throw + */ + @Test + public void verifyIntersectionWorks() throws CQLException, IOException, FactoryException, TransformException, ParseException { + // Assume we have the following CQL + Converter.Param param = Converter.Param.builder() + .coordinationSystem(CQLCrsType.EPSG4326) + .filter("score>=1.5 AND INTERSECTS(geometry,POLYGON ((106.60546875000024 -40.43564679957577, 167.42578125 -40.43564679957577, 167.42578125 -6.4339250592726005, 106.60546875000024 -6.4339250592726005, 106.60546875000024 -40.43564679957577)))") + .build(); + + Optional expected = GeometryUtils.readGeometry( + GeometryUtils.convertToGeoJson( + new LiteralExpressionImpl( + "POLYGON ((116 -34.84004284124928, 116 -36, 112 -36, 112 -27, 113.78063324619302 -27, 114.01254316500001 -27.31536223799992, 114.14389082100001 -27.687758070999905, 114.09791100400003 -27.862725518999923, 114.16602623800009 -28.10670338299991, 114.53109785200002 -28.52239348799992, 114.60377037900003 -28.838555596999925, 114.84245853000004 -29.108575127999927, 114.97877037900003 -29.479913018999923, 114.94263756600003 -30.031019789999903, 115.06080162900003 -30.52239348799992, 115.72152754000001 -31.772637627999927, 115.75684655000009 -32.18564218499995, 115.67367597700002 -32.273370049999926, 115.73585045700008 -32.33318450299993, 115.71452884200005 -32.537041924999926, 115.76929772200003 -32.60230885199991, 115.65886478000004 -32.62851327899995, 115.71412194100003 -32.78045012799993, 115.63965905000009 -32.656914971999925, 115.70093834700003 -32.51295338299991, 115.60092207100001 -32.66171640399995, 115.66684004000001 -33.28769296699994, 115.69792728000004 -33.1931291649999, 115.71013431100005 -33.27068450299993, 115.36719811300009 -33.63128020599993, 115.19467207100001 -33.64462655999995, 114.98853600400003 -33.52109140399995, 115.01042728000004 -34.24504973799992, 115.11882571700005 -34.36337655999995, 115.29078209700003 -34.301853122999944, 115.61231530000009 -34.44589609199994, 115.91578209700003 -34.70191822699991, 115.97852623800009 -34.83562590899993, 116 -34.84004284124928), (115.49210733500001 -31.99564901299993, 115.44014224400006 -32.021833949999916, 115.55219218900004 -32.00620348499996, 115.49210733500001 -31.99564901299993))"), + CQLCrsType.EPSG4326 + ) + ); + + // Parse the json and get the noland section + String json = BaseTestClass.readResourceFile("classpath:databag/00462296-be7a-452f-afaf-36c809cd51f8.json"); + StacCollectionModel model = mapper.readValue(json, StacCollectionModel.class); + + Filter filter = CompilerUtil.parseFilter(Language.CQL, param.getFilter(), factory); + Optional geo = GeometryUtils.readGeometry(model.getSummaries().getGeometryNoLand()); + + Assertions.assertTrue(geo.isPresent(), "Parse no land correct"); + GeometryVisitor visitor = GeometryVisitor.builder() + .build(); + + // return value are geo applied the CQL, and in this case only INTERSECTS + Geometry g = (Geometry)filter.accept(visitor, geo.get()); + Assertions.assertTrue(expected.isPresent(), "Expected parse correct"); + Assertions.assertEquals(g, expected.get(), "They are equals"); + } +} diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/util/GeometryUtilsTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/util/GeometryUtilsTest.java new file mode 100644 index 00000000..5bc3ac08 --- /dev/null +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/util/GeometryUtilsTest.java @@ -0,0 +1,105 @@ +package au.org.aodn.ogcapi.server.core.util; + +import org.geotools.feature.FeatureCollection; +import org.geotools.feature.FeatureIterator; +import org.geotools.geojson.feature.FeatureJSON; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.locationtech.jts.geom.*; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; + +import static au.org.aodn.ogcapi.server.BaseTestClass.readResourceFile; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class GeometryUtilsTest { + + protected GeometryCollection convertToGeometryCollection( + FeatureCollection featureCollection) { + // Create a GeometryFactory + GeometryFactory geometryFactory = new GeometryFactory(); + + // List to hold the geometries extracted from the FeatureCollection + List geometries = new ArrayList<>(); + + // Iterate through the FeatureCollection and extract geometries + try(FeatureIterator features = featureCollection.features()) { + while(features.hasNext()) { + Geometry geometry = (Geometry)(features.next()).getDefaultGeometry(); + geometries.add(geometry); + } + } + + // Convert the list of geometries to an array + Geometry[] geometryArray = geometries.toArray(new Geometry[0]); + + // Create and return a GeometryCollection from the array of geometries + return geometryFactory.createGeometryCollection(geometryArray); + } + /** + * Given a irregular geojson, with hole the centroid point is still inside the polygon + * @throws IOException - Not expected to throw this + */ + @Test + @SuppressWarnings("unchecked") + public void verifyCentroidCorrect() throws IOException { + // You can paste the geojson on geojson.io to see what it looks like + String geojson = readResourceFile("classpath:canned/irregular.geojson"); + FeatureJSON json = new FeatureJSON(); + + // Read the GeoJSON file + StringReader reader = new StringReader(geojson); + FeatureCollection feature = json.readFeatureCollection(reader); + + List point = GeometryUtils.calculateCollectionCentroid(convertToGeometryCollection(feature)); + assertEquals(1, point.size(), "One item"); + assertEquals(2.805438932281021, point.get(0).getX(),"X"); + assertEquals( 2.0556251797475227, point.get(0).getY(), "Y"); + } + + @Test + public void verifyCreateGirdPolygonWithValidCellSize() { + Envelope envelope = new Envelope(0, 10, 0, 10); // 10x10 envelope + double cellSize = 2.0; // Valid cell size + + List gridPolygons = GeometryUtils.createGridPolygons(envelope, cellSize); + + // Check that the grid has been divided into cells + Assertions.assertFalse(gridPolygons.isEmpty(), "Expected non-empty grid polygons list"); + + // Check the number of cells created (should be 5x5 = 25 for a 10x10 grid with cell size 2) + Assertions.assertEquals(25, gridPolygons.size(), "Expected 25 grid cells"); + + // Check that each cell is a valid polygon and has the expected cell size + gridPolygons.forEach(polygon -> { + Assertions.assertNotNull(polygon, "Expected each grid cell to be a valid polygon"); + Assertions.assertTrue(polygon.getArea() <= (cellSize * cellSize), "Expected each cell to have an area <= cellSize^2"); + }); + } + + @Test + public void verifyCreateGirdPolygonWithTooBigCellSize() { + Envelope envelope = new Envelope(0, 10, 0, 10); // 10x10 envelope + Polygon polygon = GeometryUtils.factory.createPolygon(new Coordinate[]{ + new Coordinate(envelope.getMinX(), envelope.getMinY()), + new Coordinate(envelope.getMaxX(), envelope.getMinY()), + new Coordinate(envelope.getMaxX(), envelope.getMaxY()), + new Coordinate(envelope.getMinX(), envelope.getMaxY()), + new Coordinate(envelope.getMinX(), envelope.getMinY()) // Closing point + }); + double cellSize = 20; // Too small cell size + + // Verify that an exception is thrown for too small cell size + List gridPolygons = GeometryUtils.createGridPolygons(envelope, cellSize); + + // Check that the exception message is as expected + Assertions.assertEquals(1, gridPolygons.size(), "Get 1 back"); + Assertions.assertTrue(gridPolygons.get(0).equalsExact(polygon), "Get back itself"); + } + +} diff --git a/server/src/test/resources/canned/irregular.geojson b/server/src/test/resources/canned/irregular.geojson new file mode 100644 index 00000000..33f1885b --- /dev/null +++ b/server/src/test/resources/canned/irregular.geojson @@ -0,0 +1,131 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "coordinates": [ + [ + 0.2337242356863385, + 4.518654452684871 + ], + [ + 1.0757323470082554, + 4.063032694138045 + ], + [ + 2.0156483782505745, + 4.772378565429946 + ], + [ + 2.6096230924383406, + 4.082564826969502 + ], + [ + 4.378492845680455, + 3.906758793933477 + ], + [ + 2.896819657540817, + 3.0532809551275335 + ], + [ + 1.3237657441414399, + 3.3595784740430616 + ], + [ + 0.4425944648511688, + 2.55781029552125 + ], + [ + 1.3498745227876725, + 1.8533999697946513 + ], + [ + 2.805438932281021, + 2.0556251797475227 + ], + [ + 3.9933883606575193, + 2.042579138064241 + ], + [ + 4.469873570940251, + 1.2661726935846218 + ], + [ + 4.221840173806072, + 0.8615572254442299 + ], + [ + 4.750542941380246, + 0.16317964593562806 + ], + [ + 3.647447043602, + 0.32635796829360686 + ], + [ + 3.3863592571466654, + 1.2335444854399356 + ], + [ + 2.361589695305099, + 0.46342576793742296 + ], + [ + 0.5861927474024355, + 0.3851015854472166 + ], + [ + -0.7061917955559807, + 1.1617610340611009 + ], + [ + -0.7779909368311166, + 2.616495167329873 + ], + [ + 0.2337242356863385, + 4.518654452684871 + ] + ], + "type": "LineString" + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "coordinates": [ + [ + 1.2323850884183116, + 3.8220980913438325 + ], + [ + 1.89815894388218, + 4.258332255701447 + ], + [ + 2.4464432954400195, + 3.7895340894263114 + ], + [ + 3.379832132021761, + 3.724402418269719 + ], + [ + 2.59656877265283, + 3.424735946359405 + ], + [ + 1.2323850884183116, + 3.8220980913438325 + ] + ], + "type": "LineString" + } + } + ] +} diff --git a/server/src/test/resources/databag/00462296-be7a-452f-afaf-36c809cd51f8.json b/server/src/test/resources/databag/00462296-be7a-452f-afaf-36c809cd51f8.json new file mode 100644 index 00000000..49828f9c --- /dev/null +++ b/server/src/test/resources/databag/00462296-be7a-452f-afaf-36c809cd51f8.json @@ -0,0 +1,668 @@ +{ + "title": "Southern Surveyor Voyage SS 09/2003 ADCP Data", + "description": "This dataset contains the Acoustic Doppler Current Profiler (ADCP) data collected on Southern Surveyor voyage SS 09/2003. The voyage took place between Cape Leeuwin and the Abrolhos islands off the West Australian coast during October and November 2003. This dataset has been processed and archived within the CSIRO Marine and Atmospheric Research Data Centre in Hobart. Additional information regarding this dataset is contained in the cruise report for this voyage and/or the data processing report (as available).", + "extent": { + "bbox": [ + [ + 112, + -36, + 116, + -27 + ], + [ + 112, + -36, + 116, + -27 + ] + ], + "temporal": [ + [ + "2003-10-23T13:00:00Z", + "2003-11-08T12:59:59Z" + ], + [ + "2003-10-23T13:00:00Z", + "2003-11-08T12:59:59Z" + ] + ] + }, + "summaries": { + "score": 86, + "status": "completed", + "credits": [ + "ADCP data processed by Bernadette Heaney" + ], + "statement": "Data source: original field data the 3 min ensemble files returned from the ship were processed in the usual way.
Data processing and quality control: according to current CMR Data Centre ADCP data processing manual. For full details, refer to documentation.", + "revision": "2004-04-16T15:44:25", + "dataset_group": "csiro oceans and atmosphere", + "update_frequency": "completed", + "proj:geometry": { + "geometries": [ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 116, + -36 + ], + [ + 116, + -27 + ], + [ + 112, + -27 + ], + [ + 112, + -36 + ], + [ + 116, + -36 + ] + ] + ] + } + ], + "type": "GeometryCollection" + }, + "proj:geometry_noland": { + "geometries": [ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 116, + -34.84004284124928 + ], + [ + 115.97852623800009, + -34.83562590899993 + ], + [ + 115.91578209700003, + -34.70191822699991 + ], + [ + 115.61231530000009, + -34.44589609199994 + ], + [ + 115.29078209700003, + -34.301853122999944 + ], + [ + 115.11882571700005, + -34.36337655999995 + ], + [ + 115.01042728000004, + -34.24504973799992 + ], + [ + 114.98853600400003, + -33.52109140399995 + ], + [ + 115.19467207100001, + -33.64462655999995 + ], + [ + 115.36719811300009, + -33.63128020599993 + ], + [ + 115.71013431100005, + -33.27068450299993 + ], + [ + 115.69792728000004, + -33.1931291649999 + ], + [ + 115.66684004000001, + -33.28769296699994 + ], + [ + 115.60092207100001, + -32.66171640399995 + ], + [ + 115.70093834700003, + -32.51295338299991 + ], + [ + 115.63965905000009, + -32.656914971999925 + ], + [ + 115.71412194100003, + -32.78045012799993 + ], + [ + 115.65886478000004, + -32.62851327899995 + ], + [ + 115.76929772200003, + -32.60230885199991 + ], + [ + 115.71452884200005, + -32.537041924999926 + ], + [ + 115.73585045700008, + -32.33318450299993 + ], + [ + 115.67367597700002, + -32.273370049999926 + ], + [ + 115.75684655000009, + -32.18564218499995 + ], + [ + 115.72152754000001, + -31.772637627999927 + ], + [ + 115.06080162900003, + -30.52239348799992 + ], + [ + 114.94263756600003, + -30.031019789999903 + ], + [ + 114.97877037900003, + -29.479913018999923 + ], + [ + 114.84245853000004, + -29.108575127999927 + ], + [ + 114.60377037900003, + -28.838555596999925 + ], + [ + 114.53109785200002, + -28.52239348799992 + ], + [ + 114.16602623800009, + -28.10670338299991 + ], + [ + 114.09791100400003, + -27.862725518999923 + ], + [ + 114.14389082100001, + -27.687758070999905 + ], + [ + 114.01254316500001, + -27.31536223799992 + ], + [ + 113.78063324619302, + -27 + ], + [ + 112, + -27 + ], + [ + 112, + -36 + ], + [ + 116, + -36 + ], + [ + 116, + -34.84004284124928 + ] + ], + [ + [ + 115.49210733500001, + -31.99564901299993 + ], + [ + 115.55219218900004, + -32.00620348499996 + ], + [ + 115.44014224400006, + -32.021833949999916 + ], + [ + 115.49210733500001, + -31.99564901299993 + ] + ] + ] + } + ], + "type": "GeometryCollection" + }, + "temporal": [ + { + "start": "2003-10-23T13:00:00Z", + "end": "2003-11-08T12:59:59Z" + } + ], + "parameter_vocabs": [ + "current" + ], + "platform_vocabs": [ + "research vessel" + ] + }, + "contacts": [ + { + "roles": [ + "pointOfContact", + "about" + ], + "organization": "CSIRO Oceans & Atmosphere - Hobart", + "name": "CSIRO O&A, Information & Data Centre", + "position": "Data Requests", + "emails": [], + "addresses": [], + "phones": [], + "links": [] + }, + { + "roles": [ + "pointOfContact", + "metadata" + ], + "organization": "CSIRO Oceans & Atmosphere - Hobart", + "name": "CSIRO O&A, Information & Data Centre", + "position": "Data Requests", + "emails": [], + "addresses": [], + "phones": [], + "links": [] + } + ], + "languages": [ + { + "code": "eng", + "name": "English" + } + ], + "links": [ + { + "href": "https://www.cmar.csiro.au/geoserver/wms?&CQL_FILTER=SURVEY_NAME%20%3D%20%27SS200309%27", + "rel": "wms", + "type": "", + "title": "mnf:adcp_public_data" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/download.cfm?file_id=1", + "rel": "related", + "type": "text/html", + "title": "Graphics Link" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/dataset.cfm?survey=SS200309&data_type=adcp", + "rel": "related", + "type": "", + "title": "Data Link" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/download.cfm?file_id=2", + "rel": "related", + "type": "text/html", + "title": "Data Link" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/survey_list.cfm?source_id=8", + "rel": "related", + "type": "text/html", + "title": "Data Link" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/download.cfm?file_id=3", + "rel": "related", + "type": "text/html", + "title": "Documentation Link" + }, + { + "href": "https://mnf.csiro.au/", + "rel": "related", + "type": "text/html", + "title": "Documentation Link" + }, + { + "href": "https://www.marine.csiro.au/data/trawler/download.cfm?file_id=4", + "rel": "related", + "type": "text/html", + "title": "Documentation Link" + }, + { + "href": "https://creativecommons.org/licenses/by/4.0/", + "rel": "related", + "type": "text/html", + "title": "Documentation Link" + }, + { + "href": "http://www.marine.csiro.au/~dunn/cars2009/", + "rel": "related", + "type": "text/html", + "title": "Documentation Link" + }, + { + "href": "https://geonetwork-edge.edge.aodn.org.au:443/geonetwork/images/logos/58d5af30-fbc6-42dc-8971-5468df74e9ee.png", + "rel": "icon", + "type": "image/png", + "title": "Suggest icon for dataset" + }, + { + "href": "https://www.cmar.csiro.au/data/trawler/dataset_mapfile.cfm?survey=SS200309&data_type=adcp&img_type=tn", + "rel": "preview", + "type": "image" + } + ], + "license": "Data is made available under a Creative Commons Attribution 4.0 International Licence, please see link. Data is supplied 'as is' without any warranty or guarantee except as required by law to be given to you. The data may not be free of error, comprehensive, current or appropriate for your particular purpose. You accept all risk and responsibility for its use. ATTRIBUTION STATEMENT: The dataset [Insert-dataset-name-here] downloaded on [Insert-DD-Mmm-YYYY-here] was collected on voyage [Insert-voyage-name-here] by the Marine National Facility.", + "providers": [ + { + "name": "CSIRO Oceans & Atmosphere - Hobart", + "roles": [ + "pointOfContact" + ] + } + ], + "themes": [ + { + "concepts": [ + { + "id": "Earth Science | Oceans | Ocean Circulation | Ocean Currents", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=external.theme.gcmd_keywords&id=http://gcmdservices.gsfc.nasa.gov/kms/concept/510c5f78-e19e-4ce4-b59a-8937aeb84631" + } + ], + "scheme": "theme", + "description": "Olsen, L.M., G. Major, K. Shein, J. Scialdone, S. Ritz, T. Stevens, M. Morahan, A. Aleman, R. Vogel, S. Leicester, H. Weir, M. Meaux, S. Grebas, C.Solomon, M. Holland, T. Northcutt, R. A. Restrepo, R. Bilodeau, 2013. NASA/Global Change Master Directory (GCMD) Earth Science Keywords. Version 8.0.0.0.0", + "title": "GCMD Keywords" + }, + { + "concepts": [ + { + "id": "ADCP (Acoustic Doppler Current Profiler)", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.equipment.urn:marlin.csiro.au:Equipment&id=urn:marlin.csiro.au:Equipment:concept:2" + } + ], + "scheme": "equipment", + "description": "", + "title": "CSIRO Equipment" + }, + { + "concepts": [ + { + "id": "Coastal Waters (Australia) | West Australia Coast West, WA", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.place.urn:aodn.org.au:geographicextents&id=urn:aodn.org.au:geographicextents:concept:1018" + }, + { + "id": "Global / Oceans | Indian Ocean", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.place.urn:aodn.org.au:geographicextents&id=urn:aodn.org.au:geographicextents:concept:4" + } + ], + "scheme": "place", + "description": "AODN GEN", + "title": "AODN Geographic Extent Names" + }, + { + "concepts": [ + { + "id": "Marine National Facility", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.discipline.urn:marlin.csiro.au:keywords:cmarAOI&id=urn:marlin.csiro.au:keywords:cmarAOI:concept:3208" + } + ], + "scheme": "discipline", + "description": "Marlin Areas of Interest Thesaurus", + "title": "CSIRO Areas Of Interest" + }, + { + "concepts": [ + { + "id": "Research Voyage: SS 09/2003", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.survey.urn:marlin.csiro.au:surveyregister&id=urn:marlin.csiro.au:surveyregister:concept:1244" + } + ], + "scheme": "survey", + "description": "MarLIN Survey Register", + "title": "CSIRO Survey List" + }, + { + "concepts": [ + { + "id": "National Facility External Users: C. Pattiaratchi (University of WA) 2000-", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.project.urn:marlin.csiro.au:projectregister&id=urn:marlin.csiro.au:projectregister:concept:1510" + } + ], + "scheme": "project", + "description": "MarLIN Project Register", + "title": "CSIRO Project List" + }, + { + "concepts": [ + { + "id": "Vessel Data: ADCP", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.discipline.urn:marlin.csiro.au:keywords:standardDataType&id=urn:marlin.csiro.au:keywords:standardDataType:concept:3510" + } + ], + "scheme": "discipline", + "description": "MarLIN Standard Datatypes Thesaurus", + "title": "CSIRO Standard Data Types" + }, + { + "concepts": [ + { + "id": "Ship: Southern Surveyor", + "url": "https://marlin.csiro.au/geonetwork/srv/eng/xml.keyword.get?thesaurus=register.dataSource.urn:marlin.csiro.au:sourceregister&id=urn:marlin.csiro.au:sourceregister:concept:8" + } + ], + "scheme": "dataSource", + "description": "MarLIN Source Register", + "title": "CSIRO Source List" + }, + { + "concepts": [ + { + "id": "Current direction in the water body", + "url": "http://vocab.nerc.ac.uk/collection/P01/current/LCDAZZ01" + }, + { + "id": "Current speed in the water body", + "url": "http://vocab.aodn.org.au/def/discovery_parameter/entity/383" + }, + { + "id": "Eastward current velocity in the water body", + "url": "http://vocab.nerc.ac.uk/collection/P01/current/LCEWZZ01" + }, + { + "id": "Northward current velocity in the water body", + "url": "http://vocab.nerc.ac.uk/collection/P01/current/LCNSZZ01" + }, + { + "id": "Upward current velocity in the water body", + "url": "http://vocab.nerc.ac.uk/collection/P01/current/LRZAZZZZ" + } + ], + "scheme": "", + "description": "", + "title": "Keywords (DataParameter)" + }, + { + "concepts": [ + { + "id": "current profilers", + "url": "http://vocab.nerc.ac.uk/collection/L05/current/115" + } + ], + "scheme": "", + "description": "", + "title": "Keywords (Instrument)" + }, + { + "concepts": [ + { + "id": "research vessel", + "url": "http://vocab.nerc.ac.uk/collection/L06/current/31" + } + ], + "scheme": "", + "description": "", + "title": "Keywords (Platform)" + } + ], + "id": "00462296-be7a-452f-afaf-36c809cd51f8", + "search_suggestions": { + "abstract_phrases": [ + "been", + "data processing report", + "during october", + "adcp data", + "collected", + "during", + "australian coast during", + "atmospheric research data", + "leeuwin", + "acoustic doppler current", + "has been", + "voyage took", + "hobart additional information", + "acoustic doppler", + "additional information", + "between", + "surveyor", + "atmospheric research data centre", + "coast", + "contains", + "abrolhos", + "hobart additional information regarding", + "islands", + "processing", + "australian coast", + "doppler current profiler adcp", + "southern", + "west australian coast during", + "surveyor voyage ss", + "dataset has", + "current profiler adcp", + "place between cape", + "australian", + "between cape", + "marine", + "archived", + "current", + "took place between cape", + "doppler current profiler", + "archived within", + "place", + "coast during october", + "voyage ss", + "csiro", + "ss", + "place between", + "abrolhos islands", + "within", + "surveyor voyage", + "hobart additional", + "data processing", + "centre", + "off", + "acoustic doppler current profiler", + "report", + "information", + "southern surveyor voyage", + "voyage took place between", + "dataset has been processed", + "processing report", + "dataset", + "november", + "coast during", + "data", + "west australian coast", + "available", + "dataset contains", + "hobart", + "research", + "current profiler", + "place between cape leeuwin", + "west", + "australian coast during october", + "additional information regarding", + "has", + "profiler adcp", + "dataset has been", + "took", + "acoustic", + "voyage took place", + "profiler", + "regarding", + "voyage", + "abrolhos islands off", + "data collected", + "cruise", + "october", + "been processed", + "information regarding", + "islands off", + "research data", + "additional", + "cruise report", + "atmospheric research", + "csiro marine", + "atmospheric", + "has been processed", + "southern surveyor", + "took place between", + "doppler", + "profiler adcp data collected", + "cape leeuwin", + "west australian", + "data centre", + "doppler current", + "southern surveyor voyage ss", + "processed", + "research data centre", + "contained", + "current profiler adcp data", + "between cape leeuwin", + "took place", + "adcp data collected", + "profiler adcp data", + "adcp", + "cape" + ], + "parameter_vocabs_sayt": [ + "current" + ], + "platform_vocabs_sayt": [ + "research vessel" + ] + }, + "sci:citation": "{\"suggestedCitation\":null,\"useLimitations\":null,\"otherConstraints\":[\"Data is made available under a Creative Commons Attribution 4.0 International Licence, please see link. Data is supplied 'as is' without any warranty or guarantee except as required by law to be given to you. The data may not be free of error, comprehensive, current or appropriate for your particular purpose. You accept all risk and responsibility for its use. ATTRIBUTION STATEMENT: The dataset [Insert-dataset-name-here] downloaded on [Insert-DD-Mmm-YYYY-here] was collected on voyage [Insert-voyage-name-here] by the Marine National Facility.\"]}", + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/contacts/v0.1.1/schema.json", + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/language/v1.0.0/schema.json", + "https://stac-extensions.github.io/themes/v1.0.0/schema.json", + "https://stac-extensions.github.io/web-map-links/v1.2.0/schema.json" + ], + "type": "Collection" +} diff --git a/server/src/test/resources/databag/0c681199-06cd-435c-9468-be6998799b1f.json b/server/src/test/resources/databag/0c681199-06cd-435c-9468-be6998799b1f.json new file mode 100644 index 00000000..3dc01da8 --- /dev/null +++ b/server/src/test/resources/databag/0c681199-06cd-435c-9468-be6998799b1f.json @@ -0,0 +1,16616 @@ +{ + "title": "Diversity of zooxanthellae in octocorals", + "description": "146 samples belonging to 69 genera (114 species) from 20 families of octocorals were collected. Fresh octocoral samples were collected from the eastern Pacific coast during 1999-2002, the Caribbean Sea in 2002 and the Great Barrier Reef during 2000-2002. Small fragments of 1-4 colonies (individuals) were collected per species. Samples derived from museum specimens originally collected from California, Galapagos, the Philippines, Palau and Papua New Guinea were acquired from the California Academy of Sciences in San Francisco. Genetic analyses of the zooxanthellae were based on ribosomal DNA internal transcribed spacer 1 (ITS1) region. Symbiodinium clades A, B, C, D and G were identified (and no zoxanthellae).An unrooted phylogenetic tree was created from a range of octocoral taxa based on mitochondrial COII-ATP8-ATP6. To examine the presence, genetic identity and diversity of algal endosymbionts (Symbiodinium) in 114 species from 69 genera (20 families) of octocorals from the Great Barrier Reef, the far eastern Pacific and the Caribbean.To compare patterns of the octocoral-algal symbiosis with the host phylogeny. Numbers of samples investigated from the various locations were: Great Barrier Reef (81), Torres Strait (3), other central Pacific regions (12), South Africa (1), eastern Pacific (27), and the Caribbean Sea (22).Species list: Acabaria cinquemiglia; Acabaria sp.1; Acanthogorgia sp.1; Alertigorgia orientalis; Annella mollis; Anthelia sp.1; Astrogorgia dumbea; Astrogorgia sp.1; Bebryce sp.1; Briareidae sp.1, 2; Briareum asbestinum; Briareum cf.stechei; Briareum violacea; Capnella sp.1,2; Capnella sp.2; Carijoa sp.; Cespitularia sp.1; Chironephthya sp.3; Cladiella sp.1,2; Clavularia sp.1; Ctenocella pectinata; Dendronephthya sp.1; Dichotella sp.1; Echinogorgia sp.1,3; Echinomuricea sp.1; Ellisella limbaughi; Ellisella sp.1,2,3; Eugorgia aurantiaca; Eunicea asperula; Eunicea calyculata; Eunicea laciniata; Eunicea sp.1,2; Eunicea succinea; Eunicea tourneforti; Eunicella papillosa; Euplexaura nuttingi; Euplexaura sp.1; Gorgonia mariae; Gorgonia ventalina; Gorgoniidae sp.1; Heliopora coerulea; Heterogorgia sp.1; Heterogorgia verrucosa; Iciligorgia sp.1; Isis hippuris; Junceella fragilis; Junceella sp.1; Keroeides sp.1; Klyxum sp.1; Lemnalia sp.2; Leptogorgia rigida; Leptogorgia sp.1; Lobophytum sp.1,2; Melithaea sp.1; Melithaeidae sp.1,2; Menella sp. 3; Menella sp.1,2; Muricea fruticosa; Muricea muricanta; Muricea sp.1,3,10; Muricella sp.1; Muriceopsis flavida; Nicella sp.1a,b; Pacifigorgia gracilis; Pacifigorgia stenobrochis; Paracis sp.1,2; Paragorgia dendroides; Paralemnalia sp.1,3; Paraminabea aldersladei; Paratelesto sp.1; Plexaura homomalla; Plexaurella dichotoma; Plexaurella grisea; Plexaurella nutans; Plumigorgia schoboti; Psammogorgia arbuscula dowii; Psammogorgia teres; Pseudoplexaura wagenaari; Pterogorgia anceps; Pterogorgia citrina; Ptilosarcus undulates; Rhytisma sp.1,2; Rumphella sp.1; Sarcophyton sp.1,2; Sinularia sp.1; Siphonogorgia geodeffroyi; Solenocaulon sp.1; Stereonephthya sp.1; Studeriotes sp.1; Stylatula sp.1; Subergorgia sp.1; Subergorgia suberosa; Sympodium sp.1,2; Tubipora musica; Umbellulifera sp.1; Villogorgia sp.1; Xenia sp.1a, b; Xeniidae sp.1.Locations specifically identified were: Dungenesse Reef, Torres Strait; Haslewood, Hook, Long, Rattray, and Double Cone Islands on the Central Great Barrier Reef; Bali; Central Pacific; Eastern Pacific; Galápagos; Palau; Papua New Guinea; Philippines; South Africa; California, USA; Acapulco, Afuera Zuñiga frente al faro P.Abreojos, Bahia de las Animas, Cabo San Lucas, Cancun, Costa frente a Xcaret, Isla Coronado, Isla Danzante, Isla Salsipuedes, Isla tortuga, Piedra Blanca, Piedras de Zuniga, and San Carlos in Mexico.", + "extent": { + "bbox": [ + [ + -117.3, + -25, + 179, + 32.5 + ], + [ + 134, + 6.9925, + 134.6, + 7.62645 + ], + [ + -117.3, + 10.4, + -75.5, + 32.5 + ], + [ + -91.5, + -0.5, + -90, + 0.5 + ], + [ + 115, + -8.5, + 116, + -8 + ], + [ + 147, + -20, + 149.1, + -18.6 + ], + [ + 141, + -10, + 179, + 10 + ], + [ + 142.91, + -9.9, + 142.92, + -9.8 + ], + [ + 155, + -25, + 179, + -10 + ], + [ + 116.5, + 6, + 126.5, + 18.5 + ] + ], + "temporal": [ + [ + "1998-12-31T13:00:00Z", + "2002-12-31T12:59:59Z" + ], + [ + "1998-12-31T13:00:00Z", + "2002-12-31T12:59:59Z" + ] + ] + }, + "summaries": { + "score": 80, + "status": "completed", + "credits": [ + "van Oppen, Madeleine JH, Dr (Principal Investigator)" + ], + "scope": { + "code": "dataset", + "name": "" + }, + "statement": "Statement: The central-west Pacific samples were collected by Dr Gary Williams and preserved in 70% ethanol. Carlos Sanchez, Gary Williams and Katharina Fabricius performed the identification of all samples. Leen van Ofwegen confirmed the identity of Stereonephthya sp. 1 from the GBR.", + "creation": "2009-11-11T00:00:00", + "revision": "2017-11-20T00:00:00", + "dataset_group": "aims", + "update_frequency": "completed", + "proj:geometry": { + "geometries": [ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 134, + 6.9925 + ], + [ + 134.6, + 6.9925 + ], + [ + 134.6, + 7.62645 + ], + [ + 134, + 7.62645 + ], + [ + 134, + 6.9925 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -117.3, + 10.4 + ], + [ + -75.5, + 10.4 + ], + [ + -75.5, + 32.5 + ], + [ + -117.3, + 32.5 + ], + [ + -117.3, + 10.4 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -91.5, + -0.5 + ], + [ + -90, + -0.5 + ], + [ + -90, + 0.5 + ], + [ + -91.5, + 0.5 + ], + [ + -91.5, + -0.5 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 115, + -8.5 + ], + [ + 116, + -8.5 + ], + [ + 116, + -8 + ], + [ + 115, + -8 + ], + [ + 115, + -8.5 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 147, + -20 + ], + [ + 149.1, + -20 + ], + [ + 149.1, + -18.6 + ], + [ + 147, + -18.6 + ], + [ + 147, + -20 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 141, + -10 + ], + [ + 179, + -10 + ], + [ + 179, + 10 + ], + [ + 141, + 10 + ], + [ + 141, + -10 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 142.91, + -9.9 + ], + [ + 142.92, + -9.9 + ], + [ + 142.92, + -9.8 + ], + [ + 142.91, + -9.8 + ], + [ + 142.91, + -9.9 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 155, + -25 + ], + [ + 179, + -25 + ], + [ + 179, + -10 + ], + [ + 155, + -10 + ], + [ + 155, + -25 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 116.5, + 6 + ], + [ + 126.5, + 6 + ], + [ + 126.5, + 18.5 + ], + [ + 116.5, + 18.5 + ], + [ + 116.5, + 6 + ] + ] + ] + } + ], + "type": "GeometryCollection" + }, + "proj:geometry_noland": { + "geometries": [ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 134.6, + 7.383225794889976 + ], + [ + 134.52800540500004, + 7.357570705000058 + ], + [ + 134.48755944100003, + 7.469916083000044 + ], + [ + 134.5883415516874, + 7.62645 + ], + [ + 134, + 7.62645 + ], + [ + 134, + 6.9925 + ], + [ + 134.6, + 6.9925 + ], + [ + 134.6, + 7.383225794889976 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -85.82650776434276, + 10.4 + ], + [ + -85.77550208199995, + 10.447292385000083 + ], + [ + -85.80923417899993, + 10.515041408000059 + ], + [ + -85.63174394399994, + 10.621161200000074 + ], + [ + -85.70006262899996, + 10.61123281500005 + ], + [ + -85.66527258999992, + 10.77883535400008 + ], + [ + -85.94644120999993, + 10.891140041000085 + ], + [ + -85.87816321499992, + 10.94635651200008 + ], + [ + -85.71056067599993, + 10.928290106000077 + ], + [ + -85.74600175699993, + 11.023016669000071 + ], + [ + -85.6701960929999, + 11.054388739000046 + ], + [ + -86.4963679679999, + 11.759426174000055 + ], + [ + -86.77257239499994, + 12.197414455000057 + ], + [ + -87.17100989499994, + 12.451442776000079 + ], + [ + -87.09780839799993, + 12.433539130000042 + ], + [ + -87.4802546869999, + 12.799994208000044 + ], + [ + -87.6709285149999, + 12.893500067000048 + ], + [ + -87.58385169199994, + 13.084662177000043 + ], + [ + -87.4350479809999, + 12.922390041000085 + ], + [ + -87.28958085799991, + 12.919582424000055 + ], + [ + -87.37901770699995, + 12.937567450000074 + ], + [ + -87.26915442599993, + 13.023220119000086 + ], + [ + -87.3513484369999, + 13.067206122000073 + ], + [ + -87.30394446499992, + 13.098334052000043 + ], + [ + -87.41934160099994, + 13.111354885000083 + ], + [ + -87.51223710799991, + 13.286688544000071 + ], + [ + -87.37901770699995, + 13.372015692000048 + ], + [ + -87.40062415299991, + 13.411159572000088 + ], + [ + -87.61856035099994, + 13.372015692000048 + ], + [ + -87.62401282499991, + 13.46625397300005 + ], + [ + -87.7209773429999, + 13.359035549000055 + ], + [ + -87.83828691299993, + 13.44094472900008 + ], + [ + -87.87376868399993, + 13.365261135000083 + ], + [ + -87.78990637899996, + 13.28701406500005 + ], + [ + -87.92821204299992, + 13.158636786000047 + ], + [ + -88.32494055899993, + 13.166571356000077 + ], + [ + -88.3584285149999, + 13.228664455000057 + ], + [ + -88.4148249989999, + 13.171576239000046 + ], + [ + -88.46214758999992, + 13.262233791000085 + ], + [ + -88.45470130099993, + 13.21503327000005 + ], + [ + -88.5539851549999, + 13.27643463700008 + ], + [ + -88.72276770699995, + 13.269598700000074 + ], + [ + -88.57738196499992, + 13.262844143000052 + ], + [ + -88.4616999989999, + 13.16828034100007 + ], + [ + -88.78567460799991, + 13.245266018000052 + ], + [ + -89.2514542309999, + 13.472316799000055 + ], + [ + -89.80804823099993, + 13.526857633000075 + ], + [ + -89.9513182739999, + 13.664110063000066 + ], + [ + -90.50020878599992, + 13.894699659000082 + ], + [ + -91.31646125199991, + 13.955679359000044 + ], + [ + -91.76255767099991, + 14.180174112000088 + ], + [ + -92.24624589799993, + 14.546291408000059 + ], + [ + -92.8406062489999, + 15.161159572000088 + ], + [ + -92.73741614499994, + 15.092596747000073 + ], + [ + -92.76842200399996, + 15.171454169000071 + ], + [ + -92.98314368399993, + 15.265570380000042 + ], + [ + -93.19961503799993, + 15.490993557000081 + ], + [ + -93.9433894519999, + 16.010565497000073 + ], + [ + -93.85403398299991, + 16.02484772300005 + ], + [ + -93.89810136599993, + 16.08893463700008 + ], + [ + -94.0737605459999, + 16.14093659100007 + ], + [ + -94.14244544199994, + 16.22675202000005 + ], + [ + -94.26671301999994, + 16.215277411000045 + ], + [ + -94.39928137899996, + 16.298610744000086 + ], + [ + -94.43651282499991, + 16.24555084800005 + ], + [ + -93.9638972649999, + 15.99750397300005 + ], + [ + -94.39220130099993, + 16.177679755000042 + ], + [ + -94.72240149599992, + 16.199652411000045 + ], + [ + -94.5808406239999, + 16.32648346600007 + ], + [ + -94.67003333199995, + 16.363836981000077 + ], + [ + -94.79312089799993, + 16.257635809000078 + ], + [ + -94.77269446499992, + 16.327175197000088 + ], + [ + -94.87865149599992, + 16.424627997000073 + ], + [ + -95.06383216099994, + 16.26825592700004 + ], + [ + -94.83409583199995, + 16.285549221000053 + ], + [ + -94.93032792899993, + 16.243963934000078 + ], + [ + -94.76695716099994, + 16.19867584800005 + ], + [ + -95.14930138599993, + 16.18695203100009 + ], + [ + -95.4344782519999, + 15.975379910000072 + ], + [ + -95.95988243199992, + 15.827913833000082 + ], + [ + -96.23663683099994, + 15.683330152000053 + ], + [ + -96.55603842599993, + 15.659025170000064 + ], + [ + -97.26602459299994, + 15.935911607000037 + ], + [ + -97.77271899599992, + 15.979454108000084 + ], + [ + -98.1721492179999, + 16.20917389500005 + ], + [ + -98.06847083199995, + 16.202337958000044 + ], + [ + -98.5528473139999, + 16.31474962900006 + ], + [ + -98.7768980589999, + 16.555134748000057 + ], + [ + -98.90698576199992, + 16.534790358000066 + ], + [ + -99.66328903099992, + 16.698163701000055 + ], + [ + -99.9916863169999, + 16.909736688000066 + ], + [ + -101.05902865899992, + 17.264237103000085 + ], + [ + -101.1822451779999, + 17.412536007000085 + ], + [ + -101.45577348299992, + 17.526338059000068 + ], + [ + -101.81106103499991, + 17.890259920000062 + ], + [ + -101.9898774799999, + 17.974750847000053 + ], + [ + -102.19062878299991, + 17.915988111000047 + ], + [ + -103.49839965599995, + 18.333482650000064 + ], + [ + -103.7001745789999, + 18.65432741400008 + ], + [ + -103.9799770269999, + 18.874937644000056 + ], + [ + -104.33166806799994, + 19.022256479000077 + ], + [ + -104.2996075079999, + 19.06575494100008 + ], + [ + -104.3543323269999, + 19.111912810000092 + ], + [ + -104.43954794399993, + 19.081607217000055 + ], + [ + -104.9936417309999, + 19.342189846000053 + ], + [ + -105.08771005999995, + 19.56107250100007 + ], + [ + -105.2507624989999, + 19.666083075000078 + ], + [ + -105.52562415299991, + 20.03192780200004 + ], + [ + -105.55894934799994, + 20.21820709800005 + ], + [ + -105.6986814249999, + 20.406910593000077 + ], + [ + -105.2436417309999, + 20.58356354400007 + ], + [ + -105.34152583699995, + 20.75463932200006 + ], + [ + -105.54489559599995, + 20.76809624000009 + ], + [ + -105.2343269399999, + 21.060965695000046 + ], + [ + -105.24313839699994, + 21.342063624000048 + ], + [ + -105.18663489499994, + 21.45339590100008 + ], + [ + -105.44841745499993, + 21.631031866000058 + ], + [ + -105.64877493599994, + 21.99232197000009 + ], + [ + -105.71666419199994, + 22.514186916000085 + ], + [ + -105.98412024599992, + 22.856756903000075 + ], + [ + -106.03197180899993, + 22.830104885000083 + ], + [ + -106.22032630099993, + 23.051947333000044 + ], + [ + -106.42979895699995, + 23.18512604400007 + ], + [ + -106.52281653599994, + 23.407538153000075 + ], + [ + -106.7932429679999, + 23.63235097900008 + ], + [ + -107.03587805899993, + 23.980780341000074 + ], + [ + -107.79967200399996, + 24.512152411000045 + ], + [ + -107.49803626199991, + 24.34393952000005 + ], + [ + -107.55329342399995, + 24.378078518000052 + ], + [ + -107.47826087099992, + 24.400091864000046 + ], + [ + -107.52969316299993, + 24.521918036000045 + ], + [ + -107.62413489499994, + 24.45848216400009 + ], + [ + -107.9368383449999, + 24.638820705000057 + ], + [ + -107.80650794199994, + 24.528957424000055 + ], + [ + -107.90855872299994, + 24.577866929000034 + ], + [ + -108.06029212099992, + 24.786444403000075 + ], + [ + -107.97887122299994, + 24.756984768000052 + ], + [ + -107.98521887899996, + 24.953436591000074 + ], + [ + -108.04869544199994, + 25.00145091400009 + ], + [ + -108.04112708199995, + 24.838364976000037 + ], + [ + -108.08763587099992, + 24.823146877000056 + ], + [ + -108.32787024599992, + 25.11115143400008 + ], + [ + -108.18325761599993, + 24.981390692000048 + ], + [ + -108.13060462099992, + 24.97679271000004 + ], + [ + -108.1367895169999, + 25.05996328300006 + ], + [ + -108.00352942599993, + 25.03143952000005 + ], + [ + -108.21800696499992, + 25.173163153000075 + ], + [ + -108.35179602799991, + 25.16950104400007 + ], + [ + -108.3613988919999, + 25.26935455900008 + ], + [ + -108.39924068899991, + 25.14524974200009 + ], + [ + -108.4350479809999, + 25.26080963700008 + ], + [ + -108.7319229809999, + 25.35814036700009 + ], + [ + -108.59414628799993, + 25.351304429000034 + ], + [ + -108.76573645699995, + 25.380926825000078 + ], + [ + -108.76895097599994, + 25.540187893000052 + ], + [ + -108.89631100199995, + 25.560248114000046 + ], + [ + -108.92967688699991, + 25.46637604400007 + ], + [ + -109.11611894399994, + 25.536322333000044 + ], + [ + -109.05776933499993, + 25.58466217700004 + ], + [ + -108.98045813699991, + 25.544623114000046 + ], + [ + -108.83804277299993, + 25.804632880000042 + ], + [ + -109.06212317599993, + 25.590277411000045 + ], + [ + -109.25015214799993, + 25.68618398600006 + ], + [ + -109.15648352799991, + 25.556789455000057 + ], + [ + -109.22752844999991, + 25.628648179000034 + ], + [ + -109.41030839799993, + 25.646144924000055 + ], + [ + -109.28685462099992, + 25.710679429000034 + ], + [ + -109.37804114499994, + 25.761786200000078 + ], + [ + -109.41030839799993, + 25.693304755000042 + ], + [ + -109.43325761599993, + 26.02167389500005 + ], + [ + -109.26219641799992, + 26.30410390800006 + ], + [ + -109.27281653599994, + 26.168036200000078 + ], + [ + -109.21666419199994, + 26.34398021000004 + ], + [ + -109.10936438699991, + 26.216457424000055 + ], + [ + -109.08824622299994, + 26.29043203300006 + ], + [ + -109.18443762899996, + 26.378566799000055 + ], + [ + -109.24962317599993, + 26.334458726000037 + ], + [ + -109.25572669199994, + 26.497992255000042 + ], + [ + -109.48275263599993, + 26.682211429000063 + ], + [ + -109.42852177499992, + 26.671851485000047 + ], + [ + -109.48342848399996, + 26.742640547000065 + ], + [ + -109.55278809599992, + 26.71701042500007 + ], + [ + -109.49439100299992, + 26.669173329000046 + ], + [ + -109.78457597599994, + 26.71942780200004 + ], + [ + -109.96617591099994, + 27.10887278900009 + ], + [ + -110.2876215799999, + 27.148393774000056 + ], + [ + -110.52232942199991, + 27.290354190000073 + ], + [ + -110.4256279669999, + 27.30190561900008 + ], + [ + -110.49966386599993, + 27.393377997000073 + ], + [ + -110.55093339799993, + 27.377386786000045 + ], + [ + -110.62710096099994, + 27.641099162000042 + ], + [ + -110.54808508999992, + 27.74282461100006 + ], + [ + -110.60952714799993, + 27.824774481000077 + ], + [ + -110.51329505099993, + 27.873195705000057 + ], + [ + -110.8491104809999, + 27.906683661000045 + ], + [ + -110.83885657499991, + 27.989406643000052 + ], + [ + -110.8863012359999, + 27.83885325700004 + ], + [ + -110.99925696499992, + 27.964056708000044 + ], + [ + -111.10502524999993, + 27.935372175000055 + ], + [ + -111.33264827199991, + 28.160407105000047 + ], + [ + -111.43814042899993, + 28.387111721000053 + ], + [ + -111.70835409699993, + 28.460141185000055 + ], + [ + -111.94937979899991, + 28.756513934000058 + ], + [ + -111.86705481699994, + 28.74957916900007 + ], + [ + -111.86823482999995, + 28.803127346000053 + ], + [ + -112.16650771699994, + 28.966725705000044 + ], + [ + -112.23945332799991, + 29.31533664600005 + ], + [ + -112.41122409299993, + 29.344728143000054 + ], + [ + -112.37775381199992, + 29.485729055000036 + ], + [ + -112.66945523099992, + 29.89762272300004 + ], + [ + -112.74628702099993, + 29.91046545200004 + ], + [ + -112.76429326199991, + 30.211519729000088 + ], + [ + -112.8607896609999, + 30.268998923000083 + ], + [ + -112.8706762359999, + 30.428534247000073 + ], + [ + -113.0798948549999, + 30.670441074000053 + ], + [ + -113.12884060399995, + 30.812439603000087 + ], + [ + -113.13096083199991, + 31.06498964700006 + ], + [ + -113.08318710399993, + 30.98940785800005 + ], + [ + -113.05589758999992, + 31.03070709800005 + ], + [ + -113.09174437099995, + 31.20215244700006 + ], + [ + -113.23289954299992, + 31.288031317000048 + ], + [ + -113.27599036399994, + 31.278265692000048 + ], + [ + -113.24144437899992, + 31.24123975400005 + ], + [ + -113.62226888899994, + 31.325583966000067 + ], + [ + -113.65957666299994, + 31.497539584000037 + ], + [ + -113.97769120999993, + 31.66307200700004 + ], + [ + -113.95099850199995, + 31.568019924000055 + ], + [ + -114.02894224699992, + 31.491539208000063 + ], + [ + -114.20888787799991, + 31.512283403000083 + ], + [ + -115.02944902299993, + 31.97093333500004 + ], + [ + -114.83503170499989, + 31.801906643000052 + ], + [ + -114.78062903599994, + 31.65582916900007 + ], + [ + -114.85291027199992, + 31.52660633700009 + ], + [ + -114.88404305299991, + 31.120715433000044 + ], + [ + -114.71045177299993, + 30.918416053000044 + ], + [ + -114.69847440399991, + 30.63721156300005 + ], + [ + -114.63059863899991, + 30.49487410300009 + ], + [ + -114.66573313099991, + 30.19956817600007 + ], + [ + -114.5331320869999, + 29.967950990000077 + ], + [ + -114.42771934599995, + 29.90729511400008 + ], + [ + -114.38125128399992, + 29.774451764000048 + ], + [ + -114.20848461399994, + 29.744775323000056 + ], + [ + -113.63633087599993, + 29.28217876100007 + ], + [ + -113.5248536869999, + 28.891565685000042 + ], + [ + -113.4346645949999, + 28.95987356200004 + ], + [ + -113.3544759259999, + 28.80027413600004 + ], + [ + -113.22026346799991, + 28.82484253800004 + ], + [ + -113.10297024099992, + 28.504583284000034 + ], + [ + -112.84630402399995, + 28.441077049000057 + ], + [ + -112.87212638099993, + 28.28373952800007 + ], + [ + -112.78645579599991, + 28.196077404000054 + ], + [ + -112.80540930899993, + 28.032049872000073 + ], + [ + -112.7035312829999, + 27.754959928000066 + ], + [ + -112.35471357299993, + 27.547323351000045 + ], + [ + -112.16494706899994, + 27.166815497000073 + ], + [ + -111.95037230399991, + 27.09327554400005 + ], + [ + -112.0171606109999, + 26.97850169500009 + ], + [ + -111.87071692599993, + 26.828070380000042 + ], + [ + -111.90011415599992, + 26.714559432000044 + ], + [ + -111.78427506899993, + 26.57179580600007 + ], + [ + -111.67679283899992, + 26.581858923000084 + ], + [ + -111.8145847749999, + 26.714577386000087 + ], + [ + -111.81807339699992, + 26.89623316400008 + ], + [ + -111.56005494199991, + 26.695653004000064 + ], + [ + -111.56477159499991, + 26.558000735000064 + ], + [ + -111.44223803999989, + 26.51752600000009 + ], + [ + -111.4688668149999, + 26.41950369300008 + ], + [ + -111.32203732499994, + 26.098183177000067 + ], + [ + -111.36025956899994, + 25.964097398000035 + ], + [ + -111.3071159779999, + 25.779207115000077 + ], + [ + -111.12389617899991, + 25.53032225600009 + ], + [ + -111.01925629199991, + 25.51524993700008 + ], + [ + -110.90445065999988, + 25.14301275500009 + ], + [ + -110.75779051099994, + 25.012238703000037 + ], + [ + -110.6569723799999, + 24.80691821700009 + ], + [ + -110.73931361899992, + 24.621252694000077 + ], + [ + -110.68184913499994, + 24.36065965700004 + ], + [ + -110.56235863899991, + 24.212502865000086 + ], + [ + -110.32519519399995, + 24.175709083000072 + ], + [ + -110.4324285859999, + 24.17361708100009 + ], + [ + -110.4168366209999, + 24.108575691000055 + ], + [ + -110.3061342499999, + 24.176715521000062 + ], + [ + -110.33247026099993, + 24.32879474400005 + ], + [ + -110.24619986599993, + 24.350445393000086 + ], + [ + -110.00698532699994, + 24.158826143000056 + ], + [ + -109.98765183599994, + 24.04631887700009 + ], + [ + -109.82828804299993, + 24.062799557000066 + ], + [ + -109.83732193999992, + 23.93808667600007 + ], + [ + -109.69844281799993, + 23.79842815700005 + ], + [ + -109.69632063199992, + 23.66552013800009 + ], + [ + -109.46801587899989, + 23.555138226000054 + ], + [ + -109.41362465499992, + 23.391696740000043 + ], + [ + -109.45383763699994, + 23.202270627000075 + ], + [ + -109.8510636059999, + 22.89996979400007 + ], + [ + -109.97843141399994, + 22.881775402000073 + ], + [ + -110.09837991099994, + 23.01756239900004 + ], + [ + -110.1672598529999, + 23.321086283000056 + ], + [ + -110.3073623439999, + 23.54103237000004 + ], + [ + -110.64751766499988, + 23.733900839000057 + ], + [ + -111.03971426899996, + 24.10418492000008 + ], + [ + -111.44444475799992, + 24.324391423000066 + ], + [ + -111.35974875599993, + 24.290321719000076 + ], + [ + -111.59557761799994, + 24.44223530100004 + ], + [ + -111.67903001899992, + 24.586333593000063 + ], + [ + -111.81290810099995, + 24.505879613000047 + ], + [ + -111.9956762359999, + 24.865790106000077 + ], + [ + -111.96670488199993, + 24.744208075000078 + ], + [ + -112.02525794199994, + 24.755560614000046 + ], + [ + -112.03563391799992, + 24.840399481000077 + ], + [ + -112.04305371299989, + 24.75346589800006 + ], + [ + -112.08804277299993, + 24.773382880000042 + ], + [ + -112.10417080699995, + 25.00787267900006 + ], + [ + -112.15583112999991, + 24.87543776700005 + ], + [ + -112.08309751199994, + 25.44399540200004 + ], + [ + -112.03077844599994, + 25.473614549000047 + ], + [ + -112.08445012599992, + 25.481021014000078 + ], + [ + -112.08144967899995, + 25.72068166100007 + ], + [ + -112.10409033099988, + 25.504153664000057 + ], + [ + -112.10871238399993, + 25.784145291000073 + ], + [ + -112.17894196299994, + 25.95517483200007 + ], + [ + -112.37905839799993, + 26.22028229400007 + ], + [ + -112.68911699099993, + 26.322739976000037 + ], + [ + -113.00365149599992, + 26.549750067000048 + ], + [ + -113.11904863199993, + 26.794094143000052 + ], + [ + -113.21580969999991, + 26.744452216000074 + ], + [ + -113.23814856699994, + 26.78660716400009 + ], + [ + -113.1245824859999, + 26.88629791900007 + ], + [ + -113.14574133999992, + 26.97011953300006 + ], + [ + -113.27054400299994, + 26.75247404000004 + ], + [ + -113.47098648399992, + 26.804554152000037 + ], + [ + -113.54296596799992, + 26.71919600700005 + ], + [ + -113.63713767599988, + 26.725530915000036 + ], + [ + -113.81638813799992, + 26.94896938800008 + ], + [ + -114.0051977199999, + 26.977443752000056 + ], + [ + -114.1819555329999, + 27.13963450700004 + ], + [ + -114.43514318399993, + 27.176367458000072 + ], + [ + -114.50646073799993, + 27.406184127000078 + ], + [ + -114.73422912699994, + 27.521251508000034 + ], + [ + -114.86156165299991, + 27.689886786000045 + ], + [ + -115.02268426599994, + 27.740290592000065 + ], + [ + -115.08382347999992, + 27.85105403800009 + ], + [ + -114.49905714399995, + 27.77407148100008 + ], + [ + -114.31627356699994, + 27.874701239000046 + ], + [ + -114.28237870999993, + 27.73582591400009 + ], + [ + -114.10293535099994, + 27.601874091000074 + ], + [ + -114.07485917899993, + 27.690375067000048 + ], + [ + -113.95327714799993, + 27.65566640800006 + ], + [ + -113.91856848899994, + 27.719305731000077 + ], + [ + -114.05915279899995, + 27.801174221000053 + ], + [ + -114.05174719999991, + 27.72011953300006 + ], + [ + -114.14098059799994, + 27.730861721000053 + ], + [ + -114.15343176999994, + 27.945013739000046 + ], + [ + -114.27645156699992, + 27.901147773000048 + ], + [ + -114.13438880099993, + 28.083929755000042 + ], + [ + -114.10640219099992, + 27.927951567000036 + ], + [ + -114.1212235779999, + 28.022984960000088 + ], + [ + -114.03973636199994, + 28.027729815000043 + ], + [ + -114.09966733699991, + 28.055064041000037 + ], + [ + -114.05748450399996, + 28.206284898000035 + ], + [ + -114.12488288899993, + 28.25572503500007 + ], + [ + -114.06822669199994, + 28.518011786000045 + ], + [ + -114.97203528599994, + 29.377752997000073 + ], + [ + -115.18712317599993, + 29.428615627000056 + ], + [ + -115.69756432999992, + 29.755825783000034 + ], + [ + -115.69989884299991, + 29.89801384900005 + ], + [ + -115.81118730399993, + 29.968003648000035 + ], + [ + -115.83730300899992, + 30.346467032000074 + ], + [ + -115.97541256399991, + 30.401271877000056 + ], + [ + -115.93382727799991, + 30.449652411000045 + ], + [ + -115.98908443899991, + 30.49746328300006 + ], + [ + -116.00454898599992, + 30.359164572000054 + ], + [ + -116.04925400199994, + 30.47959301600008 + ], + [ + -116.0579320949999, + 30.802476304000034 + ], + [ + -116.24974524599992, + 30.956773179000034 + ], + [ + -116.3354458209999, + 30.956339556000042 + ], + [ + -116.34154212099992, + 31.219549872000073 + ], + [ + -116.67560787699995, + 31.55263906500005 + ], + [ + -116.64806067599993, + 31.65916575700004 + ], + [ + -116.7503808049999, + 31.752360311000075 + ], + [ + -116.64362545499989, + 31.73427969000005 + ], + [ + -116.61181856499991, + 31.842879924000044 + ], + [ + -116.84227454299992, + 31.98651764500005 + ], + [ + -116.92267818899991, + 32.21938711100006 + ], + [ + -117.0249731109999, + 32.27692291900007 + ], + [ + -117.10036422004929, + 32.5 + ], + [ + -117.3, + 32.5 + ], + [ + -117.3, + 10.4 + ], + [ + -85.82650776434276, + 10.4 + ] + ], + [ + [ + -110.94591223899994, + 18.799994208000044 + ], + [ + -110.92430579299992, + 18.727362372000073 + ], + [ + -111.06725012899996, + 18.768744208000044 + ], + [ + -111.00055904899995, + 18.86823151200008 + ], + [ + -110.94591223899994, + 18.799994208000044 + ] + ], + [ + [ + -106.40421775099992, + 21.483885817000044 + ], + [ + -106.3870980609999, + 21.42063577600004 + ], + [ + -106.49261366699993, + 21.46900464500004 + ], + [ + -106.40421775099992, + 21.483885817000044 + ] + ], + [ + [ + -106.51235262799992, + 21.59703438200006 + ], + [ + -106.5323609699999, + 21.541629253000053 + ], + [ + -106.63115564399993, + 21.600860513000043 + ], + [ + -106.6608476159999, + 21.69306395500007 + ], + [ + -106.54800391099991, + 21.668545934000065 + ], + [ + -106.51235262799992, + 21.59703438200006 + ] + ], + [ + [ + -87.62230383999992, + 13.368882554000038 + ], + [ + -87.57079016799992, + 13.372015692000048 + ], + [ + -87.5912979809999, + 13.304388739000046 + ], + [ + -87.65900631399991, + 13.331691799000055 + ], + [ + -87.62230383999992, + 13.368882554000038 + ] + ], + [ + [ + -109.83574974399994, + 24.22465432900009 + ], + [ + -109.80286510999991, + 24.137062296000067 + ], + [ + -109.90043209999993, + 24.199240808000074 + ], + [ + -109.9332203749999, + 24.374414236000064 + ], + [ + -109.83574974399994, + 24.22465432900009 + ] + ], + [ + [ + -111.56163489499994, + 24.378078518000052 + ], + [ + -111.4629578979999, + 24.329770950000068 + ], + [ + -111.67325405399993, + 24.358400544000062 + ], + [ + -111.56163489499994, + 24.378078518000052 + ] + ], + [ + [ + -111.7534887359999, + 24.446966864000046 + ], + [ + -111.70811069699994, + 24.29985435800006 + ], + [ + -112.00684372499991, + 24.51440004200009 + ], + [ + -111.86439535399991, + 24.52047869100005 + ], + [ + -111.7534887359999, + 24.446966864000046 + ] + ], + [ + [ + -110.32494055899993, + 24.51585521000004 + ], + [ + -110.28786260899996, + 24.469741671000065 + ], + [ + -110.34804007899993, + 24.402450981000072 + ], + [ + -110.4157449729999, + 24.56960144800007 + ], + [ + -110.32494055899993, + 24.51585521000004 + ] + ], + [ + [ + -112.15839272436294, + 24.73191296115504 + ], + [ + -112.10348531499993, + 24.617166414000053 + ], + [ + -112.05990735599994, + 24.54060257800006 + ], + [ + -112.17634372899994, + 24.65356228800005 + ], + [ + -112.15839272436294, + 24.73191296115504 + ] + ], + [ + [ + -110.71079188599992, + 25.095047107000084 + ], + [ + -110.5749164689999, + 25.015727364000043 + ], + [ + -110.52492856899994, + 24.880000918000064 + ], + [ + -110.64231341499993, + 24.914497534000077 + ], + [ + -110.71079188599992, + 25.095047107000084 + ] + ], + [ + [ + -112.16539292282533, + 24.746542108883517 + ], + [ + -112.30459550699993, + 24.792181708000044 + ], + [ + -112.12532590599993, + 25.26583348200006 + ], + [ + -112.21371500299995, + 24.84752651000008 + ], + [ + -112.16539292282533, + 24.746542108883517 + ] + ], + [ + [ + -108.8316137359999, + 25.42641836100006 + ], + [ + -108.78652910099994, + 25.38544342700004 + ], + [ + -109.01309160099994, + 25.446926174000055 + ], + [ + -108.8316137359999, + 25.42641836100006 + ] + ], + [ + [ + -111.0811938309999, + 25.998658402000046 + ], + [ + -111.2049908329999, + 25.80375425200009 + ], + [ + -111.17602678499992, + 26.04334152800004 + ], + [ + -111.05636947499994, + 26.071817312000064 + ], + [ + -111.0811938309999, + 25.998658402000046 + ] + ], + [ + [ + -110.60417602399993, + 27.318023509000056 + ], + [ + -110.59308971299993, + 27.416985674000045 + ], + [ + -110.53434219499991, + 27.28435668200007 + ], + [ + -110.60417602399993, + 27.318023509000056 + ] + ], + [ + [ + -115.19497965599993, + 28.341358253000067 + ], + [ + -115.1558288139999, + 28.140779932000044 + ], + [ + -115.22814296399991, + 28.028322673000048 + ], + [ + -115.35805203099994, + 28.082578651000063 + ], + [ + -115.23975583999993, + 28.233606330000043 + ], + [ + -115.24864245299995, + 28.359315181000056 + ], + [ + -115.19497965599993, + 28.341358253000067 + ] + ], + [ + [ + -112.61315004699992, + 28.725762994000036 + ], + [ + -112.5479570249999, + 28.72854947500008 + ], + [ + -112.55393926599993, + 28.672288046000062 + ], + [ + -112.61315004699992, + 28.725762994000036 + ] + ], + [ + [ + -112.27465689899992, + 28.768387890000042 + ], + [ + -112.5830330099999, + 28.87536288800004 + ], + [ + -112.4859106109999, + 28.971625067000048 + ], + [ + -112.46471106699994, + 29.18183014500005 + ], + [ + -112.26433722299991, + 29.24689047800007 + ], + [ + -112.19560606599993, + 29.021329787000074 + ], + [ + -112.27465689899992, + 28.768387890000042 + ] + ], + [ + [ + -113.1381729809999, + 29.064886786000045 + ], + [ + -113.1147917589999, + 28.984477801000082 + ], + [ + -113.49608030899992, + 29.28520104000006 + ], + [ + -113.58910418499994, + 29.409598965000043 + ], + [ + -113.57114440599992, + 29.53994964600008 + ], + [ + -113.3951604749999, + 29.45931768400004 + ], + [ + -113.37028713599996, + 29.310008921000076 + ], + [ + -113.1685245029999, + 29.276117742000054 + ], + [ + -113.1381729809999, + 29.064886786000045 + ] + ], + [ + [ + -114.78612219999991, + 31.803045966000074 + ], + [ + -114.65269934799994, + 31.689764716000074 + ], + [ + -114.76256262899996, + 31.715643622000073 + ], + [ + -114.78612219999991, + 31.803045966000074 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.57707632651822, + 10.4 + ], + [ + -75.50514028171968, + 10.484923959488452 + ], + [ + -75.52452551999994, + 10.567084052000043 + ], + [ + -75.5, + 10.592102946674428 + ], + [ + -75.5, + 19.91267774263712 + ], + [ + -76.20225989499994, + 19.992336330000057 + ], + [ + -77.70604407499991, + 19.830023505000042 + ], + [ + -77.73599199099993, + 19.874172268000052 + ], + [ + -77.58641516799992, + 20.08852773600006 + ], + [ + -77.11343339799993, + 20.368475653000075 + ], + [ + -77.08242753799993, + 20.465277411000045 + ], + [ + -77.23989824099993, + 20.563055731000077 + ], + [ + -77.19542395699995, + 20.63654205900008 + ], + [ + -77.34312903599994, + 20.718491929000034 + ], + [ + -78.06554114499994, + 20.71165599200009 + ], + [ + -78.48790442599993, + 21.03856028900009 + ], + [ + -78.53819739499994, + 21.231634833000044 + ], + [ + -78.49819902299993, + 21.269964911000045 + ], + [ + -78.74461829299992, + 21.63654205900008 + ], + [ + -79.20889238199993, + 21.548488674000055 + ], + [ + -79.65208899599992, + 21.691717841000074 + ], + [ + -79.85081946499992, + 21.680080471000053 + ], + [ + -79.89537512899996, + 21.75999583500004 + ], + [ + -80.0032445949999, + 21.72089264500005 + ], + [ + -80.44810950399996, + 22.05027903900009 + ], + [ + -80.38878333199995, + 22.082180080000057 + ], + [ + -80.4844457669999, + 22.19204336100006 + ], + [ + -80.53823808499993, + 22.164455471000053 + ], + [ + -80.4707738919999, + 22.04120514500005 + ], + [ + -81.08844967399995, + 22.08584219000005 + ], + [ + -81.19395911399994, + 22.281561591000074 + ], + [ + -81.20470130099993, + 22.060288804000034 + ], + [ + -81.23912512899996, + 22.15106842700004 + ], + [ + -81.33788001199991, + 22.089016018000052 + ], + [ + -81.5235082669999, + 22.205023505000042 + ], + [ + -81.82445227799991, + 22.18891022300005 + ], + [ + -82.16397050699993, + 22.396877346000053 + ], + [ + -81.6515626449999, + 22.487827104000075 + ], + [ + -81.6432550039999, + 22.57273673600008 + ], + [ + -81.87750093499993, + 22.679730389000046 + ], + [ + -82.75987708199995, + 22.705959377000056 + ], + [ + -83.41547243699995, + 22.186093371000084 + ], + [ + -83.57542883999992, + 22.246649481000077 + ], + [ + -83.67100989499994, + 22.171535549000055 + ], + [ + -83.92544511599993, + 22.171535549000055 + ], + [ + -84.02940833199995, + 21.919867255000042 + ], + [ + -84.24014238199993, + 21.91083405200004 + ], + [ + -84.50837154899995, + 21.766831773000035 + ], + [ + -84.4961645169999, + 21.93378327000005 + ], + [ + -84.8399145169999, + 21.82290273600006 + ], + [ + -84.94961503799993, + 21.87677643400008 + ], + [ + -84.52135169199994, + 22.048041083000044 + ], + [ + -84.2885636059999, + 22.020697333000044 + ], + [ + -84.27432206899994, + 22.07599518400008 + ], + [ + -84.30817623599995, + 22.03668854400007 + ], + [ + -84.44566809799994, + 22.205023505000042 + ], + [ + -84.21288001199991, + 22.58307526200008 + ], + [ + -84.1446020169999, + 22.56940338700008 + ], + [ + -84.02110755099993, + 22.678656317000048 + ], + [ + -84.04800370999993, + 22.71824778900009 + ], + [ + -83.98403886599993, + 22.68707916900007 + ], + [ + -83.53498287699995, + 22.877020575000078 + ], + [ + -83.39346269399994, + 22.876898505000042 + ], + [ + -83.22618567599993, + 23.00185781500005 + ], + [ + -83.1694229809999, + 22.930121161000045 + ], + [ + -83.06114661399994, + 23.019598700000078 + ], + [ + -82.96422278599994, + 22.97288646000004 + ], + [ + -82.91759192599993, + 23.032456773000035 + ], + [ + -82.5755102199999, + 23.054022528000075 + ], + [ + -82.21934973899994, + 23.194240627000056 + ], + [ + -81.58116614499994, + 23.15778229400007 + ], + [ + -81.5287979809999, + 23.047186591000074 + ], + [ + -81.14915930899993, + 23.21238841400009 + ], + [ + -81.28628495999993, + 23.130519924000055 + ], + [ + -81.14915930899993, + 23.034898179000034 + ], + [ + -81.03990637899996, + 23.110663153000075 + ], + [ + -80.95938066299993, + 23.059027411000045 + ], + [ + -80.66315670499995, + 23.089544989000046 + ], + [ + -80.60985266799992, + 23.15818919500009 + ], + [ + -80.55679277299993, + 23.00739166900007 + ], + [ + -80.43150794199994, + 22.94993724200009 + ], + [ + -80.24669348899994, + 22.911037502000056 + ], + [ + -80.0462133449999, + 22.95917389500005 + ], + [ + -79.91649329299992, + 22.849310614000046 + ], + [ + -79.79295813699991, + 22.897772528000075 + ], + [ + -79.85716712099992, + 22.820705471000053 + ], + [ + -79.65172278599994, + 22.75877513200004 + ], + [ + -79.6270238919999, + 22.657497463000084 + ], + [ + -79.34178626199991, + 22.41315338700008 + ], + [ + -78.78184973899994, + 22.39061107000009 + ], + [ + -78.73460852799991, + 22.31622955900008 + ], + [ + -78.70807857999995, + 22.38690827000005 + ], + [ + -78.06505286399994, + 22.08698151200008 + ], + [ + -77.88805091099994, + 21.86985911700009 + ], + [ + -77.86009680899993, + 21.966131903000075 + ], + [ + -77.8061417309999, + 21.966131903000075 + ], + [ + -77.84854081899994, + 21.910589911000045 + ], + [ + -77.75157630099993, + 21.804632880000042 + ], + [ + -77.45563717399995, + 21.77684153900009 + ], + [ + -77.43028723899994, + 21.65761953300006 + ], + [ + -77.3471573559999, + 21.638617255000042 + ], + [ + -77.44880123599995, + 21.801906643000052 + ], + [ + -77.61432857999995, + 21.88418203300006 + ], + [ + -77.55601966099994, + 21.928534247000073 + ], + [ + -77.13394120999993, + 21.664455471000053 + ], + [ + -77.15440833199995, + 21.55459219000005 + ], + [ + -77.36424719999991, + 21.611761786000045 + ], + [ + -77.25511633999992, + 21.56745026200008 + ], + [ + -77.25804602799991, + 21.47638580900008 + ], + [ + -77.16185462099992, + 21.480129299000055 + ], + [ + -77.08828691299993, + 21.60618724200009 + ], + [ + -76.81175696499992, + 21.39752838700008 + ], + [ + -76.88727779899995, + 21.30735911700009 + ], + [ + -76.80557206899994, + 21.39008209800005 + ], + [ + -76.67149817599993, + 21.355943101000037 + ], + [ + -76.63658606699994, + 21.32135651200008 + ], + [ + -76.73468990799995, + 21.285549221000053 + ], + [ + -76.61314856699994, + 21.24673086100006 + ], + [ + -76.65355383999992, + 21.294134833000044 + ], + [ + -76.54491126199991, + 21.287665106000077 + ], + [ + -76.61314856699994, + 21.22557200700004 + ], + [ + -76.53746497299994, + 21.18463776200008 + ], + [ + -76.45612545499995, + 21.22557200700004 + ], + [ + -76.52554277299993, + 21.282049872000073 + ], + [ + -76.38756262899996, + 21.284328518000052 + ], + [ + -76.0371801419999, + 21.074774481000077 + ], + [ + -75.70400956899994, + 21.11896393400008 + ], + [ + -75.57848059799994, + 21.013373114000046 + ], + [ + -75.64875240799995, + 20.89940013200004 + ], + [ + -75.74339758999992, + 20.88934967700004 + ], + [ + -75.55113684799994, + 20.821519273000035 + ], + [ + -75.77025305899993, + 20.83584219000005 + ], + [ + -75.78392493399993, + 20.746405341000074 + ], + [ + -75.72451738199993, + 20.69550202000005 + ], + [ + -75.63312740799995, + 20.780585028000075 + ], + [ + -75.55113684799994, + 20.684393622000073 + ], + [ + -75.5, + 20.687746195610185 + ], + [ + -75.5, + 20.743700556865146 + ], + [ + -75.57774817599993, + 20.76951732000009 + ], + [ + -75.5170792309999, + 20.794256903000075 + ], + [ + -75.5, + 20.76662756505294 + ], + [ + -75.5, + 24.14219542735877 + ], + [ + -75.50991777299993, + 24.14207591400009 + ], + [ + -75.5, + 24.155069247275012 + ], + [ + -75.5, + 24.373443941567004 + ], + [ + -75.75658118399993, + 24.660305080000057 + ], + [ + -75.73216712099992, + 24.69863515800006 + ], + [ + -75.62633216099994, + 24.645005601000037 + ], + [ + -75.53221594999991, + 24.44489166900007 + ], + [ + -75.5, + 24.411193279046493 + ], + [ + -75.5, + 32.5 + ], + [ + -80.30419403477185, + 32.5 + ], + [ + -80.32323157499991, + 32.48843008000006 + ], + [ + -80.35792176907223, + 32.5 + ], + [ + -80.57567629233344, + 32.5 + ], + [ + -80.47817949099993, + 32.47809479400007 + ], + [ + -80.58747311099995, + 32.45693594000005 + ], + [ + -80.45836341099994, + 32.423163153000075 + ], + [ + -80.54710852799991, + 32.34711334800005 + ], + [ + -80.42979895699995, + 32.409816799000055 + ], + [ + -80.55329342399995, + 32.27879466400009 + ], + [ + -80.63683020699995, + 32.266791083000044 + ], + [ + -80.65729732999995, + 32.46271393400008 + ], + [ + -80.6674698559999, + 32.30536530200004 + ], + [ + -80.75934811099995, + 32.36078522300005 + ], + [ + -80.78555253799993, + 32.49673086100006 + ], + [ + -80.79085905663877, + 32.5 + ], + [ + -80.84490019961312, + 32.5 + ], + [ + -80.79893958199995, + 32.31972890800006 + ], + [ + -80.67784583199995, + 32.21474844000005 + ], + [ + -80.82079016799992, + 32.10814036700009 + ], + [ + -80.78799394399994, + 32.23582591400009 + ], + [ + -80.89452063699991, + 32.05882396000004 + ], + [ + -80.83568274599992, + 32.00291575700004 + ], + [ + -80.93736731699994, + 31.97646719000005 + ], + [ + -80.95815995999993, + 31.879339911000045 + ], + [ + -81.11823482999995, + 31.90766022300005 + ], + [ + -81.14297441299993, + 31.85492584800005 + ], + [ + -81.03990637899996, + 31.826971747000073 + ], + [ + -81.1055395169999, + 31.742661851000037 + ], + [ + -81.27330481699994, + 31.76552969000005 + ], + [ + -81.19627844999991, + 31.717596747000073 + ], + [ + -81.33109136399992, + 31.552431020000085 + ], + [ + -81.32565726799993, + 31.34892851400008 + ], + [ + -81.49242102799991, + 31.367661851000037 + ], + [ + -81.26768958199995, + 31.258734442000048 + ], + [ + -81.38597571499992, + 31.141750393000052 + ], + [ + -81.45482337099992, + 31.206000067000048 + ], + [ + -81.49258378799993, + 31.113674221000053 + ], + [ + -81.40538489499994, + 31.09479401200008 + ], + [ + -81.42414303299995, + 31.025051174000055 + ], + [ + -81.51353919199994, + 31.09332916900007 + ], + [ + -81.45079505099993, + 31.021918036000045 + ], + [ + -81.51968339799993, + 30.976629950000078 + ], + [ + -81.45079505099993, + 30.96356842700004 + ], + [ + -81.53335527299993, + 30.85370514500005 + ], + [ + -81.49925696499992, + 30.704331773000035 + ], + [ + -81.42857825399996, + 30.681708075000078 + ], + [ + -81.43781490799995, + 30.52411530200004 + ], + [ + -81.48900305899993, + 30.62099844000005 + ], + [ + -81.50031490799995, + 30.551255601000037 + ], + [ + -81.40982011599993, + 30.45648834800005 + ], + [ + -81.29381262899996, + 29.89411041900007 + ], + [ + -80.92210852799991, + 29.068304755000042 + ], + [ + -80.61327081624793, + 28.601219621488 + ], + [ + -80.76593990799995, + 28.61229075700004 + ], + [ + -80.75234941299993, + 28.741929429000034 + ], + [ + -80.84813391799992, + 28.79059479400007 + ], + [ + -80.73827063699991, + 28.373480536000045 + ], + [ + -80.19701087099992, + 27.180487372000073 + ], + [ + -80.31432044199994, + 27.242580471000053 + ], + [ + -80.14879309799994, + 27.13825104400007 + ], + [ + -80.03823808499993, + 26.81118398600006 + ], + [ + -80.12877356699994, + 25.77529531500005 + ], + [ + -80.14061438699991, + 25.900824286000045 + ], + [ + -80.30687415299991, + 25.61823151200008 + ], + [ + -80.31432044199994, + 25.371161200000078 + ], + [ + -80.42300370999993, + 25.252386786000045 + ], + [ + -80.40249589799993, + 25.18622467700004 + ], + [ + -80.56550045499995, + 25.24599844000005 + ], + [ + -80.71092688699991, + 25.14524974200009 + ], + [ + -80.8549698559999, + 25.18622467700004 + ], + [ + -81.10195878799993, + 25.124741929000034 + ], + [ + -81.17711341099994, + 25.227769273000035 + ], + [ + -81.12995357999995, + 25.34446849200009 + ], + [ + -81.00576738199993, + 25.214178778000075 + ], + [ + -80.91722571499992, + 25.245754299000055 + ], + [ + -81.14134680899993, + 25.38475169500009 + ], + [ + -81.34845943899991, + 25.816839911000045 + ], + [ + -81.62271074099993, + 25.94717031500005 + ], + [ + -81.73200436099995, + 25.920477606000077 + ], + [ + -81.66437740799995, + 25.981350002000056 + ], + [ + -81.73167883999992, + 26.00063711100006 + ], + [ + -81.78722083199995, + 26.139593817000048 + ], + [ + -81.80089270699995, + 26.09861888200004 + ], + [ + -81.85594641799992, + 26.448879299000055 + ], + [ + -82.00865637899996, + 26.484523830000057 + ], + [ + -81.78038489499994, + 26.714992580000057 + ], + [ + -82.03905188699991, + 26.527899481000077 + ], + [ + -82.0969945949999, + 26.909369208000044 + ], + [ + -81.97838294199994, + 26.996161200000078 + ], + [ + -82.15518144399994, + 26.92763906500005 + ], + [ + -82.27383378799993, + 27.016017971000053 + ], + [ + -82.15025794199994, + 26.803168036000045 + ], + [ + -82.31383216099994, + 26.849351304000034 + ], + [ + -82.5618383449999, + 27.276271877000056 + ], + [ + -82.57363847599994, + 27.395086981000077 + ], + [ + -82.72915605399993, + 27.51471588700008 + ], + [ + -82.65746008999992, + 27.46165599200009 + ], + [ + -82.66075598899994, + 27.520331122000073 + ], + [ + -82.5891820949999, + 27.503241278000075 + ], + [ + -82.63695227799991, + 27.523749091000074 + ], + [ + -82.3899633449999, + 27.811102606000077 + ], + [ + -82.42174231699994, + 27.917181708000044 + ], + [ + -82.52708899599992, + 27.824774481000077 + ], + [ + -82.54112708199995, + 27.94277578300006 + ], + [ + -82.69098873599995, + 28.037665106000077 + ], + [ + -82.64439856699994, + 27.96873607000009 + ], + [ + -82.71886145699995, + 27.927801825000078 + ], + [ + -82.56187903599994, + 27.88617584800005 + ], + [ + -82.65404212099992, + 27.695054429000034 + ], + [ + -82.81509355399993, + 27.83222077000005 + ], + [ + -82.71886145699995, + 27.65965403900009 + ], + [ + -82.84239661399994, + 27.828517971000053 + ], + [ + -82.78734290299991, + 28.193752346000053 + ], + [ + -82.66421464799993, + 28.44794342700004 + ], + [ + -82.63194739499994, + 28.69529857000009 + ], + [ + -82.68472245999993, + 28.804836330000057 + ], + [ + -82.63011633999992, + 28.784369208000044 + ], + [ + -82.63361568899991, + 28.887640692000048 + ], + [ + -82.72716223899994, + 28.95917389500005 + ], + [ + -82.8008520169999, + 29.174750067000048 + ], + [ + -83.04067949099993, + 29.180121161000045 + ], + [ + -83.21568762899996, + 29.410589911000045 + ], + [ + -83.40477454299992, + 29.531683661000045 + ], + [ + -83.40892493399993, + 29.667303778000075 + ], + [ + -83.54381262899996, + 29.72809479400007 + ], + [ + -83.68057206899994, + 29.92129140800006 + ], + [ + -84.02403723899994, + 30.106594143000052 + ], + [ + -84.26065019399994, + 30.099554755000042 + ], + [ + -84.39102128799993, + 30.02448151200008 + ], + [ + -84.34630286399994, + 29.969875393000052 + ], + [ + -84.45352128799993, + 30.005194403000075 + ], + [ + -84.34300696499992, + 29.94676341400009 + ], + [ + -84.37734941299993, + 29.88735586100006 + ], + [ + -84.50837154899995, + 29.92206452000005 + ], + [ + -84.87535559799994, + 29.733221747000073 + ], + [ + -84.87328040299991, + 29.804632880000042 + ], + [ + -85.00426184799994, + 29.716009833000044 + ], + [ + -85.34609941299993, + 29.67837148600006 + ], + [ + -85.41348222599994, + 29.85138580900008 + ], + [ + -85.32054602799991, + 29.693304755000042 + ], + [ + -85.35651607999995, + 29.888739325000078 + ], + [ + -85.67955481699994, + 30.13434479400007 + ], + [ + -85.44237219999991, + 30.02016836100006 + ], + [ + -85.39500891799992, + 30.055568752000056 + ], + [ + -85.46206620999993, + 30.034898179000034 + ], + [ + -85.49461829299992, + 30.140570380000042 + ], + [ + -85.56969153599994, + 30.11391836100006 + ], + [ + -85.72052975199995, + 30.195786851000037 + ], + [ + -85.55549068899991, + 30.285142320000038 + ], + [ + -85.57697506399991, + 30.321193752000056 + ], + [ + -85.70864824099993, + 30.247015692000048 + ], + [ + -85.75470943899991, + 30.319281317000048 + ], + [ + -85.85435950399996, + 30.264837958000044 + ], + [ + -85.75597083199995, + 30.231594143000052 + ], + [ + -85.72052975199995, + 30.13434479400007 + ], + [ + -86.06598873599995, + 30.30605703300006 + ], + [ + -86.51089433499993, + 30.40761953300006 + ], + [ + -86.24193274599992, + 30.395005601000037 + ], + [ + -86.24815833199995, + 30.435980536000045 + ], + [ + -86.10777747299994, + 30.386704820000038 + ], + [ + -86.20714270699995, + 30.50486888200004 + ], + [ + -86.40835527299993, + 30.461411851000037 + ], + [ + -86.41266842399995, + 30.517971096000053 + ], + [ + -86.4883520169999, + 30.52411530200004 + ], + [ + -86.60228430899993, + 30.418280341000074 + ], + [ + -87.19408118399993, + 30.360296942000048 + ], + [ + -86.89240475199995, + 30.449652411000045 + ], + [ + -87.01353919199994, + 30.51129791900007 + ], + [ + -86.96068274599992, + 30.559515692000048 + ], + [ + -87.02961178299995, + 30.60732656500005 + ], + [ + -87.09292558499993, + 30.448919989000046 + ], + [ + -87.18057206899994, + 30.58466217700004 + ], + [ + -87.15680904899995, + 30.47451406500005 + ], + [ + -87.30654863199993, + 30.328558661000045 + ], + [ + -87.52920488199993, + 30.277736721000053 + ], + [ + -87.34561113199993, + 30.427679755000042 + ], + [ + -87.42682857999995, + 30.48314036700009 + ], + [ + -87.3920792309999, + 30.449652411000045 + ], + [ + -87.47370357999995, + 30.35919830900008 + ], + [ + -87.55719967399995, + 30.319281317000048 + ], + [ + -87.61180579299992, + 30.360296942000048 + ], + [ + -87.59015865799995, + 30.275376695000038 + ], + [ + -88.03014075399996, + 30.223781643000052 + ], + [ + -87.76423092399995, + 30.27952708500004 + ], + [ + -87.82127844999991, + 30.404689846000053 + ], + [ + -87.91136633999992, + 30.41356028900009 + ], + [ + -87.91246497299994, + 30.583726304000034 + ], + [ + -88.03014075399996, + 30.73769765800006 + ], + [ + -88.13768469999991, + 30.31976959800005 + ], + [ + -88.3354386059999, + 30.40387604400007 + ], + [ + -88.47057044199994, + 30.323879299000055 + ], + [ + -88.59121660099994, + 30.395005601000037 + ], + [ + -88.74205481699994, + 30.354071356000077 + ], + [ + -88.92764238199993, + 30.442206122000073 + ], + [ + -88.98228919199994, + 30.422308661000045 + ], + [ + -88.85936438699991, + 30.40810781500005 + ], + [ + -89.25348873599995, + 30.319281317000048 + ], + [ + -89.33193925699993, + 30.37714264500005 + ], + [ + -89.32054602799991, + 30.31207916900007 + ], + [ + -89.44253495999993, + 30.189764716000074 + ], + [ + -89.59593665299991, + 30.155910549000055 + ], + [ + -90.22240149599992, + 30.387600002000056 + ], + [ + -90.42845618399993, + 30.18895091400009 + ], + [ + -90.37999426999994, + 30.080389716000074 + ], + [ + -90.14517167899993, + 30.023830471000053 + ], + [ + -89.99644934799994, + 30.052435614000046 + ], + [ + -89.88044186099995, + 30.154852606000077 + ], + [ + -89.78880774599992, + 30.098863023000035 + ], + [ + -89.7363988919999, + 30.17527903900009 + ], + [ + -89.74323482999995, + 30.099554755000042 + ], + [ + -89.6811417309999, + 30.168524481000077 + ], + [ + -89.63955644399994, + 30.140570380000042 + ], + [ + -89.71792558499993, + 30.033270575000078 + ], + [ + -89.84040279899995, + 30.011419989000046 + ], + [ + -89.66454016799992, + 29.875474351000037 + ], + [ + -89.48623613199993, + 30.07636139500005 + ], + [ + -89.36603756399991, + 30.04865143400008 + ], + [ + -89.45470130099993, + 29.97638580900008 + ], + [ + -89.37022864499994, + 29.95075104400007 + ], + [ + -89.43472245999993, + 29.928900458000044 + ], + [ + -89.33169511599993, + 29.87986888200004 + ], + [ + -89.38011633999992, + 29.833319403000075 + ], + [ + -89.34532630099993, + 29.79169342700004 + ], + [ + -89.41364498599995, + 29.76439036700009 + ], + [ + -89.48253333199995, + 29.833319403000075 + ], + [ + -89.60147050699993, + 29.734849351000037 + ], + [ + -89.48253333199995, + 29.634100653000075 + ], + [ + -89.70225989499994, + 29.709784247000073 + ], + [ + -89.61969967399995, + 29.627264716000074 + ], + [ + -89.75690670499995, + 29.634100653000075 + ], + [ + -89.67804928299995, + 29.527899481000077 + ], + [ + -89.5235082669999, + 29.469631252000056 + ], + [ + -89.53986568899991, + 29.397772528000075 + ], + [ + -89.33678137899996, + 29.390570380000042 + ], + [ + -89.3809301419999, + 29.362941799000055 + ], + [ + -89.24445553299995, + 29.31598541900007 + ], + [ + -89.19709225199995, + 29.353461005000042 + ], + [ + -89.1126195949999, + 29.264146226000037 + ], + [ + -89.14736894399994, + 29.236802476000037 + ], + [ + -89.01016191299993, + 29.174750067000048 + ], + [ + -89.0969945949999, + 29.15961334800005 + ], + [ + -89.02318274599992, + 29.147406317000048 + ], + [ + -89.06480872299994, + 29.086004950000078 + ], + [ + -89.0989477199999, + 29.119533596000053 + ], + [ + -89.13365637899996, + 28.996242580000057 + ], + [ + -89.24767005099993, + 29.105902411000045 + ], + [ + -89.41364498599995, + 28.92837148600006 + ], + [ + -89.27619381399991, + 29.160101630000042 + ], + [ + -89.30435136599993, + 29.12693919500009 + ], + [ + -89.3217667309999, + 29.181952216000074 + ], + [ + -89.38365637899996, + 29.087836005000042 + ], + [ + -89.45518958199995, + 29.250474351000037 + ], + [ + -89.81814592099994, + 29.316159960000046 + ], + [ + -89.7438055799999, + 29.369842817000062 + ], + [ + -89.81631425699993, + 29.474351304000034 + ], + [ + -89.94163977799991, + 29.46442291900007 + ], + [ + -90.18203691299993, + 29.57949453300006 + ], + [ + -90.2102758449999, + 29.51512278900009 + ], + [ + -90.02375240799995, + 29.428615627000056 + ], + [ + -90.01756751199991, + 29.29828522300005 + ], + [ + -90.0950414699999, + 29.28384023600006 + ], + [ + -90.05109615799995, + 29.229396877000056 + ], + [ + -90.11388098899994, + 29.144191799000055 + ], + [ + -90.24404863199993, + 29.091498114000046 + ], + [ + -90.26081295499995, + 29.269476630000042 + ], + [ + -90.28746497299994, + 29.235174872000073 + ], + [ + -90.33910071499992, + 29.31126536700009 + ], + [ + -90.39370683499993, + 29.243068752000056 + ], + [ + -90.44424394399994, + 29.35765208500004 + ], + [ + -90.48306230399993, + 29.29083893400008 + ], + [ + -90.60277258999992, + 29.307562567000048 + ], + [ + -90.64073645699995, + 29.14061107000009 + ], + [ + -90.75796464799993, + 29.11591217700004 + ], + [ + -90.80524654899995, + 29.12693919500009 + ], + [ + -90.77725175699993, + 29.167914130000042 + ], + [ + -90.88402258999992, + 29.13377513200004 + ], + [ + -91.01549231699994, + 29.223537502000056 + ], + [ + -91.28514563699991, + 29.260891018000052 + ], + [ + -91.33967037699995, + 29.33926015800006 + ], + [ + -91.22297115799995, + 29.380194403000075 + ], + [ + -91.15404212099992, + 29.250474351000037 + ], + [ + -91.11310787699995, + 29.27098216400009 + ], + [ + -91.26256262899996, + 29.469061591000074 + ], + [ + -91.22838294199994, + 29.60805898600006 + ], + [ + -91.29865475199995, + 29.48383209800005 + ], + [ + -91.4290258449999, + 29.56582265800006 + ], + [ + -91.55931555899993, + 29.53847890800006 + ], + [ + -91.56078040299991, + 29.64248281500005 + ], + [ + -91.64415442599993, + 29.64516836100006 + ], + [ + -91.63792883999992, + 29.74209219000005 + ], + [ + -91.85846920499995, + 29.719061591000074 + ], + [ + -91.84752356699994, + 29.831244208000044 + ], + [ + -91.9844457669999, + 29.831976630000042 + ], + [ + -92.13463294199994, + 29.73615143400008 + ], + [ + -92.20238196499992, + 29.76439036700009 + ], + [ + -92.17227128799993, + 29.69550202000005 + ], + [ + -92.09996497299994, + 29.709784247000073 + ], + [ + -92.10741126199991, + 29.620428778000075 + ], + [ + -92.0248917309999, + 29.627264716000074 + ], + [ + -92.31430732699994, + 29.53436857400004 + ], + [ + -93.19959294999991, + 29.77281118800005 + ], + [ + -93.8310278269999, + 29.700134882000043 + ], + [ + -93.89369709399995, + 29.79081447300007 + ], + [ + -93.78194133199992, + 29.85651491100009 + ], + [ + -93.75995235399995, + 29.960576139000068 + ], + [ + -93.85407467399995, + 29.98655833500004 + ], + [ + -93.93811194999995, + 29.80590269000004 + ], + [ + -93.87580318899991, + 29.675034898000035 + ], + [ + -94.10195878799993, + 29.67059967700004 + ], + [ + -94.76276607999995, + 29.366522528000075 + ], + [ + -94.70099850199995, + 29.46279531500005 + ], + [ + -94.48595130099993, + 29.566107489000046 + ], + [ + -94.77905017199993, + 29.529876915000045 + ], + [ + -94.69274089399994, + 29.696340139000085 + ], + [ + -94.73405499899991, + 29.782240880000074 + ], + [ + -94.80674323599993, + 29.781989296000063 + ], + [ + -94.91959650099996, + 29.655327353000075 + ], + [ + -95.05228023199993, + 29.74974817000009 + ], + [ + -94.9858013839999, + 29.674985390000074 + ], + [ + -95.02391516799992, + 29.542181708000044 + ], + [ + -94.90779828199993, + 29.496309994000057 + ], + [ + -94.96507727799991, + 29.469631252000056 + ], + [ + -94.9429418609999, + 29.422023830000057 + ], + [ + -94.82111568899991, + 29.373968817000048 + ], + [ + -95.11587480399993, + 29.174750067000048 + ], + [ + -95.17052161399994, + 29.208929755000042 + ], + [ + -95.15892493399993, + 29.045721747000073 + ], + [ + -95.36774654899995, + 28.887152411000045 + ], + [ + -95.64488684799994, + 28.74591705900008 + ], + [ + -95.95197506399991, + 28.688706773000035 + ], + [ + -95.94017493399993, + 28.62571849200009 + ], + [ + -95.71922766799992, + 28.71548086100006 + ], + [ + -95.83714758999992, + 28.64647044500009 + ], + [ + -96.21886145699995, + 28.489488023000035 + ], + [ + -95.9877823559999, + 28.644842841000074 + ], + [ + -96.22647050699993, + 28.587144273000035 + ], + [ + -96.13687089799993, + 28.626654364000046 + ], + [ + -96.21544348899994, + 28.629380601000037 + ], + [ + -96.18805904899995, + 28.69086334800005 + ], + [ + -96.3457738919999, + 28.635321356000077 + ], + [ + -96.4448136059999, + 28.76386139500005 + ], + [ + -96.36969967399995, + 28.626654364000046 + ], + [ + -96.49323482999995, + 28.578924872000073 + ], + [ + -96.44713294199994, + 28.635646877000056 + ], + [ + -96.65086829299992, + 28.729722398000035 + ], + [ + -96.60863196499992, + 28.578924872000073 + ], + [ + -96.49323482999995, + 28.510646877000056 + ], + [ + -96.54759680899993, + 28.469305731000077 + ], + [ + -96.47350012899996, + 28.49355703300006 + ], + [ + -96.4037979809999, + 28.434881903000075 + ], + [ + -96.65371660099994, + 28.319484768000052 + ], + [ + -96.79332434799994, + 28.479722398000035 + ], + [ + -96.76695716099994, + 28.410711981000077 + ], + [ + -96.84447180899993, + 28.41559479400007 + ], + [ + -96.78233801999994, + 28.24160390800006 + ], + [ + -96.88023841099994, + 28.15062083500004 + ], + [ + -96.94505774599992, + 28.12645091400009 + ], + [ + -96.91030839799993, + 28.263617255000042 + ], + [ + -96.97301184799994, + 28.133937893000052 + ], + [ + -97.01398678299995, + 28.20897044500009 + ], + [ + -97.17324785099994, + 28.159002997000073 + ], + [ + -97.21751868399993, + 28.074774481000077 + ], + [ + -97.14907792899993, + 28.005519924000055 + ], + [ + -97.0210668609999, + 28.10032786700009 + ], + [ + -97.18407141799992, + 27.83661530200004 + ], + [ + -97.5210668609999, + 27.873195705000057 + ], + [ + -97.39073645699995, + 27.84589264500005 + ], + [ + -97.37181555899993, + 27.75531647300005 + ], + [ + -97.25959225199995, + 27.695054429000034 + ], + [ + -97.41120357999995, + 27.33502838700008 + ], + [ + -97.54157467399995, + 27.290350653000075 + ], + [ + -97.46129309799994, + 27.34365469000005 + ], + [ + -97.48692786399994, + 27.40021393400008 + ], + [ + -97.63023841099994, + 27.30023834800005 + ], + [ + -97.77428137899996, + 27.468491929000034 + ], + [ + -97.66763261599993, + 27.310858466000074 + ], + [ + -97.76056881399991, + 27.27912018400008 + ], + [ + -97.42609615799995, + 27.26365794500009 + ], + [ + -97.48070227799991, + 27.021958726000037 + ], + [ + -97.56281490799995, + 26.99371979400007 + ], + [ + -97.48131262899996, + 26.87763092700004 + ], + [ + -97.5484106109999, + 26.89988841400009 + ], + [ + -97.5620011059999, + 26.83787669500009 + ], + [ + -97.49303137899996, + 26.79173411700009 + ], + [ + -97.41860917899993, + 26.502020575000078 + ], + [ + -97.47264563699991, + 26.495835679000034 + ], + [ + -97.34019934799994, + 26.34162018400008 + ], + [ + -97.31053626199991, + 26.12327708500004 + ], + [ + -97.21198482999995, + 26.09121328300006 + ], + [ + -97.25560462099992, + 25.998928127000056 + ], + [ + -97.1518448559999, + 26.075018622000073 + ], + [ + -97.13752193899991, + 25.97451406500005 + ], + [ + -97.16515051999994, + 25.72333405200004 + ], + [ + -97.45897376199991, + 25.179388739000046 + ], + [ + -97.65143795499995, + 24.51585521000004 + ], + [ + -97.72520911399994, + 23.80565013200004 + ], + [ + -97.82209225199995, + 23.788397528000075 + ], + [ + -97.75885982999995, + 23.76902903900009 + ], + [ + -97.76060950399996, + 23.65192291900007 + ], + [ + -97.7222387359999, + 23.73932526200008 + ], + [ + -97.74233964799993, + 22.97207265800006 + ], + [ + -97.89321855399993, + 22.610256252000056 + ], + [ + -97.83429928299995, + 22.66974518400008 + ], + [ + -97.76060950399996, + 22.095851955000057 + ], + [ + -97.61046301999994, + 21.83576080900008 + ], + [ + -97.31623287699995, + 21.560939846000053 + ], + [ + -97.41230821755225, + 21.291081168777644 + ], + [ + -97.15054277299993, + 20.647040106000077 + ], + [ + -96.45612545499995, + 19.868801174000055 + ], + [ + -96.2903539699999, + 19.332586981000077 + ], + [ + -96.13194739499994, + 19.23590729400007 + ], + [ + -96.06143144399994, + 19.078517971000053 + ], + [ + -95.97716223899994, + 19.058254299000055 + ], + [ + -95.90355383999992, + 18.88190338700008 + ], + [ + -95.75275631399991, + 18.799994208000044 + ], + [ + -95.95885169199994, + 18.856390692000048 + ], + [ + -95.80736243399993, + 18.75214264500005 + ], + [ + -95.87303626199991, + 18.73786041900007 + ], + [ + -95.56834876199991, + 18.683294989000046 + ], + [ + -95.73281816299993, + 18.799994208000044 + ], + [ + -95.58360755099993, + 18.72166575700004 + ], + [ + -95.19005286399994, + 18.705145575000078 + ], + [ + -95.02424068899991, + 18.56403229400007 + ], + [ + -94.78693600199995, + 18.51194896000004 + ], + [ + -94.58088131399991, + 18.189846096000053 + ], + [ + -94.46694902299993, + 18.144232489000046 + ], + [ + -93.86148027299993, + 18.30654531500005 + ], + [ + -93.87828528599994, + 18.25690338700008 + ], + [ + -93.78111731699994, + 18.272772528000075 + ], + [ + -93.73859615799995, + 18.340643622000073 + ], + [ + -93.59284420499995, + 18.344956773000092 + ], + [ + -93.57640540299991, + 18.411851304000034 + ], + [ + -93.83958899599992, + 18.31854889500005 + ], + [ + -93.55235755099993, + 18.429388739000046 + ], + [ + -93.1557511059999, + 18.443060614000046 + ], + [ + -93.1284887359999, + 18.340643622000073 + ], + [ + -93.08836829299992, + 18.39276764500005 + ], + [ + -93.13760331899994, + 18.428859768000052 + ], + [ + -92.85573099599992, + 18.466046608000056 + ], + [ + -92.71690833199995, + 18.592189846000053 + ], + [ + -92.66909745999993, + 18.429388739000046 + ], + [ + -92.69587154899995, + 18.615627346000053 + ], + [ + -92.4051404139999, + 18.671062566000042 + ], + [ + -91.94806007299991, + 18.69122495000005 + ], + [ + -91.86656653599994, + 18.59837474200009 + ], + [ + -91.95018469999991, + 18.62954336100006 + ], + [ + -92.0528051419999, + 18.54669830900008 + ], + [ + -91.88829505099993, + 18.50576406500005 + ], + [ + -91.9702856109999, + 18.593898830000057 + ], + [ + -91.90196692599993, + 18.58079661700009 + ], + [ + -91.81427975199995, + 18.38865794500009 + ], + [ + -91.7983292309999, + 18.491441148000092 + ], + [ + -91.48648027299993, + 18.436428127000056 + ], + [ + -91.48363196499992, + 18.49827708500004 + ], + [ + -91.53888912699995, + 18.471014716000074 + ], + [ + -91.50405839799993, + 18.51194896000004 + ], + [ + -91.18199622299994, + 18.656561591000074 + ], + [ + -91.29865475199995, + 18.628648179000034 + ], + [ + -91.26553300699993, + 18.735663153000075 + ], + [ + -91.41470292899993, + 18.813625393000052 + ], + [ + -91.23721269399994, + 18.957586981000077 + ], + [ + -91.50527910099994, + 18.816555080000057 + ], + [ + -90.74242102799991, + 19.342962958000044 + ], + [ + -90.70278886599993, + 19.71112702000005 + ], + [ + -90.46385657499991, + 19.977850653000075 + ], + [ + -90.48989824099993, + 20.534125067000048 + ], + [ + -90.33910071499992, + 20.972357489000046 + ], + [ + -90.44212805899993, + 20.794256903000075 + ], + [ + -90.3496801419999, + 21.016750393000052 + ], + [ + -90.07774817599993, + 21.17373281500005 + ], + [ + -89.78595943899991, + 21.28457265800006 + ], + [ + -88.87877356699994, + 21.41307200700004 + ], + [ + -88.44782467399995, + 21.575100002000056 + ], + [ + -88.20841941247957, + 21.584464767079965 + ], + [ + -88.12946529899995, + 21.616034247000073 + ], + [ + -87.25694739499994, + 21.440619208000044 + ], + [ + -87.1555883449999, + 21.481756903000075 + ], + [ + -87.13833574099993, + 21.563055731000077 + ], + [ + -87.41315670499995, + 21.534084377000056 + ], + [ + -87.11148027299993, + 21.623439846000053 + ], + [ + -86.91852779899995, + 21.439601955000057 + ], + [ + -86.82795162699995, + 21.433294989000046 + ], + [ + -86.81505286399994, + 21.204779364000046 + ], + [ + -86.74156653599994, + 21.164129950000078 + ], + [ + -86.87531490799995, + 20.85504791900007 + ], + [ + -87.43049068899991, + 20.221014716000074 + ], + [ + -87.46440256913328, + 19.920732290665192 + ], + [ + -87.45470130099993, + 19.88930898600006 + ], + [ + -87.47003181126993, + 19.8708865588761 + ], + [ + -87.4798070949999, + 19.784328518000052 + ], + [ + -87.47905610277598, + 19.86004221320935 + ], + [ + -87.66734778599994, + 19.63377513200004 + ], + [ + -87.66014563699991, + 19.68378327000005 + ], + [ + -87.74120032499991, + 19.67169830900008 + ], + [ + -87.67381751199991, + 19.50568268400008 + ], + [ + -87.44139563699991, + 19.553656317000048 + ], + [ + -87.42577063699991, + 19.592108466000074 + ], + [ + -87.44602914317892, + 19.591223849792687 + ], + [ + -87.44041907499991, + 19.635972398000035 + ], + [ + -87.41274980399993, + 19.57762278900009 + ], + [ + -87.45840410099994, + 19.455023505000042 + ], + [ + -87.61766516799992, + 19.405462958000044 + ], + [ + -87.6758520169999, + 19.31118398600006 + ], + [ + -87.63898678299995, + 19.22093333500004 + ], + [ + -87.56712805899993, + 19.317206122000073 + ], + [ + -87.46092688699991, + 19.320705471000053 + ], + [ + -87.73704993399993, + 18.644964911000045 + ], + [ + -87.84455318899991, + 18.19668203300006 + ], + [ + -87.93517005099993, + 18.443101304000034 + ], + [ + -88.07778886599993, + 18.498602606000077 + ], + [ + -88.00218665299991, + 18.69013092700004 + ], + [ + -88.03628495999993, + 18.87498607000009 + ], + [ + -88.12730872299994, + 18.730210679000034 + ], + [ + -88.19028187188026, + 18.71247356094858 + ], + [ + -88.1946508449999, + 18.67645905200004 + ], + [ + -88.15074622299994, + 18.698553778000075 + ], + [ + -88.39098059799994, + 18.37059153900009 + ], + [ + -88.31749426999994, + 18.37482330900008 + ], + [ + -88.35798092399995, + 18.30369700700004 + ], + [ + -88.09154212099992, + 18.37173086100006 + ], + [ + -88.14647376199991, + 18.30927155200004 + ], + [ + -88.09166419199994, + 18.32835521000004 + ], + [ + -88.09479732999995, + 18.102769273000092 + ], + [ + -88.28770911399994, + 17.60423411700009 + ], + [ + -88.1673070949999, + 17.51203034100007 + ], + [ + -88.24233964799993, + 17.487494208000044 + ], + [ + -88.29596920499995, + 17.238104559000078 + ], + [ + -88.21743730399993, + 16.955471096000053 + ], + [ + -88.28331458199995, + 16.89134349200009 + ], + [ + -88.24860592399995, + 16.81313711100006 + ], + [ + -88.34898841099994, + 16.515326239000046 + ], + [ + -88.31126868399993, + 16.66229889500005 + ], + [ + -88.5366104809999, + 16.271307684000078 + ], + [ + -88.74006100199995, + 16.230169989000046 + ], + [ + -88.7551977199999, + 16.13971588700008 + ], + [ + -88.92764238199993, + 15.983872789000088 + ], + [ + -88.91397050699993, + 15.893947658000059 + ], + [ + -88.60924231699994, + 15.702093817000048 + ], + [ + -88.55768795499995, + 15.852932033000059 + ], + [ + -88.48884029899995, + 15.84674713700008 + ], + [ + -88.60545813699991, + 15.969631252000056 + ], + [ + -88.14525305899993, + 15.684515692000048 + ], + [ + -87.93390865799995, + 15.818793036000047 + ], + [ + -87.95099850199995, + 15.86717357000009 + ], + [ + -87.7221573559999, + 15.92291901200008 + ], + [ + -87.62604732999995, + 15.88768138200004 + ], + [ + -87.5912979809999, + 15.935492255000042 + ], + [ + -87.61729895699995, + 15.894598700000074 + ], + [ + -87.47940019399994, + 15.786037502000056 + ], + [ + -87.34508216099994, + 15.85032786700009 + ], + [ + -86.91685950399996, + 15.76040273600006 + ], + [ + -86.77065995999993, + 15.80654531500005 + ], + [ + -86.37474524599992, + 15.77094147300005 + ], + [ + -85.93325761599993, + 15.936672268000052 + ], + [ + -85.91922895409833, + 16.003490865261302 + ], + [ + -85.48857766799995, + 15.869566580000082 + ], + [ + -85.25425015699996, + 15.884084998000048 + ], + [ + -84.99994869699992, + 15.987941799000055 + ], + [ + -84.67655175099992, + 15.876203025000052 + ], + [ + -84.66005391399995, + 15.774494092000054 + ], + [ + -84.45281117099995, + 15.795647751000047 + ], + [ + -84.64182970999991, + 15.862907079000083 + ], + [ + -84.29463838299995, + 15.811010146000058 + ], + [ + -83.7299698559999, + 15.401556708000044 + ], + [ + -84.00401770699995, + 15.537583726000037 + ], + [ + -84.10362708199995, + 15.551214911000047 + ], + [ + -84.0893448559999, + 15.482977606000077 + ], + [ + -84.1220355208601, + 15.501034999060854 + ], + [ + -84.09951738199993, + 15.37759023600006 + ], + [ + -83.93175208199995, + 15.311672268000052 + ], + [ + -83.92198645699995, + 15.247870184000078 + ], + [ + -83.82188880099993, + 15.270697333000044 + ], + [ + -84.02651933499993, + 15.408677476000037 + ], + [ + -83.81407630099993, + 15.321682033000059 + ], + [ + -83.7598363919999, + 15.202093817000048 + ], + [ + -83.62336178299995, + 15.296087958000044 + ], + [ + -83.56951235967693, + 15.28949415106253 + ], + [ + -83.70299231699994, + 15.402004299000055 + ], + [ + -83.35631262899996, + 15.229722398000092 + ], + [ + -83.28429114499994, + 15.06834544500009 + ], + [ + -83.13044186099995, + 14.997015692000048 + ], + [ + -83.29401607999995, + 14.804266669000071 + ], + [ + -83.32217363199993, + 14.913885809000078 + ], + [ + -83.42463131399991, + 14.803941148000092 + ], + [ + -83.33751380099993, + 14.73143138200004 + ], + [ + -83.35631262899996, + 14.770453192000048 + ], + [ + -83.29922441299993, + 14.771185614000046 + ], + [ + -83.18659420499995, + 14.34764232000009 + ], + [ + -83.43126380099993, + 13.956732489000046 + ], + [ + -83.55915279899995, + 13.415838934000078 + ], + [ + -83.50767981699994, + 12.902777411000047 + ], + [ + -83.54133053299995, + 12.580633856000077 + ], + [ + -83.48180091099994, + 12.41665273600006 + ], + [ + -83.63752193899991, + 12.38572825700004 + ], + [ + -83.59571467802947, + 12.628631684512717 + ], + [ + -83.77464758999992, + 12.53351471600007 + ], + [ + -83.67638098899994, + 12.279852606000077 + ], + [ + -83.61701412699995, + 12.348049221000053 + ], + [ + -83.67100989499994, + 11.987941799000055 + ], + [ + -83.69786536399994, + 12.135199286000047 + ], + [ + -83.77774003799993, + 12.177150783000059 + ], + [ + -83.71324622299994, + 12.125677802000043 + ], + [ + -83.73936926999994, + 12.051947333000044 + ], + [ + -83.80394446499992, + 12.060288804000038 + ], + [ + -83.7598363919999, + 11.946844794000071 + ], + [ + -83.83608964799993, + 11.871242580000057 + ], + [ + -83.76773027299993, + 11.804836330000057 + ], + [ + -83.69994055899993, + 11.84992096600007 + ], + [ + -83.65172278599994, + 11.61937083500004 + ], + [ + -83.7610570949999, + 11.557114976000037 + ], + [ + -83.86790930899993, + 11.27366771000004 + ], + [ + -83.75206458199995, + 10.982245184000078 + ], + [ + -83.59870357999995, + 10.856594143000052 + ], + [ + -83.63752193899991, + 10.721096096000053 + ], + [ + -83.57542883999992, + 10.768255927000043 + ], + [ + -83.40557036439067, + 10.4 + ], + [ + -75.57707632651822, + 10.4 + ] + ], + [ + [ + -82.76732337099992, + 14.414129950000074 + ], + [ + -82.73253333199995, + 14.369574286000047 + ], + [ + -82.80825761599993, + 14.366359768000052 + ], + [ + -82.76732337099992, + 14.414129950000074 + ] + ], + [ + [ + -86.60654222099993, + 16.285029102000067 + ], + [ + -86.44039043099993, + 16.396545291000052 + ], + [ + -86.18175088099991, + 16.428225143000077 + ], + [ + -86.60654222099993, + 16.285029102000067 + ] + ], + [ + [ + -85.91147268399993, + 16.462042911000083 + ], + [ + -85.81694999599995, + 16.498308834000056 + ], + [ + -85.94706822099994, + 16.403189644000065 + ], + [ + -85.91147268399993, + 16.462042911000083 + ] + ], + [ + [ + -87.82774817599993, + 17.54555898600006 + ], + [ + -87.7871801419999, + 17.496893622000073 + ], + [ + -87.92650305899993, + 17.278631903000075 + ], + [ + -87.90953528599994, + 17.426255601000037 + ], + [ + -87.80394446499992, + 17.491929429000038 + ], + [ + -87.82774817599993, + 17.54555898600006 + ] + ], + [ + [ + -87.91344153599994, + 18.025946356000077 + ], + [ + -88.00902258999992, + 17.902492580000057 + ], + [ + -87.85728919199994, + 18.169663804000034 + ], + [ + -87.91344153599994, + 18.025946356000077 + ] + ], + [ + [ + -87.33120683499993, + 18.532416083000044 + ], + [ + -87.31012936099995, + 18.567206122000073 + ], + [ + -87.37942460799991, + 18.402492580000057 + ], + [ + -87.33120683499993, + 18.532416083000044 + ] + ], + [ + [ + -91.60033118399993, + 18.772040106000077 + ], + [ + -91.52456620999993, + 18.75214264500005 + ], + [ + -91.84268144399994, + 18.651190497000073 + ], + [ + -91.60033118399993, + 18.772040106000077 + ] + ], + [ + [ + -81.13609778599994, + 19.35488515800006 + ], + [ + -81.08658644399992, + 19.30992672000008 + ], + [ + -81.3874861669999, + 19.263863615000048 + ], + [ + -81.41654202099994, + 19.370027621000077 + ], + [ + -81.37572180899993, + 19.388983466000074 + ], + [ + -81.34971793699992, + 19.30211449600006 + ], + [ + -81.28628495999993, + 19.368475653000075 + ], + [ + -81.13609778599994, + 19.35488515800006 + ] + ], + [ + [ + -80.03782980299991, + 19.70403532200004 + ], + [ + -79.96426347599994, + 19.70490143400008 + ], + [ + -80.11315546199995, + 19.65866019300006 + ], + [ + -80.03782980299991, + 19.70403532200004 + ] + ], + [ + [ + -86.74901282499991, + 20.592230536000045 + ], + [ + -86.99526933499993, + 20.26080963700008 + ], + [ + -86.96812903599994, + 20.506252346000053 + ], + [ + -86.74901282499991, + 20.592230536000045 + ] + ], + [ + [ + -76.2637426419999, + 18.01235586100006 + ], + [ + -76.18797766799992, + 17.91547272300005 + ], + [ + -76.36302649599992, + 17.86082591400009 + ], + [ + -76.60277258999992, + 17.867621161000045 + ], + [ + -76.70767167899993, + 17.94594961100006 + ], + [ + -76.83226477799991, + 17.93659088700008 + ], + [ + -76.72240149599992, + 17.949611721000053 + ], + [ + -76.8499673899999, + 17.992276476000086 + ], + [ + -76.94212805899993, + 17.83356354400007 + ], + [ + -77.14165204099993, + 17.881133913000042 + ], + [ + -77.21646074099993, + 17.77212148600006 + ], + [ + -77.14073645699995, + 17.765285549000055 + ], + [ + -77.17894446499992, + 17.70416901200008 + ], + [ + -77.41771399599992, + 17.861721096000053 + ], + [ + -77.73070227799991, + 17.854803778000075 + ], + [ + -78.0502823559999, + 18.18512604400007 + ], + [ + -78.37466386599993, + 18.265570380000042 + ], + [ + -78.23062089799993, + 18.444240627000056 + ], + [ + -77.96996008999992, + 18.443060614000046 + ], + [ + -77.90233313699991, + 18.518784898000092 + ], + [ + -77.27261308499993, + 18.459377346000053 + ], + [ + -76.89491886399992, + 18.409251286000085 + ], + [ + -76.78282630099993, + 18.277818101000037 + ], + [ + -76.35114498599995, + 18.155991929000034 + ], + [ + -76.2637426419999, + 18.01235586100006 + ] + ], + [ + [ + -79.02521725199995, + 20.886664130000042 + ], + [ + -78.98888098899994, + 20.839056708000044 + ], + [ + -79.07982337099992, + 20.897284247000073 + ], + [ + -79.02521725199995, + 20.886664130000042 + ] + ], + [ + [ + -77.63418535099994, + 22.05426666900007 + ], + [ + -77.63418535099994, + 21.945013739000046 + ], + [ + -77.70311438699991, + 21.91083405200004 + ], + [ + -77.94945227799991, + 22.10260651200008 + ], + [ + -77.63418535099994, + 22.05426666900007 + ] + ], + [ + [ + -77.84707597599994, + 22.260321356000077 + ], + [ + -77.88068600199995, + 22.308742580000057 + ], + [ + -77.75772050699993, + 22.17837148600006 + ], + [ + -77.84707597599994, + 22.260321356000077 + ] + ], + [ + [ + -78.19652258999992, + 22.32916901200008 + ], + [ + -78.31261145699995, + 22.40428294500009 + ], + [ + -78.14419511599993, + 22.428941148000035 + ], + [ + -78.0227355833702, + 22.294423045885303 + ], + [ + -78.01781165299991, + 22.314886786000045 + ], + [ + -77.98741614499994, + 22.236721096000053 + ], + [ + -77.86758378799993, + 22.22675202000005 + ], + [ + -77.90233313699991, + 22.19204336100006 + ], + [ + -77.82599850199995, + 22.157904364000046 + ], + [ + -77.86343339799993, + 22.09918854400007 + ], + [ + -77.99730383999992, + 22.147365627000056 + ], + [ + -78.04572506399995, + 22.198879299000055 + ], + [ + -78.02500061511408, + 22.285009626630213 + ], + [ + -78.19652258999992, + 22.32916901200008 + ] + ], + [ + [ + -78.42617753799993, + 22.462591864000046 + ], + [ + -78.69619706899994, + 22.541449286000045 + ], + [ + -78.39635169199994, + 22.559800523000035 + ], + [ + -78.27847245999993, + 22.44867584800005 + ], + [ + -78.42992102799991, + 22.41860586100006 + ], + [ + -78.42617753799993, + 22.462591864000046 + ] + ], + [ + [ + -82.56802324099993, + 21.63654205900008 + ], + [ + -82.59463456899994, + 21.541815497000073 + ], + [ + -82.90623938699991, + 21.43748607000009 + ], + [ + -83.07852128799993, + 21.469224351000037 + ], + [ + -83.19180253799993, + 21.63031647300005 + ], + [ + -83.08202063699991, + 21.55145905200004 + ], + [ + -82.95909583199995, + 21.56199778900009 + ], + [ + -83.08560136599993, + 21.80027903900009 + ], + [ + -82.98949133999992, + 21.948431708000044 + ], + [ + -82.70372473899994, + 21.89280833500004 + ], + [ + -82.56802324099993, + 21.63654205900008 + ] + ], + [ + [ + -89.66418798799992, + 22.371069109000075 + ], + [ + -89.65516467999991, + 22.472001270000074 + ], + [ + -89.77075566699995, + 22.533241273000044 + ], + [ + -89.74570742299994, + 22.57724911300005 + ], + [ + -89.6101519099999, + 22.46108092800006 + ], + [ + -89.66418798799992, + 22.371069109000075 + ] + ], + [ + [ + -80.32054602799991, + 22.98651764500005 + ], + [ + -80.24974524599992, + 23.010931708000044 + ], + [ + -80.23180091099994, + 22.95917389500005 + ], + [ + -80.32054602799991, + 22.98651764500005 + ] + ], + [ + [ + -80.19701087099992, + 23.124253648000035 + ], + [ + -80.13125566299993, + 23.08698151200008 + ], + [ + -80.22496497299994, + 23.089544989000046 + ], + [ + -80.19701087099992, + 23.124253648000035 + ] + ], + [ + [ + -75.79820716099994, + 23.53864166900007 + ], + [ + -75.66104081899994, + 23.45262278900009 + ], + [ + -76.0371801419999, + 23.596625067000048 + ], + [ + -76.03148352799991, + 23.668524481000077 + ], + [ + -75.79820716099994, + 23.53864166900007 + ] + ], + [ + [ + -77.52497311099995, + 23.93305084800005 + ], + [ + -77.5659073559999, + 23.740668036000045 + ], + [ + -77.77818762899996, + 23.74681224200009 + ], + [ + -77.57616126199991, + 23.84711334800005 + ], + [ + -77.7202042309999, + 23.784816799000055 + ], + [ + -77.76455644399994, + 23.823187567000048 + ], + [ + -77.66087805899993, + 23.88467031500005 + ], + [ + -77.79869544199994, + 23.856675523000035 + ], + [ + -77.8334854809999, + 24.021795966000074 + ], + [ + -77.94204667899993, + 24.096869208000044 + ], + [ + -77.67516028599994, + 24.30296458500004 + ], + [ + -77.63121497299994, + 24.24909088700008 + ], + [ + -77.75772050699993, + 24.17259349200009 + ], + [ + -77.70225989499994, + 24.11273834800005 + ], + [ + -77.74404863199993, + 24.035467841000074 + ], + [ + -77.60753333199995, + 24.21824778900009 + ], + [ + -77.52497311099995, + 23.970363674000055 + ], + [ + -77.60069739499994, + 23.905096747000073 + ], + [ + -77.52497311099995, + 23.93305084800005 + ] + ], + [ + [ + -80.77501380099993, + 23.20661041900007 + ], + [ + -80.71190344999991, + 23.19082265800006 + ], + [ + -80.86143958199995, + 23.220363674000055 + ], + [ + -80.77501380099993, + 23.20661041900007 + ] + ], + [ + [ + -81.70531165299991, + 24.597805080000057 + ], + [ + -81.65005449099993, + 24.576117255000042 + ], + [ + -81.72573808499993, + 24.55621979400007 + ], + [ + -81.70531165299991, + 24.597805080000057 + ] + ], + [ + [ + -81.53293904234711, + 24.62741472520006 + ], + [ + -81.63646399599992, + 24.58356354400007 + ], + [ + -81.58116614499994, + 24.65180084800005 + ], + [ + -81.53293904234711, + 24.62741472520006 + ] + ], + [ + [ + -81.52933018332072, + 24.62894336854167 + ], + [ + -81.56065833199995, + 24.693426825000078 + ], + [ + -81.50601152299993, + 24.638820705000057 + ], + [ + -81.52933018332072, + 24.62894336854167 + ] + ], + [ + [ + -77.88068600199995, + 24.18626536700009 + ], + [ + -77.97622636599993, + 24.186835028000075 + ], + [ + -77.79869544199994, + 24.25458405200004 + ], + [ + -77.88068600199995, + 24.18626536700009 + ] + ], + [ + [ + -78.3535863919999, + 24.65924713700008 + ], + [ + -78.31143144399994, + 24.710109768000052 + ], + [ + -78.32632402299993, + 24.58539459800005 + ], + [ + -78.27163652299993, + 24.631333726000037 + ], + [ + -78.23770097599994, + 24.55687083500004 + ], + [ + -78.19652258999992, + 24.603989976000037 + ], + [ + -78.30406653599994, + 24.728216864000046 + ], + [ + -78.1577042309999, + 25.00018952000005 + ], + [ + -78.2143448559999, + 25.18463776200008 + ], + [ + -78.04515540299991, + 25.18309153900009 + ], + [ + -77.97687740799995, + 25.138413804000034 + ], + [ + -77.98058020699995, + 25.001898505000042 + ], + [ + -77.73721269399994, + 24.70018138200004 + ], + [ + -77.71873938699991, + 24.49982330900008 + ], + [ + -78.02745520699995, + 24.27285390800006 + ], + [ + -78.13414466099994, + 24.403957424000055 + ], + [ + -78.13442949099993, + 24.501613674000055 + ], + [ + -78.22642981699994, + 24.46548086100006 + ], + [ + -78.43053137899996, + 24.60179271000004 + ], + [ + -78.3535863919999, + 24.65924713700008 + ] + ], + [ + [ + -76.32442487827036, + 25.27853386861388 + ], + [ + -76.16128495999993, + 25.165716864000046 + ], + [ + -76.11290442599993, + 25.114894924000055 + ], + [ + -76.16128495999993, + 24.645005601000037 + ], + [ + -76.33633378799993, + 24.814927476000037 + ], + [ + -76.18244381399995, + 24.848781643000052 + ], + [ + -76.16494706899994, + 25.129828192000048 + ], + [ + -76.32442487827036, + 25.27853386861388 + ] + ], + [ + [ + -81.08771725199995, + 24.685939846000053 + ], + [ + -81.13609778599994, + 24.70701732000009 + ], + [ + -81.03990637899996, + 24.73436107000009 + ], + [ + -81.08771725199995, + 24.685939846000053 + ] + ], + [ + [ + -80.32054602799991, + 25.24827708500004 + ], + [ + -80.59801184799994, + 24.950100002000056 + ], + [ + -80.35732988199993, + 25.227362372000073 + ], + [ + -80.36896725199995, + 25.28611888200004 + ], + [ + -80.25161699099993, + 25.34446849200009 + ], + [ + -80.32054602799991, + 25.24827708500004 + ] + ], + [ + [ + -82.12922115799995, + 26.46112702000005 + ], + [ + -82.0268448559999, + 26.44745514500005 + ], + [ + -82.16392981699994, + 26.454291083000044 + ], + [ + -82.20494544199994, + 26.550482489000046 + ], + [ + -82.12922115799995, + 26.46112702000005 + ] + ], + [ + [ + -82.13670813699991, + 26.58466217700004 + ], + [ + -82.17764238199993, + 26.701320705000057 + ], + [ + -82.08202063699991, + 26.491522528000075 + ], + [ + -82.13670813699991, + 26.58466217700004 + ] + ], + [ + [ + -77.4799698559999, + 24.991359768000052 + ], + [ + -77.56187903599994, + 25.018866278000075 + ], + [ + -77.45604407499991, + 25.076971747000073 + ], + [ + -77.26382402299993, + 25.05809153900009 + ], + [ + -77.4799698559999, + 24.991359768000052 + ] + ], + [ + [ + -76.41462580502314, + 25.34091098929364 + ], + [ + -76.63052324099993, + 25.433254299000055 + ], + [ + -76.7844945949999, + 25.42641836100006 + ], + [ + -76.73668372299994, + 25.563625393000052 + ], + [ + -76.41462580502314, + 25.34091098929364 + ] + ], + [ + [ + -77.53799394399994, + 26.306586005000042 + ], + [ + -77.57274329299992, + 26.268703518000052 + ], + [ + -77.5795792309999, + 26.337591864000046 + ], + [ + -77.53799394399994, + 26.306586005000042 + ] + ], + [ + [ + -77.80292203653526, + 26.905323467716894 + ], + [ + -77.60684160099994, + 26.920396226000037 + ], + [ + -77.25059973899994, + 26.68768952000005 + ], + [ + -77.30524654899995, + 26.67401764500005 + ], + [ + -77.26988684799994, + 26.625067450000078 + ], + [ + -77.04979407499991, + 26.51634349200009 + ], + [ + -77.01475989499994, + 26.315659898000035 + ], + [ + -77.16494706899994, + 26.245428778000075 + ], + [ + -77.22667395699995, + 25.885077216000074 + ], + [ + -77.4082738919999, + 26.029730536000045 + ], + [ + -77.22329667899993, + 26.145819403000075 + ], + [ + -77.25035559799994, + 26.313055731000077 + ], + [ + -77.16071529899995, + 26.564195054000034 + ], + [ + -77.32974199099993, + 26.60455963700008 + ], + [ + -77.53441321499992, + 26.86318594000005 + ], + [ + -77.80292203653526, + 26.905323467716894 + ] + ], + [ + [ + -82.65746008999992, + 27.396795966000074 + ], + [ + -82.6809789699999, + 27.434068101000037 + ], + [ + -82.5891820949999, + 27.32444896000004 + ], + [ + -82.65746008999992, + 27.396795966000074 + ] + ], + [ + [ + -80.38878333199995, + 27.71865469000005 + ], + [ + -80.44456946499992, + 27.857489325000078 + ], + [ + -80.16291256399991, + 27.17365143400008 + ], + [ + -80.38878333199995, + 27.71865469000005 + ] + ], + [ + [ + -80.6012677336079, + 28.583066199013544 + ], + [ + -80.52822831899994, + 28.472601630000042 + ], + [ + -80.59406490799995, + 28.401597398000035 + ], + [ + -80.59219316299993, + 28.207912502000056 + ], + [ + -80.45091712099992, + 27.866359768000052 + ], + [ + -80.61994381399991, + 28.206976630000042 + ], + [ + -80.6012677336079, + 28.583066199013544 + ] + ], + [ + [ + -80.67747962099992, + 28.578924872000073 + ], + [ + -80.61217200399996, + 28.568833726000037 + ], + [ + -80.64976966099994, + 28.225165106000077 + ], + [ + -80.73741614499994, + 28.484849351000037 + ], + [ + -80.67747962099992, + 28.578924872000073 + ] + ], + [ + [ + -94.81427975199995, + 29.35293203300006 + ], + [ + -94.72440897099995, + 29.333154895000064 + ], + [ + -95.11654359099992, + 29.088992912000037 + ], + [ + -94.81427975199995, + 29.35293203300006 + ] + ], + [ + [ + -91.8020727199999, + 29.49005768400008 + ], + [ + -92.03538977799991, + 29.596177476000037 + ], + [ + -91.91710364499994, + 29.648138739000046 + ], + [ + -91.7202042309999, + 29.581732489000046 + ], + [ + -91.8020727199999, + 29.49005768400008 + ] + ], + [ + [ + -85.14175370999993, + 29.64085521000004 + ], + [ + -85.21279863199993, + 29.688706773000035 + ], + [ + -85.08608964799993, + 29.68573639500005 + ], + [ + -85.14175370999993, + 29.64085521000004 + ] + ], + [ + [ + -84.75058143693809, + 29.73247007557684 + ], + [ + -84.96947180899993, + 29.611761786000045 + ], + [ + -85.09732011599993, + 29.627264716000074 + ], + [ + -84.75058143693809, + 29.73247007557684 + ] + ], + [ + [ + -89.45518958199995, + 29.79169342700004 + ], + [ + -89.42731686099995, + 29.74396393400008 + ], + [ + -89.48997962099992, + 29.736476955000057 + ], + [ + -89.45518958199995, + 29.79169342700004 + ] + ], + [ + [ + -84.61701412699995, + 29.80536530200004 + ], + [ + -84.57640540299991, + 29.81976959800005 + ], + [ + -84.66470292899993, + 29.77871328300006 + ], + [ + -84.61701412699995, + 29.80536530200004 + ] + ], + [ + [ + -88.81835624620183, + 29.932522506226874 + ], + [ + -88.81094316299993, + 29.915228583000044 + ], + [ + -88.85456295499995, + 29.769191799000055 + ], + [ + -88.81835624620183, + 29.932522506226874 + ] + ], + [ + [ + -89.18834387899996, + 30.079738674000055 + ], + [ + -89.22207597599994, + 30.033758856000077 + ], + [ + -89.34532630099993, + 30.066066799000055 + ], + [ + -89.18081620999993, + 30.168524481000077 + ], + [ + -89.24990800699993, + 30.101996161000045 + ], + [ + -89.18834387899996, + 30.079738674000055 + ] + ], + [ + [ + -89.05797278599994, + 30.257798570000038 + ], + [ + -89.08462480399993, + 30.195786851000037 + ], + [ + -89.15355383999992, + 30.22992584800005 + ], + [ + -89.05797278599994, + 30.257798570000038 + ] + ], + [ + [ + -88.64305579299992, + 30.24046458500004 + ], + [ + -88.53791256399991, + 30.22443268400008 + ], + [ + -88.75633704299992, + 30.250433661000045 + ], + [ + -88.64305579299992, + 30.24046458500004 + ] + ], + [ + [ + -86.69375566299993, + 30.40810781500005 + ], + [ + -86.52183997299994, + 30.401271877000056 + ], + [ + -87.29649817599993, + 30.332342841000074 + ], + [ + -86.69375566299993, + 30.40810781500005 + ] + ], + [ + [ + -81.47874915299991, + 30.805975653000075 + ], + [ + -81.4173070949999, + 30.970404364000046 + ], + [ + -81.46165930899993, + 30.725816148000035 + ], + [ + -81.47874915299991, + 30.805975653000075 + ] + ], + [ + [ + -78.59007727799991, + 26.53620026200008 + ], + [ + -78.76683934699992, + 26.508104203000073 + ], + [ + -78.99787350199995, + 26.701320705000057 + ], + [ + -78.7142887789999, + 26.570519948000083 + ], + [ + -78.5736332699999, + 26.684159293000054 + ], + [ + -78.64159094999991, + 26.714992580000057 + ], + [ + -78.5938207669999, + 26.81053294500009 + ], + [ + -78.5202572959999, + 26.728995355000052 + ], + [ + -78.31998377999992, + 26.68652744500008 + ], + [ + -77.91539466099994, + 26.77643463700008 + ], + [ + -77.92906653599994, + 26.639227606000077 + ], + [ + -78.59007727799991, + 26.53620026200008 + ] + ], + [ + [ + -97.81529700399996, + 22.72020091400009 + ], + [ + -97.84316972599994, + 22.684881903000075 + ], + [ + -97.7885636059999, + 22.77484772300005 + ], + [ + -97.81529700399996, + 22.72020091400009 + ] + ], + [ + [ + -97.19831295499995, + 26.27610911700009 + ], + [ + -97.1663792359999, + 26.10284657300008 + ], + [ + -97.39753170499995, + 26.831000067000048 + ], + [ + -97.37706458199995, + 27.207831122000073 + ], + [ + -97.34288489499994, + 26.756740627000056 + ], + [ + -97.19831295499995, + 26.27610911700009 + ] + ], + [ + [ + -97.07542883999992, + 27.814520575000078 + ], + [ + -97.39753170499995, + 27.228908596000053 + ], + [ + -97.25413977799991, + 27.65965403900009 + ], + [ + -97.20571855399993, + 27.632961330000057 + ], + [ + -97.07542883999992, + 27.814520575000078 + ] + ], + [ + [ + -96.88023841099994, + 28.130113023000035 + ], + [ + -96.85008704299992, + 28.071193752000056 + ], + [ + -97.03441321499992, + 27.852036851000037 + ], + [ + -96.88023841099994, + 28.130113023000035 + ] + ], + [ + [ + -96.42772376199991, + 28.39329661700009 + ], + [ + -96.41685950399996, + 28.32876211100006 + ], + [ + -96.83580481699994, + 28.071193752000056 + ], + [ + -96.80776933499993, + 28.187648830000057 + ], + [ + -96.42772376199991, + 28.39329661700009 + ] + ], + [ + [ + -81.2512893839999, + 31.504578069000047 + ], + [ + -81.17465025799994, + 31.521421082000074 + ], + [ + -81.27961053799993, + 31.38548129900005 + ], + [ + -81.2512893839999, + 31.504578069000047 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -83.52968483620606, + 15.255923563780655 + ], + [ + -83.53286699099993, + 15.21124909100007 + ], + [ + -83.59251868399993, + 15.237209377000056 + ], + [ + -83.62144934799994, + 15.176174221000053 + ], + [ + -83.48180091099994, + 15.21556224200009 + ], + [ + -83.52968483620606, + 15.255923563780655 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -97.47202896819472, + 21.438016589453333 + ], + [ + -97.37022864499994, + 21.537502346000053 + ], + [ + -97.6250707669999, + 21.79441966400009 + ], + [ + -97.78111731699994, + 22.095851955000057 + ], + [ + -97.65758216099994, + 21.63654205900008 + ], + [ + -97.5620011059999, + 21.485663153000075 + ], + [ + -97.48940995999993, + 21.480780341000074 + ], + [ + -97.47202896819472, + 21.438016589453333 + ] + ], + [ + [ + -97.65143795499995, + 21.787909247000073 + ], + [ + -97.68492591099994, + 21.862453518000052 + ], + [ + -97.61046301999994, + 21.740179755000042 + ], + [ + -97.65143795499995, + 21.787909247000073 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -84.14790989421914, + 15.515327266652951 + ], + [ + -84.21288001199991, + 15.551214911000047 + ], + [ + -84.18553626199991, + 15.482977606000077 + ], + [ + -84.14790989421914, + 15.515327266652951 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -83.59319182591683, + 12.643289650881286 + ], + [ + -83.56403561099995, + 12.81268952000005 + ], + [ + -83.64590410099994, + 12.786851304000038 + ], + [ + -83.59319182591683, + 12.643289650881286 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -91.16585098241602, + -0.5 + ], + [ + -91.37498938699991, + -0.281914971999925 + ], + [ + -91.4233292309999, + -0.02857838299991 + ], + [ + -91.5, + -0.022462048537739 + ], + [ + -91.5, + -0.263275041412811 + ], + [ + -91.45567786399994, + -0.257582289999959 + ], + [ + -91.39952551999994, + -0.30787525799991 + ], + [ + -91.40111243399993, + -0.452894789999959 + ], + [ + -91.5, + -0.454540303810271 + ], + [ + -91.5, + -0.5 + ], + [ + -91.16585098241602, + -0.5 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + -90.3722989053175, + -0.5 + ], + [ + -90.26398678299995, + -0.483005466999941 + ], + [ + -90.24183632386668, + -0.5 + ], + [ + -90, + -0.5 + ], + [ + -90, + 0.5 + ], + [ + -91.5, + 0.5 + ], + [ + -91.5, + 0.103047730932554 + ], + [ + -91.49730383999992, + 0.10610586100006 + ], + [ + -91.32363847599994, + 0.13930898600006 + ], + [ + -91.20929928299995, + -0.010674737999921 + ], + [ + -91.17357337099992, + -0.228448174999926 + ], + [ + -90.95604407499991, + -0.422133070999962 + ], + [ + -90.97294886411352, + -0.5 + ], + [ + -90.3722989053175, + -0.5 + ] + ], + [ + [ + -90.56501217399995, + -0.284926039999959 + ], + [ + -90.60488847599994, + -0.369805596999925 + ], + [ + -90.81822669199994, + -0.339613539999959 + ], + [ + -90.87413489499994, + -0.271254164999959 + ], + [ + -90.77725175699993, + -0.14771900799991 + ], + [ + -90.56501217399995, + -0.284926039999959 + ] + ], + [ + [ + -90.51378333199995, + 0.28351471600007 + ], + [ + -90.50446529899995, + 0.361029364000046 + ], + [ + -90.40794837099992, + 0.31085846600007 + ], + [ + -90.51378333199995, + 0.28351471600007 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 115, + -8.175433899580682 + ], + [ + 115.02263431100005, + -8.172621351999908 + ], + [ + 115.19312584700003, + -8.055108330999929 + ], + [ + 115.5024520190001, + -8.172621351999908 + ], + [ + 115.61915123800009, + -8.28875090899993 + ], + [ + 115.70093834700003, + -8.419122002999925 + ], + [ + 115.55143464622923, + -8.5 + ], + [ + 116, + -8.5 + ], + [ + 116, + -8 + ], + [ + 115, + -8 + ], + [ + 115, + -8.175433899580682 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 147, + -19.25776727155761 + ], + [ + 147.01042728000004, + -19.252618096999925 + ], + [ + 147.02409915500004, + -19.177422783999926 + ], + [ + 147.13396243600002, + -19.410821221999925 + ], + [ + 147.42139733200008, + -19.412774346999925 + ], + [ + 147.4023543630001, + -19.303887627999927 + ], + [ + 147.5590926440001, + -19.53753020599993 + ], + [ + 147.56527754, + -19.70517343499995 + ], + [ + 147.68425540500004, + -19.828057549999922 + ], + [ + 147.78500410200004, + -19.835381768999923 + ], + [ + 147.750824415, + -19.69150155999995 + ], + [ + 147.82390384200008, + -19.714288018999923 + ], + [ + 147.929047071, + -19.897556247999944 + ], + [ + 148.07243899800005, + -19.87704843499995 + ], + [ + 148.27857506600003, + -19.96575286299992 + ], + [ + 148.2745851082771, + -20 + ], + [ + 149.1, + -20 + ], + [ + 149.1, + -18.6 + ], + [ + 147, + -18.6 + ], + [ + 147, + -19.25776727155761 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 147.64547610687077, + -10 + ], + [ + 147.31006920700008, + -9.53883228999996 + ], + [ + 147.17261803500003, + -9.513278903999947 + ], + [ + 147.12224368600002, + -9.431247653999947 + ], + [ + 147.06999759200008, + -9.473402601999908 + ], + [ + 146.96607506600003, + -9.27906666499996 + ], + [ + 146.894867384, + -9.268243096999925 + ], + [ + 146.88819420700008, + -9.131605726999908 + ], + [ + 146.97535241000003, + -9.033461195999905 + ], + [ + 146.87281334700003, + -9.106540622999944 + ], + [ + 146.60181725400003, + -9.006036065999922 + ], + [ + 146.54835045700008, + -8.892022393999921 + ], + [ + 146.6064559250001, + -8.80201588299991 + ], + [ + 146.36304772200003, + -8.560967705999929 + ], + [ + 146.23511803500003, + -8.27434661299992 + ], + [ + 146.116547071, + -8.20012786299992 + ], + [ + 146.09986412900003, + -8.08326588299991 + ], + [ + 145.79810631600003, + -8.007012627999925 + ], + [ + 145.79127037900003, + -7.911879164999958 + ], + [ + 145.719086134, + -7.960381768999922 + ], + [ + 145.4419051440001, + -7.944105726999908 + ], + [ + 145.1840926440001, + -7.80559661299992 + ], + [ + 144.87956790500004, + -7.781670830999928 + ], + [ + 144.85230553500003, + -7.569431247999944 + ], + [ + 144.82496178500003, + -7.68254973799992 + ], + [ + 144.65357506600003, + -7.561293226999908 + ], + [ + 144.6611434250001, + -7.634209893999922 + ], + [ + 144.6040145190001, + -7.656914971999924 + ], + [ + 144.52230879, + -7.496189059999948 + ], + [ + 144.51392662900003, + -7.671970309999948 + ], + [ + 144.4072371750001, + -7.514092705999928 + ], + [ + 144.5078231130001, + -7.798028252999926 + ], + [ + 144.3671981130001, + -7.743584893999922 + ], + [ + 144.3110457690001, + -7.61028411299992 + ], + [ + 144.33383222700004, + -7.688653252999926 + ], + [ + 144.2285262380001, + -7.658135674999926 + ], + [ + 144.27621504, + -7.767998955999928 + ], + [ + 144.2148543630001, + -7.795993747999944 + ], + [ + 143.85141035200002, + -7.651788018999922 + ], + [ + 143.7622759875866, + -7.559082622944588 + ], + [ + 143.95679772200003, + -7.972263278999946 + ], + [ + 143.80396569100003, + -7.93254973799992 + ], + [ + 143.91382897200003, + -8.007582289999958 + ], + [ + 143.76734459700003, + -8.040215752999925 + ], + [ + 143.48894290500004, + -7.989027601999908 + ], + [ + 143.36402428500003, + -7.896416924999926 + ], + [ + 143.55982506600003, + -8.044854424999926 + ], + [ + 143.61247806100005, + -8.23919036299992 + ], + [ + 142.957855665, + -8.33717213299991 + ], + [ + 142.70036868600005, + -8.26140715899993 + ], + [ + 142.494476759, + -8.33326588299991 + ], + [ + 142.41962221103228, + -8.31211626344029 + ], + [ + 142.4521590500001, + -8.373304945999903 + ], + [ + 142.72828209700003, + -8.316664320999903 + ], + [ + 143.13160241000003, + -8.48601653399993 + ], + [ + 143.39527428500003, + -8.768731377999925 + ], + [ + 143.3613387380001, + -9.007419528999947 + ], + [ + 143.0527449880001, + -9.093357028999947 + ], + [ + 142.61247806100005, + -9.334649346999925 + ], + [ + 142.21070397200003, + -9.158949476999908 + ], + [ + 141.62126712300005, + -9.23406340899993 + ], + [ + 141.34587649800005, + -9.14153411299992 + ], + [ + 141.15259850400003, + -9.23219166499996 + ], + [ + 141, + -9.137683920897608 + ], + [ + 141, + -10 + ], + [ + 147.64547610687077, + -10 + ] + ], + [ + [ + 142.75456790500004, + -9.369805596999925 + ], + [ + 142.7138778000001, + -9.42864348799992 + ], + [ + 142.60124759200005, + -9.399509372999944 + ], + [ + 142.75456790500004, + -9.369805596999925 + ] + ], + [ + [ + 142.20687910200002, + -9.240166924999926 + ], + [ + 142.27914472700002, + -9.287041924999926 + ], + [ + 142.1508895190001, + -9.271416924999926 + ], + [ + 142.20687910200002, + -9.240166924999926 + ] + ], + [ + [ + 143.250824415, + -9.09661223799992 + ], + [ + 143.261159701, + -9.142998955999929 + ], + [ + 143.20199629, + -9.130059502999927 + ], + [ + 143.250824415, + -9.09661223799992 + ] + ], + [ + [ + 143.6084090500001, + -8.638116143999921 + ], + [ + 143.6289168630001, + -8.730401299999926 + ], + [ + 143.17888431100005, + -8.419122002999925 + ], + [ + 143.6084090500001, + -8.638116143999921 + ] + ], + [ + [ + 143.3794051440001, + -8.425957940999922 + ], + [ + 143.31666100400003, + -8.372247002999925 + ], + [ + 143.57374108200008, + -8.373711846999925 + ], + [ + 143.61060631600003, + -8.475030205999929 + ], + [ + 143.3794051440001, + -8.425957940999922 + ] + ], + [ + [ + 143.6743270190001, + -8.390557549999926 + ], + [ + 143.64828535200002, + -8.425876559999947 + ], + [ + 143.54086347700002, + -8.350030205999929 + ], + [ + 143.6743270190001, + -8.390557549999926 + ] + ], + [ + [ + 143.41968834700003, + -8.30600351399994 + ], + [ + 143.4873153000001, + -8.321872653999947 + ], + [ + 143.30779056100005, + -8.322360934999947 + ], + [ + 143.41968834700003, + -8.30600351399994 + ] + ], + [ + [ + 143.66293379, + -8.109307549999926 + ], + [ + 143.66667728000004, + -8.167413018999921 + ], + [ + 143.59937584700003, + -8.110772393999921 + ], + [ + 143.66293379, + -8.109307549999926 + ] + ], + [ + [ + 143.67562910200002, + -8.053806247999944 + ], + [ + 143.6904403000001, + -8.10019296699994 + ], + [ + 143.56421959700003, + -8.029961846999925 + ], + [ + 143.67562910200002, + -8.053806247999944 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 150.99060679178766, + -10 + ], + [ + 150.992523634, + -9.99382903399993 + ], + [ + 150.9443465500001, + -9.954685153999947 + ], + [ + 150.9072371750001, + -9.99732838299991 + ], + [ + 150.76392662900003, + -9.70281340899993 + ], + [ + 151.06170833555362, + -10 + ], + [ + 151.1581388878539, + -10 + ], + [ + 151.17701256600003, + -9.954685153999947 + ], + [ + 151.30062910200004, + -9.96770598799992 + ], + [ + 151.2911441473926, + -10 + ], + [ + 179, + -10 + ], + [ + 179, + 10 + ], + [ + 141, + 10 + ], + [ + 141, + -2.622812692889884 + ], + [ + 141.1933699880001, + -2.615004164999959 + ], + [ + 141.88542728000004, + -2.96379973799992 + ], + [ + 142.01042728000004, + -2.960381768999923 + ], + [ + 142.062836134, + -3.060153903999946 + ], + [ + 142.94898522200003, + -3.335056247999944 + ], + [ + 143.52295983200008, + -3.435967705999928 + ], + [ + 144.0214949880001, + -3.802992445999905 + ], + [ + 144.1670028000001, + -3.800551039999959 + ], + [ + 144.12614993600002, + -3.81414153399993 + ], + [ + 144.2387801440001, + -3.86882903399993 + ], + [ + 144.309906446, + -3.798435153999946 + ], + [ + 144.51343834700003, + -3.817559502999927 + ], + [ + 144.55779056100002, + -3.97942473799992 + ], + [ + 144.86784915500004, + -4.099216403999946 + ], + [ + 144.86500084700003, + -4.161553643999923 + ], + [ + 145.07781009200008, + -4.356622002999927 + ], + [ + 145.3457137380001, + -4.390232028999946 + ], + [ + 145.80144290500004, + -4.842461846999924 + ], + [ + 145.75961347700004, + -5.476983330999928 + ], + [ + 145.89380944100003, + -5.513604424999926 + ], + [ + 145.96949303500003, + -5.465264580999928 + ], + [ + 146.4609481130001, + -5.59929778399993 + ], + [ + 147.11646569100003, + -5.969008070999904 + ], + [ + 147.44906660200004, + -5.961602471999924 + ], + [ + 147.8266707690001, + -6.335381768999922 + ], + [ + 147.8540145190001, + -6.691013278999946 + ], + [ + 147.56527754, + -6.753838799999926 + ], + [ + 146.97730553500003, + -6.740411065999922 + ], + [ + 146.949554884, + -6.93132903399993 + ], + [ + 147.02719160200004, + -7.032321872999944 + ], + [ + 147.07252037900003, + -7.014418226999908 + ], + [ + 147.1884871750001, + -7.46257903399993 + ], + [ + 147.4873153000001, + -7.616306247999944 + ], + [ + 147.72681725400003, + -7.932061455999928 + ], + [ + 147.87647545700008, + -7.93718840899993 + ], + [ + 147.9985457690001, + -8.055352471999925 + ], + [ + 148.14633222700004, + -8.045668226999908 + ], + [ + 148.2295028000001, + -8.554620049999926 + ], + [ + 148.4453231130001, + -8.67473723799992 + ], + [ + 148.58562259200008, + -9.064060153999947 + ], + [ + 148.7583113940001, + -9.103692315999922 + ], + [ + 149.14185631600003, + -8.974541924999926 + ], + [ + 149.30933678500003, + -9.017022393999923 + ], + [ + 149.33423912900003, + -9.145277601999908 + ], + [ + 149.18287194100003, + -9.36809661299992 + ], + [ + 149.2265731130001, + -9.486748955999929 + ], + [ + 149.4414168630001, + -9.590508721999925 + ], + [ + 150.0009871750001, + -9.63404713299991 + ], + [ + 150.0488387380001, + -9.68450286299992 + ], + [ + 149.7309676440001, + -9.809340101999908 + ], + [ + 149.8455447322544, + -10 + ], + [ + 150.99060679178766, + -10 + ] + ], + [ + [ + 161.97779381600003, + -9.851006768999923 + ], + [ + 161.92847741000003, + -9.720147393999923 + ], + [ + 161.97779381600003, + -9.686618747999944 + ], + [ + 161.97779381600003, + -9.851006768999923 + ] + ], + [ + [ + 160.82634524800005, + -9.837334893999923 + ], + [ + 160.64478600400003, + -9.937107028999947 + ], + [ + 160.3203231130001, + -9.815118096999925 + ], + [ + 159.83562259200008, + -9.79387786299992 + ], + [ + 159.60181725400003, + -9.521905205999929 + ], + [ + 159.60954837300005, + -9.30982838299991 + ], + [ + 159.74366295700008, + -9.25953541499996 + ], + [ + 159.93970787900003, + -9.43287525799991 + ], + [ + 160.36638431100002, + -9.412774346999925 + ], + [ + 160.62842858200008, + -9.582289320999905 + ], + [ + 160.82634524800005, + -9.837334893999923 + ] + ], + [ + [ + 161.39478600400003, + -9.412774346999925 + ], + [ + 161.35434004, + -9.338555596999925 + ], + [ + 161.54517662900003, + -9.604668877999927 + ], + [ + 161.5586043630001, + -9.788995049999926 + ], + [ + 161.400726759, + -9.67001718499995 + ], + [ + 161.39478600400003, + -9.412774346999925 + ] + ], + [ + [ + 150.80095462300005, + -9.65243905999995 + ], + [ + 150.4336043630001, + -9.631280205999929 + ], + [ + 150.5136824880001, + -9.54697030999995 + ], + [ + 150.4321395190001, + -9.36532968499995 + ], + [ + 150.79835045700008, + -9.425713799999926 + ], + [ + 150.93091881600003, + -9.65243905999995 + ], + [ + 150.84131920700008, + -9.713962497999944 + ], + [ + 150.80095462300005, + -9.65243905999995 + ] + ], + [ + [ + 150.36890709700003, + -9.371840101999908 + ], + [ + 150.31226647200003, + -9.519463799999926 + ], + [ + 150.17164147200003, + -9.43564218499995 + ], + [ + 150.11280358200008, + -9.299411716999941 + ], + [ + 150.21452884200008, + -9.205824476999908 + ], + [ + 150.36890709700003, + -9.371840101999908 + ] + ], + [ + [ + 160.25407962300005, + -9.158949476999908 + ], + [ + 160.3149520190001, + -9.061700127999927 + ], + [ + 160.41423587300005, + -9.131605726999908 + ], + [ + 160.36638431100002, + -9.186211846999925 + ], + [ + 160.2304793630001, + -9.19304778399993 + ], + [ + 160.25407962300005, + -9.158949476999908 + ] + ], + [ + [ + 152.995468651, + -9.141298770999924 + ], + [ + 152.929446643, + -9.191946342999927 + ], + [ + 152.96741572200006, + -9.256545694999941 + ], + [ + 152.81155399200009, + -9.25467256199994 + ], + [ + 152.7442341630001, + -9.18126833699995 + ], + [ + 152.7358956920001, + -9.260399648999908 + ], + [ + 152.64421583700002, + -9.182558160999918 + ], + [ + 152.70451060900007, + -9.144571262999932 + ], + [ + 152.47161988800008, + -9.045130077999943 + ], + [ + 152.4516662010001, + -8.965270166999915 + ], + [ + 152.42142441200005, + -9.083721220999905 + ], + [ + 152.38862331100006, + -8.991154732999917 + ], + [ + 152.4523043810001, + -8.944989765999933 + ], + [ + 152.794170807, + -9.003496708999933 + ], + [ + 152.995468651, + -9.141298770999924 + ] + ], + [ + [ + 159.19516035200004, + -9.056573174999926 + ], + [ + 159.23609459700003, + -9.023044528999947 + ], + [ + 159.17408287900003, + -9.13844166499996 + ], + [ + 159.19516035200004, + -9.056573174999926 + ] + ], + [ + [ + 160.0966903000001, + -9.056573174999926 + ], + [ + 160.14771569100003, + -8.989678643999921 + ], + [ + 160.30144290500004, + -9.061618747999944 + ], + [ + 160.26449629, + -9.131605726999908 + ], + [ + 160.0966903000001, + -9.056573174999926 + ] + ], + [ + [ + 159.16716556100002, + -9.017998955999929 + ], + [ + 159.14730879, + -9.103692315999922 + ], + [ + 159.03931725400003, + -9.068536065999922 + ], + [ + 159.092133009, + -8.994398695999903 + ], + [ + 159.16716556100002, + -9.017998955999929 + ] + ], + [ + [ + 161.360687696, + -9.617608330999929 + ], + [ + 161.17920983200008, + -9.38176848799992 + ], + [ + 160.86793053500003, + -9.15211353999996 + ], + [ + 160.69312584700003, + -8.75123463299991 + ], + [ + 160.65447024800005, + -8.60409921699994 + ], + [ + 160.71998131600003, + -8.553399346999925 + ], + [ + 160.60132897200003, + -8.32545338299991 + ], + [ + 160.70281009200008, + -8.36451588299991 + ], + [ + 160.70573978000004, + -8.306247653999947 + ], + [ + 160.75896243600002, + -8.316664320999903 + ], + [ + 160.99683678500003, + -8.603773695999903 + ], + [ + 160.946625196, + -8.81373463299991 + ], + [ + 161.15113366000003, + -8.949639580999929 + ], + [ + 161.202484571, + -9.13844166499996 + ], + [ + 161.28492272200003, + -9.186211846999925 + ], + [ + 161.27881920700008, + -9.289239190999922 + ], + [ + 161.2353621750001, + -9.281182549999926 + ], + [ + 161.38111412900003, + -9.50904713299991 + ], + [ + 161.360687696, + -9.617608330999929 + ] + ], + [ + [ + 157.61548912900003, + -8.734470309999947 + ], + [ + 157.62232506600003, + -8.79583098799992 + ], + [ + 157.45240319100003, + -8.721856377999925 + ], + [ + 157.61548912900003, + -8.734470309999947 + ] + ], + [ + [ + 158.22877037900003, + -8.77467213299991 + ], + [ + 158.18718509200008, + -8.83684661299992 + ], + [ + 158.153656446, + -8.79656340899993 + ], + [ + 158.20826256600003, + -8.679131768999921 + ], + [ + 158.22877037900003, + -8.77467213299991 + ] + ], + [ + [ + 151.11255944100003, + -8.768649997999944 + ], + [ + 151.142914259, + -8.83066171699994 + ], + [ + 151.04363040500004, + -8.726983330999929 + ], + [ + 151.12132934300033, + -8.584909859193772 + ], + [ + 151.11255944100003, + -8.768649997999944 + ] + ], + [ + [ + 158.05689537900003, + -8.52825286299992 + ], + [ + 158.13249759200008, + -8.54550546699994 + ], + [ + 158.0649520190001, + -8.610935153999947 + ], + [ + 158.11890709700003, + -8.61777109199994 + ], + [ + 158.10572350400003, + -8.69109465899993 + ], + [ + 157.9570418630001, + -8.755954684999947 + ], + [ + 157.879242384, + -8.68254973799992 + ], + [ + 157.899750196, + -8.562432549999926 + ], + [ + 158.05689537900003, + -8.52825286299992 + ] + ], + [ + [ + 157.35865319100003, + -8.57675546699994 + ], + [ + 157.32935631600003, + -8.649102471999925 + ], + [ + 157.41382897200003, + -8.726983330999929 + ], + [ + 157.20093834700003, + -8.565850518999921 + ], + [ + 157.34750410200004, + -8.412530205999929 + ], + [ + 157.41382897200003, + -8.497979424999926 + ], + [ + 157.35865319100003, + -8.57675546699994 + ] + ], + [ + [ + 150.9648543630001, + -8.560723565999922 + ], + [ + 150.91911868600002, + -8.580417575999943 + ], + [ + 150.9511824880001, + -8.482435804999907 + ], + [ + 150.9648543630001, + -8.560723565999922 + ] + ], + [ + [ + 151.12144738233087, + -8.58243679131023 + ], + [ + 150.9990340500001, + -8.51816171699994 + ], + [ + 151.129242384, + -8.419122002999925 + ], + [ + 151.12144738233087, + -8.58243679131023 + ] + ], + [ + [ + 159.68864993600002, + -8.507907809999947 + ], + [ + 159.5498153000001, + -8.470798434999947 + ], + [ + 159.55827884200008, + -8.389418226999908 + ], + [ + 159.63591556100002, + -8.384209893999921 + ], + [ + 159.68864993600002, + -8.507907809999947 + ] + ], + [ + [ + 157.7973738940001, + -8.562432549999926 + ], + [ + 157.81788170700008, + -8.61777109199994 + ], + [ + 157.57764733200008, + -8.436211846999925 + ], + [ + 157.56462649800005, + -8.32350025799991 + ], + [ + 157.63233483200008, + -8.38836028399993 + ], + [ + 157.54965254, + -8.26140715899993 + ], + [ + 157.22820071700008, + -8.316664320999903 + ], + [ + 157.22486412900003, + -8.21770598799992 + ], + [ + 157.3169051440001, + -8.185723565999922 + ], + [ + 157.44109134200008, + -7.979668877999926 + ], + [ + 157.60564212300005, + -8.007582289999958 + ], + [ + 157.6396590500001, + -8.240899346999925 + ], + [ + 157.74586022200003, + -8.228692315999922 + ], + [ + 157.8383895190001, + -8.33717213299991 + ], + [ + 157.90691165500004, + -8.490899346999925 + ], + [ + 157.886078321, + -8.58294036299992 + ], + [ + 157.7973738940001, + -8.562432549999926 + ] + ], + [ + [ + 157.12517337300005, + -8.27507903399993 + ], + [ + 157.15251712300005, + -8.33717213299991 + ], + [ + 157.02263431100002, + -8.192803643999921 + ], + [ + 157.10084069100003, + -8.203545830999929 + ], + [ + 157.12517337300005, + -8.27507903399993 + ] + ], + [ + [ + 157.20769290500004, + -8.28875090899993 + ], + [ + 157.09782962300005, + -8.158949476999908 + ], + [ + 157.18726647200003, + -8.185723565999922 + ], + [ + 157.20769290500004, + -8.28875090899993 + ] + ], + [ + [ + 156.61117597700004, + -8.072686455999929 + ], + [ + 156.58741295700008, + -8.199395440999922 + ], + [ + 156.5498153000001, + -7.939222914999958 + ], + [ + 156.61117597700004, + -8.072686455999929 + ] + ], + [ + [ + 159.8593856130001, + -8.511325778999947 + ], + [ + 159.8872176440001, + -8.562432549999926 + ], + [ + 159.62720787900003, + -8.357598565999922 + ], + [ + 158.94809004, + -8.049086195999903 + ], + [ + 158.5849715500001, + -7.754327080999928 + ], + [ + 158.5849715500001, + -7.668633721999924 + ], + [ + 158.45199629, + -7.531996351999908 + ], + [ + 158.75171959700003, + -7.59343840899993 + ], + [ + 159.08570397200003, + -7.90357838299991 + ], + [ + 159.40259850400003, + -7.982354424999926 + ], + [ + 159.84205162900003, + -8.325616143999921 + ], + [ + 159.7568465500001, + -8.391778252999925 + ], + [ + 159.8593856130001, + -8.511325778999947 + ] + ], + [ + [ + 148.049164259, + -5.606133721999924 + ], + [ + 148.06763756600003, + -5.746840101999908 + ], + [ + 147.99105879, + -5.856215101999908 + ], + [ + 147.76905358200008, + -5.611748955999928 + ], + [ + 147.77133222700004, + -5.506931247999944 + ], + [ + 147.84717858200008, + -5.486423434999948 + ], + [ + 148.049164259, + -5.606133721999924 + ] + ], + [ + [ + 157.10466556100002, + -8.124932549999926 + ], + [ + 157.002289259, + -8.08684661299992 + ], + [ + 156.94703209700003, + -7.979668877999926 + ], + [ + 157.0019637380001, + -7.875176690999922 + ], + [ + 157.09107506600003, + -7.85051848799992 + ], + [ + 157.20093834700003, + -8.000746351999908 + ], + [ + 157.16724694100003, + -8.135511976999908 + ], + [ + 157.10466556100002, + -8.124932549999926 + ] + ], + [ + [ + 156.8071395190001, + -7.720147393999922 + ], + [ + 156.7207137380001, + -7.931817315999922 + ], + [ + 156.65967858200008, + -7.939222914999958 + ], + [ + 156.50416100400003, + -7.630059502999926 + ], + [ + 156.61117597700004, + -7.569431247999944 + ], + [ + 156.8071395190001, + -7.720147393999922 + ] + ], + [ + [ + 158.48609459700003, + -7.61028411299992 + ], + [ + 158.52361087300005, + -7.658135674999926 + ], + [ + 158.3169051440001, + -7.57935963299991 + ], + [ + 158.48609459700003, + -7.61028411299992 + ] + ], + [ + [ + 158.3652449880001, + -7.548272393999922 + ], + [ + 158.2685653000001, + -7.466973565999922 + ], + [ + 158.43482506600003, + -7.527764580999928 + ], + [ + 158.3652449880001, + -7.548272393999922 + ] + ], + [ + [ + 158.2832137380001, + -7.41179778399993 + ], + [ + 158.2490340500001, + -7.47323984199994 + ], + [ + 158.1943465500001, + -7.43840911299992 + ], + [ + 158.2832137380001, + -7.41179778399993 + ] + ], + [ + [ + 157.77621504, + -7.407972914999958 + ], + [ + 157.7973738940001, + -7.47323984199994 + ], + [ + 157.67855879, + -7.44817473799992 + ], + [ + 157.7216903000001, + -7.383884372999944 + ], + [ + 157.77621504, + -7.407972914999958 + ] + ], + [ + [ + 157.61158287900003, + -7.404229424999926 + ], + [ + 157.61898847700004, + -7.45208098799992 + ], + [ + 157.4755965500001, + -7.41179778399993 + ], + [ + 157.61158287900003, + -7.404229424999926 + ] + ], + [ + [ + 155.5703231130001, + -7.322930596999924 + ], + [ + 155.59742272200003, + -7.382907809999948 + ], + [ + 155.50798587300005, + -7.375746351999908 + ], + [ + 155.5703231130001, + -7.322930596999924 + ] + ], + [ + [ + 155.816742384, + -7.020684502999926 + ], + [ + 155.850922071, + -7.09929778399993 + ], + [ + 155.6728621750001, + -7.08953215899993 + ], + [ + 155.7348738940001, + -6.96607838299991 + ], + [ + 155.816742384, + -7.020684502999926 + ] + ], + [ + [ + 157.5297957690001, + -7.333184502999926 + ], + [ + 157.44792728000004, + -7.43222421699994 + ], + [ + 157.3169051440001, + -7.336602471999924 + ], + [ + 157.27662194100003, + -7.37078215899993 + ], + [ + 157.0146590500001, + -7.282647393999922 + ], + [ + 156.68702233200008, + -6.897149346999924 + ], + [ + 156.46111087300005, + -6.73333098799992 + ], + [ + 156.454437696, + -6.630791924999926 + ], + [ + 156.54802493600002, + -6.610528252999926 + ], + [ + 157.04265384200008, + -6.897149346999924 + ], + [ + 157.18726647200003, + -7.178887627999926 + ], + [ + 157.38648522200003, + -7.322930596999924 + ], + [ + 157.5297957690001, + -7.333184502999926 + ] + ], + [ + [ + 156.11841881600003, + -6.918226820999904 + ], + [ + 156.04273522200003, + -6.980401299999926 + ], + [ + 156.07683353000004, + -6.815199476999908 + ], + [ + 156.11841881600003, + -6.918226820999904 + ] + ], + [ + [ + 155.93344160200004, + -6.640801690999922 + ], + [ + 155.9301863940001, + -6.793633721999924 + ], + [ + 155.91578209700003, + -6.72714609199994 + ], + [ + 155.87818444100003, + -6.801527601999908 + ], + [ + 155.8164168630001, + -6.78215911299992 + ], + [ + 155.69703209700003, + -6.87664153399993 + ], + [ + 155.3300887380001, + -6.71965911299992 + ], + [ + 155.17310631600003, + -6.52792734199994 + ], + [ + 155.2348738940001, + -6.45435963299991 + ], + [ + 155.2148543630001, + -6.317071221999924 + ], + [ + 154.99089603000004, + -6.208754164999958 + ], + [ + 154.7558699880001, + -5.94784921699994 + ], + [ + 154.7002059250001, + -5.76685963299991 + ], + [ + 154.770355665, + -5.558770440999922 + ], + [ + 154.7002059250001, + -5.431084893999922 + ], + [ + 154.891937696, + -5.554620049999926 + ], + [ + 155.0649520190001, + -5.54778411299992 + ], + [ + 155.2133895190001, + -5.869886976999908 + ], + [ + 155.37037194100003, + -5.957289320999904 + ], + [ + 155.50277754, + -6.189222914999958 + ], + [ + 155.63851972700004, + -6.178399346999924 + ], + [ + 155.813324415, + -6.364841403999946 + ], + [ + 155.93344160200004, + -6.640801690999922 + ] + ], + [ + [ + 175.59148196700008, + -1.874200127999927 + ], + [ + 175.586273634, + -1.922458591999941 + ], + [ + 175.55225670700008, + -1.81926848799992 + ], + [ + 175.59148196700008, + -1.874200127999927 + ] + ], + [ + [ + 176.00928795700008, + -1.334242445999962 + ], + [ + 176.01832116000003, + -1.387872002999927 + ], + [ + 175.94214928500003, + -1.28484465899993 + ], + [ + 176.00928795700008, + -1.334242445999962 + ] + ], + [ + [ + 147.60694420700008, + -5.287204684999948 + ], + [ + 147.647797071, + -5.32122161299992 + ], + [ + 147.6001082690001, + -5.362888278999946 + ], + [ + 147.56202233200008, + -5.307793877999926 + ], + [ + 147.60694420700008, + -5.287204684999948 + ] + ], + [ + [ + 147.20964603000004, + -5.269952080999928 + ], + [ + 147.24382571700008, + -5.355401299999926 + ], + [ + 147.16187584700003, + -5.444756768999922 + ], + [ + 147.00513756600003, + -5.319431247999944 + ], + [ + 147.11255944100003, + -5.191827080999928 + ], + [ + 147.20964603000004, + -5.269952080999928 + ] + ], + [ + [ + 146.20289147200003, + -4.824639580999928 + ], + [ + 146.24333743600002, + -4.787367445999904 + ], + [ + 146.26384524800005, + -4.83521900799991 + ], + [ + 146.20289147200003, + -4.824639580999928 + ] + ], + [ + [ + 154.727386915, + -5.211358330999928 + ], + [ + 154.68873131600003, + -5.427341403999946 + ], + [ + 154.6318465500001, + -5.459079684999948 + ], + [ + 154.57764733200008, + -5.119561455999928 + ], + [ + 154.5356551440001, + -5.137465101999908 + ], + [ + 154.624359571, + -5.01336028399993 + ], + [ + 154.727386915, + -5.211358330999928 + ] + ], + [ + [ + 152.4179793630001, + -4.345310153999946 + ], + [ + 152.36085045700008, + -4.506524346999924 + ], + [ + 152.41163170700008, + -4.683770440999922 + ], + [ + 152.29184004, + -4.935479424999926 + ], + [ + 152.15772545700008, + -4.99928150799991 + ], + [ + 151.97437584700003, + -4.984144789999958 + ], + [ + 151.9775496750001, + -5.148614190999922 + ], + [ + 152.1474715500001, + -5.345798434999948 + ], + [ + 152.09888756600003, + -5.455743096999924 + ], + [ + 151.83423912900003, + -5.592950127999926 + ], + [ + 151.72046959700003, + -5.528903903999946 + ], + [ + 151.61931399800005, + -5.57512786299992 + ], + [ + 151.46412194100003, + -5.534274997999944 + ], + [ + 151.532562696, + -5.664727471999924 + ], + [ + 151.18279056100002, + -5.964288018999922 + ], + [ + 151.0610457690001, + -6.029392184999948 + ], + [ + 150.82146243600002, + -6.013929945999904 + ], + [ + 150.79607181100002, + -6.120293877999926 + ], + [ + 150.46509850400003, + -6.27402109199994 + ], + [ + 149.63542728000004, + -6.308200778999946 + ], + [ + 149.48812910200004, + -6.12004973799992 + ], + [ + 149.32056725400003, + -6.054864190999922 + ], + [ + 149.05290774800005, + -6.161716403999946 + ], + [ + 149.053070509, + -6.006524346999924 + ], + [ + 148.8681746750001, + -5.992852471999924 + ], + [ + 148.76441491000003, + -5.862725518999922 + ], + [ + 148.38624108200008, + -5.77507903399993 + ], + [ + 148.328949415, + -5.683770440999922 + ], + [ + 148.34205162900003, + -5.533298434999948 + ], + [ + 148.42994225400003, + -5.444756768999922 + ], + [ + 148.55640709700003, + -5.53997161299992 + ], + [ + 148.65186608200008, + -5.480889580999928 + ], + [ + 148.8476668630001, + -5.540948174999926 + ], + [ + 148.97803795700008, + -5.465264580999928 + ], + [ + 149.22437584700003, + -5.59929778399993 + ], + [ + 149.49878991000003, + -5.58879973799992 + ], + [ + 149.67009524800005, + -5.478936455999928 + ], + [ + 149.71843509200008, + -5.56894296699994 + ], + [ + 149.911468946, + -5.515069268999922 + ], + [ + 149.9853621750001, + -5.42083098799992 + ], + [ + 149.9165145190001, + -5.349216403999946 + ], + [ + 150.0263778000001, + -5.225030205999928 + ], + [ + 150.01319420700008, + -5.085544528999946 + ], + [ + 150.11255944100003, + -5.007745049999926 + ], + [ + 150.20240319100003, + -5.062107028999946 + ], + [ + 150.07536868600002, + -5.15911223799992 + ], + [ + 150.032074415, + -5.295179945999904 + ], + [ + 150.16130618600002, + -5.546644789999958 + ], + [ + 150.30689537900003, + -5.56145598799992 + ], + [ + 150.47413170700008, + -5.447930596999924 + ], + [ + 150.63396243600002, + -5.556735934999948 + ], + [ + 150.8095809250001, + -5.443291924999926 + ], + [ + 150.9170028000001, + -5.486423434999948 + ], + [ + 151.012543165, + -5.410577080999928 + ], + [ + 151.082855665, + -5.163832289999958 + ], + [ + 151.36890709700003, + -4.903497002999926 + ], + [ + 151.61247806100002, + -4.965590101999908 + ], + [ + 151.67896569100003, + -4.900160414999958 + ], + [ + 151.65748131600003, + -4.608086846999924 + ], + [ + 151.51978600400003, + -4.320733330999928 + ], + [ + 151.54029381600003, + -4.17669036299992 + ], + [ + 151.81714928500003, + -4.213962497999944 + ], + [ + 151.96469160200004, + -4.331231377999927 + ], + [ + 152.0302840500001, + -4.27662525799991 + ], + [ + 152.008636915, + -4.191664320999905 + ], + [ + 152.1367293630001, + -4.204685153999946 + ], + [ + 152.18506920700008, + -4.142510674999926 + ], + [ + 152.24577884200008, + -4.235121351999908 + ], + [ + 152.17758222700004, + -4.210870049999926 + ], + [ + 152.18572024800005, + -4.308526299999926 + ], + [ + 152.4179793630001, + -4.345310153999946 + ] + ], + [ + [ + 151.1884871750001, + -4.89153411299992 + ], + [ + 151.20679772200003, + -4.947523695999904 + ], + [ + 151.119476759, + -4.925713799999926 + ], + [ + 151.1884871750001, + -4.89153411299992 + ] + ], + [ + [ + 149.121918165, + -4.883070570999904 + ], + [ + 149.18043053500003, + -4.879164320999904 + ], + [ + 149.15609785200004, + -4.924004815999922 + ], + [ + 149.121918165, + -4.883070570999904 + ] + ], + [ + [ + 149.51929772200003, + -4.64348723799992 + ], + [ + 149.56023196700008, + -4.717950127999926 + ], + [ + 149.51246178500003, + -4.66334400799991 + ], + [ + 149.45460045700008, + -4.692478122999944 + ], + [ + 149.51929772200003, + -4.64348723799992 + ] + ], + [ + [ + 152.48658287900003, + -4.136325778999946 + ], + [ + 152.4926863940001, + -4.210870049999926 + ], + [ + 152.43132571700008, + -4.16301848799992 + ], + [ + 152.48658287900003, + -4.136325778999946 + ] + ], + [ + [ + 153.66480553500003, + -4.04070403399993 + ], + [ + 153.62964928500003, + -4.129978122999944 + ], + [ + 153.5898543630001, + -4.088067315999922 + ], + [ + 153.66480553500003, + -4.04070403399993 + ] + ], + [ + [ + 153.7192488940001, + -3.999200127999927 + ], + [ + 153.7329207690001, + -4.04070403399993 + ], + [ + 153.67888431100002, + -4.026462497999944 + ], + [ + 153.7192488940001, + -3.999200127999927 + ] + ], + [ + [ + 153.1372176440001, + -4.269463799999926 + ], + [ + 153.1372176440001, + -4.37590911299992 + ], + [ + 153.0410262380001, + -4.485772393999923 + ], + [ + 153.0752059250001, + -4.601820570999904 + ], + [ + 152.89771569100003, + -4.848321221999924 + ], + [ + 152.689789259, + -4.54778411299992 + ], + [ + 152.687836134, + -4.163832289999959 + ], + [ + 152.28858483200008, + -3.569756768999923 + ], + [ + 151.8090926440001, + -3.361097914999959 + ], + [ + 151.61247806100002, + -3.166192315999922 + ], + [ + 151.09058678500003, + -2.832696221999924 + ], + [ + 150.7597762380001, + -2.76881275799991 + ], + [ + 150.76002037900003, + -2.711032809999949 + ], + [ + 150.89242597700004, + -2.697523695999962 + ], + [ + 150.7934676440001, + -2.615004164999959 + ], + [ + 150.81267337300005, + -2.555840752999927 + ], + [ + 151.21631920700008, + -2.869235934999949 + ], + [ + 151.43734785200004, + -2.908868096999924 + ], + [ + 151.813812696, + -3.187432549999926 + ], + [ + 152.05250084700003, + -3.246677341999941 + ], + [ + 152.42465254, + -3.656508070999905 + ], + [ + 152.506195509, + -3.657321872999944 + ], + [ + 152.57496178500003, + -3.821058851999908 + ], + [ + 152.82349694100003, + -3.871351820999905 + ], + [ + 152.8711043630001, + -3.990899346999924 + ], + [ + 152.94605553500003, + -3.985528252999927 + ], + [ + 153.1372176440001, + -4.269463799999926 + ] + ], + [ + [ + 153.191742384, + -3.470961195999962 + ], + [ + 153.2334090500001, + -3.44426848799992 + ], + [ + 153.260101759, + -3.49895598799992 + ], + [ + 153.191742384, + -3.470961195999962 + ] + ], + [ + [ + 153.301605665, + -3.368584893999923 + ], + [ + 153.34327233200008, + -3.416273695999962 + ], + [ + 153.2675887380001, + -3.40325286299992 + ], + [ + 153.301605665, + -3.368584893999923 + ] + ], + [ + [ + 154.64197130700006, + -3.262331511999946 + ], + [ + 154.7317787080001, + -3.460813799999926 + ], + [ + 154.55318034700005, + -3.206315333999953 + ], + [ + 154.64197130700006, + -3.262331511999946 + ] + ], + [ + [ + 152.65064537900003, + -3.114678643999923 + ], + [ + 152.64380944100003, + -3.224541924999926 + ], + [ + 152.53155693300002, + -3.075272107999922 + ], + [ + 152.65064537900003, + -3.046482028999946 + ], + [ + 152.65064537900003, + -3.114678643999923 + ] + ], + [ + [ + 150.9921981130001, + -2.957696221999924 + ], + [ + 150.76978600400003, + -2.979587497999944 + ], + [ + 150.88233483200008, + -2.903008721999924 + ], + [ + 150.9921981130001, + -2.957696221999924 + ] + ], + [ + [ + 152.07154381600003, + -2.916680596999924 + ], + [ + 152.02535590800005, + -2.996071559999961 + ], + [ + 151.97193444100003, + -2.847832940999922 + ], + [ + 152.07154381600003, + -2.916680596999924 + ] + ], + [ + [ + 152.01319420700008, + -2.806817315999922 + ], + [ + 151.91584022900008, + -2.844289881999941 + ], + [ + 151.9130377360001, + -2.705389387999958 + ], + [ + 152.0097762380001, + -2.744805596999924 + ], + [ + 152.01319420700008, + -2.806817315999922 + ] + ], + [ + [ + 145.99683678500003, + -4.534274997999944 + ], + [ + 146.0551863940001, + -4.659926039999958 + ], + [ + 145.93921959700003, + -4.760918877999926 + ], + [ + 145.88070722700004, + -4.649590752999926 + ], + [ + 145.99683678500003, + -4.534274997999944 + ] + ], + [ + [ + 145.07886803500003, + -4.047051690999922 + ], + [ + 145.1001082690001, + -4.116306247999944 + ], + [ + 145.03834069100003, + -4.122816664999959 + ], + [ + 145.02711022200003, + -4.058200778999946 + ], + [ + 145.07886803500003, + -4.047051690999922 + ] + ], + [ + [ + 147.8266707690001, + -2.23756275799991 + ], + [ + 147.85816491000003, + -2.324476820999962 + ], + [ + 147.7304793630001, + -2.326429945999962 + ], + [ + 147.8266707690001, + -2.23756275799991 + ] + ], + [ + [ + 147.43279056100002, + -1.983819268999923 + ], + [ + 147.43116295700008, + -2.060804945999962 + ], + [ + 147.29175866000003, + -2.064222914999959 + ], + [ + 147.20573978000004, + -2.186130466999941 + ], + [ + 146.95492597700004, + -2.194756768999923 + ], + [ + 146.70240319100003, + -2.114353122999944 + ], + [ + 146.72771243600002, + -2.17669036299992 + ], + [ + 146.57154381600003, + -2.228122653999946 + ], + [ + 146.52019290500004, + -2.149590752999927 + ], + [ + 146.6171981130001, + -2.106866143999923 + ], + [ + 146.5805770190001, + -1.995212497999944 + ], + [ + 146.65788821700008, + -1.963311455999928 + ], + [ + 147.11003665500004, + -1.963311455999928 + ], + [ + 147.41578209700003, + -2.04583098799992 + ], + [ + 147.3808699880001, + -1.961521091999941 + ], + [ + 147.43279056100002, + -1.983819268999923 + ] + ], + [ + [ + 174.76514733200008, + -1.202894789999959 + ], + [ + 174.77881920700008, + -1.264418226999908 + ], + [ + 174.71664472700004, + -1.134698174999926 + ], + [ + 174.76514733200008, + -1.202894789999959 + ] + ], + [ + [ + 174.4765731130001, + -0.709567966999941 + ], + [ + 174.4834090500001, + -0.819431247999944 + ], + [ + 174.4629012380001, + -0.64812590899993 + ], + [ + 174.4765731130001, + -0.709567966999941 + ] + ], + [ + [ + 173.07593834700003, + 0.965887762000079 + ], + [ + 172.99097741000003, + 0.834418036000045 + ], + [ + 173.07178795700008, + 0.962591864000046 + ], + [ + 172.99000084700003, + 1.02407461100006 + ], + [ + 173.07593834700003, + 0.965887762000079 + ] + ], + [ + [ + 172.98031660200004, + 1.882025458000044 + ], + [ + 173.0234481130001, + 1.821437893000052 + ], + [ + 172.93474368600002, + 1.942694403000076 + ], + [ + 172.98031660200004, + 1.882025458000044 + ] + ], + [ + [ + 151.9824324880001, + -2.662774346999924 + ], + [ + 151.99952233200008, + -2.594496351999908 + ], + [ + 152.03736412900003, + -2.642347914999959 + ], + [ + 151.9824324880001, + -2.662774346999924 + ] + ], + [ + [ + 150.46509850400003, + -2.53248463299991 + ], + [ + 150.45134524800005, + -2.658379815999922 + ], + [ + 150.18677819100003, + -2.679457289999959 + ], + [ + 149.95875084700003, + -2.462985934999949 + ], + [ + 150.207855665, + -2.374769789999959 + ], + [ + 150.46509850400003, + -2.53248463299991 + ] + ], + [ + [ + 149.73503665500004, + -1.47356536299992 + ], + [ + 149.7929793630001, + -1.580336195999962 + ], + [ + 149.6670028000001, + -1.57586028399993 + ], + [ + 149.53980553500003, + -1.42546965899993 + ], + [ + 149.61866295700008, + -1.353773695999962 + ], + [ + 149.73503665500004, + -1.47356536299992 + ] + ], + [ + [ + 163.02605228000004, + 5.34088776200008 + ], + [ + 163.01921634200008, + 5.272691148000092 + ], + [ + 162.91618899800005, + 5.286932684000078 + ], + [ + 162.9907332690001, + 5.374823309000078 + ], + [ + 163.02605228000004, + 5.34088776200008 + ] + ], + [ + [ + 158.29078209700003, + 6.937974351000094 + ], + [ + 158.313812696, + 6.808661200000074 + ], + [ + 158.1801863940001, + 6.802476304000038 + ], + [ + 158.13249759200008, + 6.941351630000042 + ], + [ + 158.29078209700003, + 6.937974351000094 + ] + ], + [ + [ + 151.58863366000003, + 7.383612372000074 + ], + [ + 151.6445418630001, + 7.336086330000058 + ], + [ + 151.56812584700003, + 7.342678127000056 + ], + [ + 151.58863366000003, + 7.383612372000074 + ] + ], + [ + [ + 154.29965254, + 8.175116278000075 + ], + [ + 154.2959090500001, + 8.10594310099998 + ], + [ + 154.23845462300017, + 8.14337799700013 + ], + [ + 154.29965254, + 8.175116278000075 + ] + ], + [ + [ + 173.30203459840982, + 1.973444245538328 + ], + [ + 173.30445397200003, + 1.96157461100006 + ], + [ + 173.25749759200008, + 1.974595445000091 + ], + [ + 173.30203459840982, + 1.973444245538328 + ] + ], + [ + [ + 171.3935653000001, + 7.109930731000078 + ], + [ + 171.235199415, + 7.067694403000076 + ], + [ + 171.0356551440001, + 7.155096747000074 + ], + [ + 171.22641035200004, + 7.075751044000072 + ], + [ + 171.3935653000001, + 7.109930731000078 + ] + ], + [ + [ + 168.7578231130001, + 7.307928778000076 + ], + [ + 168.67505944100003, + 7.320868231000078 + ], + [ + 168.8300887380001, + 7.307928778000076 + ], + [ + 168.7578231130001, + 7.307928778000076 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 142.40203637443312, + -8.279044391453162 + ], + [ + 142.36003665500004, + -8.167087497999944 + ], + [ + 142.14616946700005, + -8.21738046699994 + ], + [ + 142.3540145190001, + -8.18873463299991 + ], + [ + 142.40203637443312, + -8.279044391453162 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 142.91, + -9.9 + ], + [ + 142.92, + -9.9 + ], + [ + 142.92, + -9.8 + ], + [ + 142.91, + -9.8 + ], + [ + 142.91, + -9.9 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 179, + -16.905859962108607 + ], + [ + 178.91000410200004, + -16.84807708099993 + ], + [ + 178.73389733200008, + -17.007012627999927 + ], + [ + 178.63640384200008, + -16.80706145599993 + ], + [ + 178.48560631600003, + -16.79338958099993 + ], + [ + 178.58562259200008, + -16.665134372999944 + ], + [ + 178.53394616000003, + -16.62900155999995 + ], + [ + 178.80095462300005, + -16.635837497999944 + ], + [ + 178.9170028000001, + -16.470635674999926 + ], + [ + 179, + -16.45994695723346 + ], + [ + 179, + -10 + ], + [ + 155, + -10 + ], + [ + 155, + -25 + ], + [ + 179, + -25 + ], + [ + 179, + -16.905859962108607 + ] + ], + [ + [ + 167.52100670700008, + -22.56959400799991 + ], + [ + 167.5551863940001, + -22.63844166499996 + ], + [ + 167.41871178500003, + -22.645277601999908 + ], + [ + 167.43230228000004, + -22.54225025799991 + ], + [ + 167.52100670700008, + -22.56959400799991 + ] + ], + [ + [ + 166.8017684250001, + -22.39885833099993 + ], + [ + 166.84343509200008, + -22.42441171699994 + ], + [ + 166.8017684250001, + -22.46306731599992 + ], + [ + 166.8017684250001, + -22.39885833099993 + ] + ], + [ + [ + 168.13746178500003, + -21.43181731599992 + ], + [ + 168.12680097700004, + -21.622247002999927 + ], + [ + 167.99293053500003, + -21.654961846999925 + ], + [ + 167.86117597700004, + -21.600681247999944 + ], + [ + 167.8916121750001, + -21.541680596999925 + ], + [ + 167.80844160200004, + -21.383965752999927 + ], + [ + 167.98780358200008, + -21.335625908999926 + ], + [ + 168.00766035200004, + -21.45289478999996 + ], + [ + 168.13746178500003, + -21.43181731599992 + ] + ], + [ + [ + 167.03443444100003, + -22.237481377999927 + ], + [ + 166.91570071700008, + -22.395603122999944 + ], + [ + 166.8403426440001, + -22.297946872999944 + ], + [ + 166.84327233200008, + -22.378350518999923 + ], + [ + 166.777679884, + -22.392022393999923 + ], + [ + 166.54558353000004, + -22.23756275799991 + ], + [ + 166.43669681100002, + -22.308038018999923 + ], + [ + 166.43181399800005, + -22.17229583099993 + ], + [ + 166.34400475400003, + -22.22747161299992 + ], + [ + 166.3281356130001, + -22.14495208099993 + ], + [ + 166.10889733200008, + -22.09042734199994 + ], + [ + 166.16334069100003, + -22.024590752999927 + ], + [ + 166.06120853000004, + -21.89120859199994 + ], + [ + 166.00318444100003, + -21.963962497999944 + ], + [ + 165.810883009, + -21.858575127999927 + ], + [ + 165.7329207690001, + -21.719821872999944 + ], + [ + 165.6777449880001, + -21.761407158999926 + ], + [ + 165.46314537900003, + -21.60564544099992 + ], + [ + 165.29078209700003, + -21.57675546699994 + ], + [ + 164.98552493600002, + -21.30201588299991 + ], + [ + 164.95142662900003, + -21.353773695999905 + ], + [ + 164.7910262380001, + -21.064385674999922 + ], + [ + 164.711761915, + -21.089776299999922 + ], + [ + 164.656586134, + -20.94589609199994 + ], + [ + 164.3754988940001, + -20.77402109199994 + ], + [ + 164.4043074880001, + -20.725355726999908 + ], + [ + 164.123383009, + -20.410821221999925 + ], + [ + 164.1665145190001, + -20.33212655999995 + ], + [ + 163.99480228000004, + -20.26425546699994 + ], + [ + 164.05640709700003, + -20.227634372999944 + ], + [ + 163.99195397200003, + -20.083103122999944 + ], + [ + 164.31657962300005, + -20.319105726999908 + ], + [ + 164.30648847700004, + -20.235039971999925 + ], + [ + 164.49561608200008, + -20.300225518999923 + ], + [ + 164.94792728000004, + -20.68368905999995 + ], + [ + 165.21753991000003, + -20.764418226999908 + ], + [ + 165.6230574880001, + -21.26799895599993 + ], + [ + 165.7812606130001, + -21.31617603999996 + ], + [ + 165.856293165, + -21.418715101999908 + ], + [ + 165.89405358200008, + -21.36109791499996 + ], + [ + 165.96648196700008, + -21.503024997999944 + ], + [ + 165.96941165500004, + -21.410414320999905 + ], + [ + 166.07488040500004, + -21.528008721999925 + ], + [ + 166.37037194100003, + -21.658949476999908 + ], + [ + 166.719086134, + -21.952569268999923 + ], + [ + 166.68506920700008, + -21.98056405999995 + ], + [ + 166.938812696, + -22.07984791499996 + ], + [ + 167.03443444100003, + -22.237481377999927 + ] + ], + [ + [ + 167.43230228000004, + -21.02776458099993 + ], + [ + 167.46469160200004, + -21.063653252999927 + ], + [ + 167.39079837300005, + -21.17864348799992 + ], + [ + 167.1201278000001, + -21.051934502999927 + ], + [ + 167.020843946, + -20.911716403999947 + ], + [ + 167.1215926440001, + -20.901543877999927 + ], + [ + 167.19092858200008, + -20.809991143999923 + ], + [ + 167.04444420700008, + -20.768243096999925 + ], + [ + 167.05884850400003, + -20.715997002999927 + ], + [ + 167.21257571700008, + -20.672133070999905 + ], + [ + 167.3012801440001, + -20.71306731599992 + ], + [ + 167.28150475400003, + -20.89430103999996 + ], + [ + 167.43230228000004, + -21.02776458099993 + ] + ], + [ + [ + 166.6372176440001, + -20.42506275799991 + ], + [ + 166.6738387380001, + -20.463636976999908 + ], + [ + 166.57927493600002, + -20.549574476999908 + ], + [ + 166.629730665, + -20.596368096999925 + ], + [ + 166.49390709700003, + -20.71306731599992 + ], + [ + 166.60377037900003, + -20.458591403999947 + ], + [ + 166.56373131600003, + -20.401950778999947 + ], + [ + 166.6372176440001, + -20.42506275799991 + ] + ], + [ + [ + 169.8403426440001, + -20.14080169099992 + ], + [ + 169.8989363940001, + -20.19231536299992 + ], + [ + 169.8715926440001, + -20.239434502999927 + ], + [ + 169.73796634200008, + -20.208916924999922 + ], + [ + 169.75554446700008, + -20.14381275799991 + ], + [ + 169.8403426440001, + -20.14080169099992 + ] + ], + [ + [ + 169.43279056100002, + -19.492852471999925 + ], + [ + 169.50171959700003, + -19.52752044099992 + ], + [ + 169.43620853000004, + -19.657321872999944 + ], + [ + 169.21851647200003, + -19.490166924999922 + ], + [ + 169.24341881600003, + -19.34197356599992 + ], + [ + 169.33659915500004, + -19.31462981599992 + ], + [ + 169.35767662900003, + -19.45525481599992 + ], + [ + 169.43279056100002, + -19.492852471999925 + ] + ], + [ + [ + 178.43034915500004, + -18.95525481599992 + ], + [ + 178.4965926440001, + -19.013278903999947 + ], + [ + 178.28150475400003, + -19.007419528999947 + ], + [ + 178.1743270190001, + -19.075860283999926 + ], + [ + 178.17896569100003, + -19.15748463299991 + ], + [ + 177.9511824880001, + -19.129652601999908 + ], + [ + 178.22608483200008, + -18.96412525799991 + ], + [ + 178.43034915500004, + -18.95525481599992 + ] + ], + [ + [ + 169.33659915500004, + -18.93482838299991 + ], + [ + 169.27507571700008, + -18.99928150799991 + ], + [ + 168.9873153000001, + -18.876560153999947 + ], + [ + 169.008148634, + -18.649997653999947 + ], + [ + 169.1523543630001, + -18.636325778999947 + ], + [ + 169.17212975400003, + -18.726495049999922 + ], + [ + 169.26832116000003, + -18.76995208099993 + ], + [ + 169.19320722700004, + -18.787041924999922 + ], + [ + 169.33659915500004, + -18.93482838299991 + ] + ], + [ + [ + 178.7114363940001, + -17.99195728999996 + ], + [ + 178.58863366000003, + -18.13600025799991 + ], + [ + 178.38990319100003, + -18.101820570999905 + ], + [ + 178.168304884, + -18.24846770599993 + ], + [ + 177.89405358200008, + -18.273125908999926 + ], + [ + 177.3359481130001, + -18.10556405999995 + ], + [ + 177.25163821700008, + -17.952243747999944 + ], + [ + 177.2656356130001, + -17.859551690999922 + ], + [ + 177.43433678500003, + -17.750176690999922 + ], + [ + 177.38892662900003, + -17.640557549999926 + ], + [ + 177.51514733200008, + -17.505059502999927 + ], + [ + 177.63892662900003, + -17.437107028999947 + ], + [ + 177.6630965500001, + -17.49846770599993 + ], + [ + 177.6630965500001, + -17.44394296699994 + ], + [ + 177.82992597700004, + -17.364027601999908 + ], + [ + 177.82016035200004, + -17.417168877999927 + ], + [ + 177.95622806100002, + -17.402520440999922 + ], + [ + 178.19011478000004, + -17.30055103999996 + ], + [ + 178.286468946, + -17.38372161299992 + ], + [ + 178.24537194100003, + -17.47128671699994 + ], + [ + 178.34831790500004, + -17.440118096999925 + ], + [ + 178.5908309250001, + -17.63095468499995 + ], + [ + 178.567718946, + -17.754978122999944 + ], + [ + 178.63599694100003, + -17.86370208099993 + ], + [ + 178.59489993600002, + -17.926039320999905 + ], + [ + 178.7114363940001, + -17.99195728999996 + ] + ], + [ + [ + 178.7763778000001, + -17.628838799999926 + ], + [ + 178.83554366700002, + -17.693159091999917 + ], + [ + 178.7680770190001, + -17.747165622999944 + ], + [ + 178.7763778000001, + -17.628838799999926 + ] + ], + [ + [ + 168.54957116000003, + -17.691013278999947 + ], + [ + 168.54761803500003, + -17.784600518999923 + ], + [ + 168.48414147200003, + -17.82073333099993 + ], + [ + 168.24732506600003, + -17.786553643999923 + ], + [ + 168.30933678500003, + -17.731215101999908 + ], + [ + 168.25171959700003, + -17.695570570999905 + ], + [ + 168.15113366000003, + -17.718194268999923 + ], + [ + 168.32300866000003, + -17.532647393999923 + ], + [ + 168.45337975400003, + -17.546319268999923 + ], + [ + 168.54957116000003, + -17.691013278999947 + ] + ], + [ + [ + 177.09392337300005, + -17.245293877999927 + ], + [ + 177.16285241000003, + -17.265801690999922 + ], + [ + 177.1118270190001, + -17.31031666499996 + ], + [ + 177.09392337300005, + -17.245293877999927 + ] + ], + [ + [ + 177.27214603000004, + -17.080824476999908 + ], + [ + 177.17595462300005, + -17.16334400799991 + ], + [ + 177.21827233200008, + -17.073825778999947 + ], + [ + 177.27214603000004, + -17.080824476999908 + ] + ], + [ + [ + 177.443695509, + -16.867852471999925 + ], + [ + 177.395355665, + -16.93678150799991 + ], + [ + 177.39576256600003, + -16.86614348799992 + ], + [ + 177.443695509, + -16.867852471999925 + ] + ], + [ + [ + 178.3339949880001, + -16.79338958099993 + ], + [ + 178.29021243600002, + -16.83440520599993 + ], + [ + 178.28003991000003, + -16.786716403999947 + ], + [ + 178.3339949880001, + -16.79338958099993 + ] + ], + [ + [ + 177.56072024800005, + -16.676853122999944 + ], + [ + 177.58033287900003, + -16.728448174999926 + ], + [ + 177.4296981130001, + -16.83440520599993 + ], + [ + 177.56072024800005, + -16.676853122999944 + ] + ], + [ + [ + 168.19206790500004, + -16.813897393999923 + ], + [ + 168.12037194100003, + -16.709161065999922 + ], + [ + 168.14421634200008, + -16.573011976999908 + ], + [ + 168.48072350400003, + -16.800225518999923 + ], + [ + 168.47388756600003, + -16.84807708099993 + ], + [ + 168.33326256600003, + -16.786716403999947 + ], + [ + 168.19206790500004, + -16.813897393999923 + ] + ], + [ + [ + 168.32960045700008, + -16.53964609199994 + ], + [ + 168.2954207690001, + -16.497979424999926 + ], + [ + 168.34937584700003, + -16.497979424999926 + ], + [ + 168.32960045700008, + -16.53964609199994 + ] + ], + [ + [ + 167.8125106130001, + -16.419528903999947 + ], + [ + 167.84392337300005, + -16.457696221999925 + ], + [ + 167.76059004, + -16.546319268999923 + ], + [ + 167.621918165, + -16.49423593499995 + ], + [ + 167.45875084700003, + -16.567966403999947 + ], + [ + 167.37484785200004, + -16.192966403999947 + ], + [ + 167.32243899800005, + -16.11500416499996 + ], + [ + 167.23308353000004, + -16.16961028399993 + ], + [ + 167.1474715500001, + -16.08294036299992 + ], + [ + 167.18531334700003, + -15.89072030999995 + ], + [ + 167.33611087300005, + -15.908949476999908 + ], + [ + 167.39763431100002, + -16.087090752999927 + ], + [ + 167.7724715500001, + -16.33603280999995 + ], + [ + 167.78923587300005, + -16.470635674999926 + ], + [ + 167.8125106130001, + -16.419528903999947 + ] + ], + [ + [ + 168.18238366000003, + -16.347832940999922 + ], + [ + 168.0219832690001, + -16.32659270599993 + ], + [ + 167.91285241000003, + -16.233086846999925 + ], + [ + 168.17164147200003, + -16.080254815999922 + ], + [ + 168.32984459700003, + -16.306247653999947 + ], + [ + 168.18238366000003, + -16.347832940999922 + ] + ], + [ + [ + 168.18580162900003, + -15.517836195999905 + ], + [ + 168.270355665, + -15.914239190999922 + ], + [ + 168.20427493600002, + -15.992445570999905 + ], + [ + 168.1196395190001, + -15.662774346999925 + ], + [ + 168.15455162900003, + -15.463311455999929 + ], + [ + 168.18580162900003, + -15.517836195999905 + ] + ], + [ + [ + 163.98511803500003, + -20.047621351999908 + ], + [ + 163.94711347700004, + -20.066013278999947 + ], + [ + 163.9497176440001, + -20.002211195999905 + ], + [ + 163.98511803500003, + -20.047621351999908 + ] + ], + [ + [ + 163.68279056100002, + -19.739841403999947 + ], + [ + 163.66968834700003, + -19.78769296699994 + ], + [ + 163.62183678500003, + -19.623711846999925 + ], + [ + 163.68279056100002, + -19.739841403999947 + ] + ], + [ + [ + 160.50367272200003, + -11.73601653399993 + ], + [ + 160.58220462300005, + -11.794854424999926 + ], + [ + 160.48316491000003, + -11.84498463299991 + ], + [ + 160.27076256600003, + -11.632989190999922 + ], + [ + 160.02369225400003, + -11.600681247999944 + ], + [ + 159.9692488940001, + -11.50318775799991 + ], + [ + 160.08716881600003, + -11.494805596999925 + ], + [ + 160.50367272200003, + -11.73601653399993 + ] + ], + [ + [ + 167.20573978000004, + -15.75123463299991 + ], + [ + 167.07569420700008, + -15.649590752999927 + ], + [ + 167.23357181100002, + -15.64153411299992 + ], + [ + 167.20573978000004, + -15.75123463299991 + ] + ], + [ + [ + 167.15739993600002, + -15.538995049999926 + ], + [ + 167.19483483200008, + -15.60751718499995 + ], + [ + 167.10954837300005, + -15.587497653999947 + ], + [ + 167.15739993600002, + -15.538995049999926 + ] + ], + [ + [ + 167.9394637380001, + -15.39185963299991 + ], + [ + 167.83855228000004, + -15.484795830999929 + ], + [ + 167.6728621750001, + -15.449802341999941 + ], + [ + 167.80445397200003, + -15.32000090899993 + ], + [ + 168.0024520190001, + -15.281833591999941 + ], + [ + 167.9394637380001, + -15.39185963299991 + ] + ], + [ + [ + 168.09644616000003, + -14.980401299999926 + ], + [ + 168.110687696, + -14.91578541499996 + ], + [ + 168.17896569100003, + -15.395114841999941 + ], + [ + 168.13111412900003, + -15.395114841999941 + ], + [ + 168.09644616000003, + -14.980401299999926 + ] + ], + [ + [ + 167.1406356130001, + -15.535577080999929 + ], + [ + 166.81560306100002, + -15.65829843499995 + ], + [ + 166.7539168630001, + -15.627699476999908 + ], + [ + 166.61605879, + -15.385023695999905 + ], + [ + 166.64918053500003, + -15.218357028999947 + ], + [ + 166.52263431100002, + -14.83212655999995 + ], + [ + 166.55616295700008, + -14.645928643999923 + ], + [ + 166.6098738940001, + -14.634698174999926 + ], + [ + 166.7470809250001, + -14.81959400799991 + ], + [ + 166.81316165500004, + -15.160414320999905 + ], + [ + 166.91976972700004, + -15.15593840899993 + ], + [ + 166.96452884200008, + -14.951348565999922 + ], + [ + 167.082855665, + -14.928887627999927 + ], + [ + 167.04127037900003, + -15.02507903399993 + ], + [ + 167.08912194100003, + -15.141208591999941 + ], + [ + 167.14421634200008, + -15.128106377999927 + ], + [ + 167.24724368600002, + -15.498223565999922 + ], + [ + 167.1406356130001, + -15.535577080999929 + ] + ], + [ + [ + 167.51490319100003, + -14.140557549999926 + ], + [ + 167.60303795700008, + -14.189060153999947 + ], + [ + 167.56202233200008, + -14.29892343499995 + ], + [ + 167.40121504, + -14.305108330999929 + ], + [ + 167.40748131600003, + -14.194919528999947 + ], + [ + 167.51490319100003, + -14.140557549999926 + ] + ], + [ + [ + 167.45281009200008, + -13.918633721999925 + ], + [ + 167.39079837300005, + -13.777520440999922 + ], + [ + 167.48894290500004, + -13.708184502999927 + ], + [ + 167.59001712300005, + -13.856622002999927 + ], + [ + 167.45281009200008, + -13.918633721999925 + ] + ], + [ + [ + 167.70264733200008, + -13.619805596999925 + ], + [ + 167.7129012380001, + -13.668226820999905 + ], + [ + 167.63502037900003, + -13.693536065999922 + ], + [ + 167.70264733200008, + -13.619805596999925 + ] + ], + [ + [ + 167.32927493600002, + -13.510511976999908 + ], + [ + 167.36866295700008, + -13.543389580999929 + ], + [ + 167.31560306100002, + -13.551527601999908 + ], + [ + 167.32927493600002, + -13.510511976999908 + ] + ], + [ + [ + 166.5752059250001, + -13.15439218499995 + ], + [ + 166.529633009, + -13.169854424999926 + ], + [ + 166.5205184250001, + -13.064873955999929 + ], + [ + 166.5752059250001, + -13.15439218499995 + ] + ], + [ + [ + 166.92391983100003, + -11.640971530999934 + ], + [ + 166.984148859, + -11.709863308999957 + ], + [ + 166.84302083900002, + -11.713315820999924 + ], + [ + 166.76720340400004, + -11.617119510999942 + ], + [ + 166.86988366000003, + -11.588962497999944 + ], + [ + 166.92391983100003, + -11.640971530999934 + ] + ], + [ + [ + 166.557251608, + -11.28364365799996 + ], + [ + 166.50882668000008, + -11.309319081999943 + ], + [ + 166.4797598890001, + -11.247421582999948 + ], + [ + 166.54042407400004, + -11.214563966999947 + ], + [ + 166.557251608, + -11.28364365799996 + ] + ], + [ + [ + 162.27256352595984, + -10.808091801764364 + ], + [ + 161.79216556100002, + -10.734958591999941 + ], + [ + 161.52466881600003, + -10.56422291499996 + ], + [ + 161.51099694100003, + -10.36492278399993 + ], + [ + 161.28492272200003, + -10.32390715899993 + ], + [ + 161.30005944100003, + -10.20712655999995 + ], + [ + 161.50220787900003, + -10.250746351999908 + ], + [ + 161.83570397200003, + -10.44695403399993 + ], + [ + 162.113617384, + -10.456475518999923 + ], + [ + 162.28777103000004, + -10.691989841999941 + ], + [ + 162.27256352595984, + -10.808091801764364 + ] + ], + [ + [ + 166.1479045860001, + -10.694046401999913 + ], + [ + 165.934219654, + -10.775741309999944 + ], + [ + 165.86196457200003, + -10.86854014399995 + ], + [ + 165.75647434100006, + -10.812161111999956 + ], + [ + 165.87806236100002, + -10.656846509999925 + ], + [ + 166.1479045860001, + -10.694046401999913 + ] + ], + [ + [ + 166.2524520190001, + -10.26490650799991 + ], + [ + 166.2373153000001, + -10.311130466999941 + ], + [ + 166.23853600400003, + -10.215020440999922 + ], + [ + 166.2524520190001, + -10.26490650799991 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 117.92013751990267, + 6 + ], + [ + 118.01685631600003, + 6.060980536000046 + ], + [ + 118.05037483467977, + 6 + ], + [ + 120.92065928714803, + 6 + ], + [ + 121.04224694100003, + 6.09711334800005 + ], + [ + 121.21586773830155, + 6 + ], + [ + 121.24378020000348, + 6 + ], + [ + 121.38160241000003, + 6.005682684000078 + ], + [ + 121.38532941719497, + 6 + ], + [ + 124.66692980511968, + 6 + ], + [ + 124.2016707690001, + 6.22174713700008 + ], + [ + 124.05494225400003, + 6.43768952000005 + ], + [ + 124.03663170700008, + 6.799709377000056 + ], + [ + 123.96517988400002, + 6.83234284100007 + ], + [ + 124.02947024800005, + 7.115139065000052 + ], + [ + 124.18376712300005, + 7.226385809000078 + ], + [ + 124.24675540500004, + 7.404120184000078 + ], + [ + 124.17603600400003, + 7.415716864000046 + ], + [ + 124.06519616000003, + 7.602728583000044 + ], + [ + 123.79420006600003, + 7.710516669000072 + ], + [ + 123.70394941500001, + 7.809393622000074 + ], + [ + 123.44467207100001, + 7.801336981000078 + ], + [ + 123.48568769600001, + 7.663560289000088 + ], + [ + 123.35352623800009, + 7.572088934000078 + ], + [ + 123.4516707690001, + 7.45254140800006 + ], + [ + 123.43100019600001, + 7.368719794000072 + ], + [ + 123.28028405000009, + 7.520209052000042 + ], + [ + 123.14063561300009, + 7.51312897300005 + ], + [ + 123.18677819100003, + 7.626206773000092 + ], + [ + 123.11793053500003, + 7.741359768000052 + ], + [ + 123.00660241000003, + 7.472357489000046 + ], + [ + 122.91724694100003, + 7.54751211100006 + ], + [ + 122.82203209700003, + 7.459418036000046 + ], + [ + 122.81470787900003, + 7.743353583000044 + ], + [ + 122.61866295700008, + 7.77407461100006 + ], + [ + 122.4438582690001, + 7.608587958000044 + ], + [ + 122.46753991000003, + 7.52285390800006 + ], + [ + 122.34799238400002, + 7.45254140800006 + ], + [ + 122.37256920700008, + 7.372748114000046 + ], + [ + 122.28044681100005, + 7.294501044000072 + ], + [ + 122.15447024800005, + 6.928127346000054 + ], + [ + 122.03793379000001, + 6.91738515800006 + ], + [ + 121.8989363940001, + 7.057196356000078 + ], + [ + 122.14600670700008, + 7.588812567000048 + ], + [ + 122.10499108200008, + 7.770819403000076 + ], + [ + 122.25171959700003, + 7.980129299000056 + ], + [ + 122.67920983200008, + 8.164211330000057 + ], + [ + 122.73519941500001, + 8.115464585000042 + ], + [ + 122.94532311300009, + 8.161851304000038 + ], + [ + 123.01368248800009, + 8.232407945000093 + ], + [ + 122.95818118600005, + 8.308498440000053 + ], + [ + 123.04200280000009, + 8.490139065000053 + ], + [ + 123.31820722700002, + 8.53351471600007 + ], + [ + 123.43637129000001, + 8.64948151200008 + ], + [ + 123.39714603000004, + 8.723211981000079 + ], + [ + 123.51295006600003, + 8.698879299000057 + ], + [ + 123.58130944100003, + 8.582831122000075 + ], + [ + 123.61670983200008, + 8.670721747000075 + ], + [ + 123.75879967500009, + 8.607489325000074 + ], + [ + 123.84473717500009, + 8.45221588700008 + ], + [ + 123.88298587300005, + 8.164496161000047 + ], + [ + 123.68474368600005, + 8.036810614000046 + ], + [ + 123.67644290500004, + 7.963405666000086 + ], + [ + 123.96892337300005, + 8.167792059000078 + ], + [ + 124.23226972700002, + 8.212876695000093 + ], + [ + 124.40577233200008, + 8.607896226000038 + ], + [ + 124.65748131600003, + 8.514553127000056 + ], + [ + 124.63648522200003, + 8.43195221600007 + ], + [ + 124.75318444100003, + 8.500230210000042 + ], + [ + 124.80941816500001, + 9.009466864000046 + ], + [ + 124.91529381600003, + 8.994126695000093 + ], + [ + 125.1059676440001, + 8.829779364000046 + ], + [ + 125.18734785200002, + 8.875921942000048 + ], + [ + 125.20875084700003, + 9.086493231000077 + ], + [ + 125.31177819100003, + 8.99433014500005 + ], + [ + 125.51661217500009, + 9.01593659100007 + ], + [ + 125.53931725400003, + 9.206691799000055 + ], + [ + 125.39869225400003, + 9.681057033000059 + ], + [ + 125.4594832690001, + 9.822943427000043 + ], + [ + 125.58920332100001, + 9.75462474200009 + ], + [ + 125.64356530000009, + 9.611273505000042 + ], + [ + 125.97282962300005, + 9.480292059000078 + ], + [ + 125.91098066500001, + 9.40493398600006 + ], + [ + 125.99390709700003, + 9.397772528000075 + ], + [ + 126.05795332100001, + 9.24599844000005 + ], + [ + 126.21989993600005, + 9.30565013200004 + ], + [ + 126.17896569100003, + 9.093003648000092 + ], + [ + 126.34546959700003, + 8.853257554000038 + ], + [ + 126.23414147200003, + 8.733628648000092 + ], + [ + 126.25456790500004, + 8.685207424000057 + ], + [ + 126.11052493600005, + 8.607123114000046 + ], + [ + 126.15845787900003, + 8.527573960000042 + ], + [ + 126.37012780000009, + 8.541815497000075 + ], + [ + 126.40528405000009, + 8.492621161000047 + ], + [ + 126.33863366000003, + 8.214585679000038 + ], + [ + 126.45932050900002, + 8.240179755000042 + ], + [ + 126.46615644600001, + 8.095526434000078 + ], + [ + 126.38306725400003, + 7.885687567000048 + ], + [ + 126.48747806100005, + 7.74673086100006 + ], + [ + 126.5, + 7.743146295808944 + ], + [ + 126.5, + 18.5 + ], + [ + 122.24388689486108, + 18.5 + ], + [ + 122.29721113400002, + 18.40387604400007 + ], + [ + 122.30697675900002, + 18.251288153000075 + ], + [ + 122.16976972700002, + 18.100490627000056 + ], + [ + 122.13575280000009, + 17.73729075700004 + ], + [ + 122.25114993600005, + 17.360174872000073 + ], + [ + 122.4145613940001, + 17.31907786700009 + ], + [ + 122.41684004000001, + 17.145819403000075 + ], + [ + 122.52906334700003, + 17.09052155200004 + ], + [ + 122.20427493600005, + 16.434759833000044 + ], + [ + 122.20386803500003, + 16.23651764500005 + ], + [ + 121.99789472700002, + 16.031073309000078 + ], + [ + 122.1352645190001, + 16.26072825700004 + ], + [ + 121.75228925900002, + 16.07689036700009 + ], + [ + 121.56739342500009, + 15.915716864000046 + ], + [ + 121.62916100400003, + 15.66111888200004 + ], + [ + 121.38990319100003, + 15.377875067000048 + ], + [ + 121.3911238940001, + 15.26626211100006 + ], + [ + 121.48145592500009, + 15.182521877000056 + ], + [ + 121.59449303500003, + 14.859198309000078 + ], + [ + 121.72494550900002, + 14.73078034100007 + ], + [ + 121.61394290500004, + 14.689886786000047 + ], + [ + 121.60816491000003, + 14.630194403000075 + ], + [ + 121.75896243600005, + 14.246568101000037 + ], + [ + 121.73161868600005, + 14.18821849200009 + ], + [ + 121.93628991000003, + 13.99518463700008 + ], + [ + 122.23194420700008, + 13.90643952000005 + ], + [ + 122.18344160200002, + 13.988959052000043 + ], + [ + 122.29330488400002, + 13.970119533000059 + ], + [ + 122.31373131600003, + 14.016302802000043 + ], + [ + 122.16293379000001, + 14.167792059000078 + ], + [ + 122.26368248800009, + 14.247381903000075 + ], + [ + 122.30014082100001, + 14.09202708500004 + ], + [ + 122.41627037900003, + 14.324774481000077 + ], + [ + 122.5278426440001, + 14.34870026200008 + ], + [ + 122.64429772200003, + 14.284735419000071 + ], + [ + 122.67986087300005, + 14.350531317000048 + ], + [ + 122.87330162900003, + 14.265204169000071 + ], + [ + 123.04224694100003, + 14.098049221000053 + ], + [ + 123.0883895190001, + 13.90143463700008 + ], + [ + 123.04981530000009, + 13.775824286000047 + ], + [ + 123.10824629000001, + 13.72211334800005 + ], + [ + 123.30176842500009, + 13.789455471000053 + ], + [ + 123.28028405000009, + 13.90643952000005 + ], + [ + 123.33545983200008, + 13.982163804000038 + ], + [ + 123.29004967500009, + 13.93455638200004 + ], + [ + 123.21810957100001, + 13.992743231000077 + ], + [ + 123.33179772200003, + 14.09951406500005 + ], + [ + 123.41732832100001, + 13.90643952000005 + ], + [ + 123.44467207100001, + 13.96165599200009 + ], + [ + 123.68140709700003, + 13.88467031500005 + ], + [ + 123.71168053500003, + 13.934393622000073 + ], + [ + 123.93775475400003, + 13.784002997000073 + ], + [ + 123.96550540500004, + 13.714667059000078 + ], + [ + 123.57048587300005, + 13.72296784100007 + ], + [ + 123.52662194100003, + 13.606024481000077 + ], + [ + 123.85564212300005, + 13.228664455000057 + ], + [ + 123.76758873800009, + 13.224310614000046 + ], + [ + 123.74577884200005, + 13.064154364000046 + ], + [ + 123.88298587300005, + 13.146063544000071 + ], + [ + 124.08155358200008, + 13.009507554000038 + ], + [ + 124.11622155000009, + 13.07440827000005 + ], + [ + 124.18458092500009, + 13.057318427000043 + ], + [ + 124.05494225400003, + 12.537258205000057 + ], + [ + 123.87859134200005, + 12.645209052000043 + ], + [ + 123.79363040500004, + 12.831447658000059 + ], + [ + 124.0024520190001, + 12.879706122000073 + ], + [ + 124.02515709700003, + 12.95530833500004 + ], + [ + 123.89340254000001, + 12.97479889500005 + ], + [ + 123.72535241000003, + 12.845119533000059 + ], + [ + 123.69825280000009, + 12.930894273000092 + ], + [ + 123.60515384200005, + 12.89288971600007 + ], + [ + 123.44125410200002, + 13.036851304000038 + ], + [ + 123.31006920700008, + 13.01235586100006 + ], + [ + 123.30079186300009, + 13.235500393000052 + ], + [ + 123.16879316500001, + 13.44920482000009 + ], + [ + 122.85914147200003, + 13.60610586100006 + ], + [ + 122.81470787900003, + 13.653794664000088 + ], + [ + 122.86255944100003, + 13.69476959800005 + ], + [ + 122.53687584700003, + 13.96112702000005 + ], + [ + 122.41309655000009, + 13.948065497000073 + ], + [ + 122.50961347700002, + 13.820013739000046 + ], + [ + 122.49756920700008, + 13.652044989000046 + ], + [ + 122.63599694100003, + 13.53709544500009 + ], + [ + 122.56714928500003, + 13.563869533000059 + ], + [ + 122.67269941500001, + 13.379299221000053 + ], + [ + 122.69068444100003, + 13.228664455000057 + ], + [ + 122.58814537900003, + 13.17401764500005 + ], + [ + 122.36947675900002, + 13.54979075700004 + ], + [ + 122.19402103000004, + 13.622788804000038 + ], + [ + 122.05990644600001, + 13.804632880000042 + ], + [ + 121.72486412900003, + 13.969142971000053 + ], + [ + 121.48462975400003, + 13.85179271000004 + ], + [ + 121.43344160200002, + 13.796372789000088 + ], + [ + 121.46412194100003, + 13.69476959800005 + ], + [ + 121.27881920700008, + 13.595038153000075 + ], + [ + 121.03891035200002, + 13.632757880000042 + ], + [ + 121.00375410200002, + 13.780910549000055 + ], + [ + 120.88746178500003, + 13.693508205000057 + ], + [ + 120.92904707100001, + 13.783596096000053 + ], + [ + 120.87671959700003, + 13.912258205000057 + ], + [ + 120.70484459700003, + 13.927435614000046 + ], + [ + 120.72291100400003, + 13.855414130000042 + ], + [ + 120.66228274800005, + 13.85927969000005 + ], + [ + 120.64966881600003, + 13.78424713700008 + ], + [ + 120.57349694100003, + 14.17454661700009 + ], + [ + 120.97038821700005, + 14.501898505000042 + ], + [ + 120.94312584700003, + 14.653509833000044 + ], + [ + 120.84058678500003, + 14.761216539000088 + ], + [ + 120.64210045700008, + 14.78701406500005 + ], + [ + 120.62126712300005, + 14.872870184000078 + ], + [ + 120.59392337300005, + 14.81826406500005 + ], + [ + 120.58570397200003, + 14.902818101000037 + ], + [ + 120.53646894600001, + 14.723211981000077 + ], + [ + 120.5883895190001, + 14.46698639500005 + ], + [ + 120.40211022200003, + 14.455755927000043 + ], + [ + 120.36736087300005, + 14.620754299000055 + ], + [ + 120.24236087300005, + 14.729641018000052 + ], + [ + 120.29224694100003, + 14.825669664000088 + ], + [ + 120.20932050900002, + 14.880031643000052 + ], + [ + 120.17554772200003, + 14.757391669000071 + ], + [ + 120.07992597700002, + 14.803941148000092 + ], + [ + 120.00513756600003, + 15.26943594000005 + ], + [ + 119.88819420700008, + 15.429022528000075 + ], + [ + 119.96387780000009, + 15.514349677000043 + ], + [ + 119.86719811300009, + 15.743068752000056 + ], + [ + 119.8950301440001, + 15.87400950700004 + ], + [ + 119.8540145190001, + 15.949164130000042 + ], + [ + 119.75586998800009, + 15.944566148000092 + ], + [ + 119.80193118600005, + 16.357855536000045 + ], + [ + 119.91635175900002, + 16.38084544500009 + ], + [ + 119.90186608200008, + 16.250799872000073 + ], + [ + 120.08773847700002, + 16.15721263200004 + ], + [ + 120.13884524800005, + 16.046128648000092 + ], + [ + 120.29908287900003, + 16.017401434000078 + ], + [ + 120.40211022200003, + 16.16547272300005 + ], + [ + 120.27613366000003, + 16.611883856000077 + ], + [ + 120.43628991000003, + 17.00800202000005 + ], + [ + 120.44369550900002, + 17.388495184000078 + ], + [ + 120.33383222700002, + 17.556382554000038 + ], + [ + 120.57911217500009, + 18.325140692000048 + ], + [ + 120.57025038090674, + 18.5 + ], + [ + 116.5, + 18.5 + ], + [ + 116.5, + 6.492530936178644 + ], + [ + 116.50318444100003, + 6.49518463700008 + ], + [ + 116.76587975400003, + 7.025091864000046 + ], + [ + 116.83814537900003, + 6.962144273000092 + ], + [ + 116.81080162900003, + 6.862860419000072 + ], + [ + 116.85865319100003, + 6.817857164000088 + ], + [ + 116.78394616000003, + 6.591620184000078 + ], + [ + 116.97380618600005, + 6.70807526200008 + ], + [ + 117.05787194100003, + 6.845526434000078 + ], + [ + 117.03052819100003, + 6.931138414000088 + ], + [ + 117.15023847700002, + 7.003119208000044 + ], + [ + 117.25652103000004, + 6.937974351000094 + ], + [ + 117.23031660200002, + 6.817531643000052 + ], + [ + 117.29590905000009, + 6.636297919000072 + ], + [ + 117.45850670700008, + 6.547552802000042 + ], + [ + 117.5337020190001, + 6.621039130000042 + ], + [ + 117.55811608200008, + 6.54010651200008 + ], + [ + 117.7270613940001, + 6.451157945000092 + ], + [ + 117.72299238400002, + 6.25462474200009 + ], + [ + 117.60035241000003, + 6.197821356000078 + ], + [ + 117.66062107712268, + 6 + ], + [ + 117.92013751990267, + 6 + ] + ], + [ + [ + 124.78419030000009, + 9.199774481000077 + ], + [ + 124.77019290500004, + 9.077378648000092 + ], + [ + 124.63648522200003, + 9.18235911700009 + ], + [ + 124.70850670700008, + 9.25018952000005 + ], + [ + 124.78419030000009, + 9.199774481000077 + ] + ], + [ + [ + 125.99024498800009, + 9.68573639500005 + ], + [ + 125.94695071700005, + 9.566229559000078 + ], + [ + 125.93482506600003, + 9.759914455000057 + ], + [ + 125.99024498800009, + 9.68573639500005 + ] + ], + [ + [ + 125.65902754000001, + 9.719753322000088 + ], + [ + 125.657155795, + 9.66514720300006 + ], + [ + 125.61557050900002, + 9.706529039000088 + ], + [ + 125.65902754000001, + 9.719753322000088 + ] + ], + [ + [ + 124.56527754000001, + 9.870754299000055 + ], + [ + 124.62403405000009, + 9.80182526200008 + ], + [ + 124.5962020190001, + 9.73729075700004 + ], + [ + 124.49984785200002, + 9.76829661700009 + ], + [ + 124.29420006600003, + 9.606756903000075 + ], + [ + 123.93751061300009, + 9.61749909100007 + ], + [ + 123.80103600400003, + 9.757757880000042 + ], + [ + 123.88607832100001, + 9.914862372000073 + ], + [ + 124.05079186300009, + 9.979315497000073 + ], + [ + 124.22266686300009, + 10.151922919000071 + ], + [ + 124.33130944100003, + 10.161525783000059 + ], + [ + 124.3559676440001, + 10.110296942000048 + ], + [ + 124.39682050900002, + 10.151922919000071 + ], + [ + 124.57764733200008, + 10.03392161700009 + ], + [ + 124.56527754000001, + 9.870754299000055 + ] + ], + [ + [ + 126.16586347700002, + 9.82916901200008 + ], + [ + 126.1782332690001, + 9.78782786700009 + ], + [ + 126.04859459700003, + 9.75462474200009 + ], + [ + 125.96599368600005, + 9.85024648600006 + ], + [ + 126.07146243600005, + 10.059068101000037 + ], + [ + 126.11060631600003, + 9.857082424000055 + ], + [ + 126.16586347700002, + 9.82916901200008 + ] + ], + [ + [ + 125.29509524800005, + 9.970648505000042 + ], + [ + 125.2739363940001, + 9.919134833000044 + ], + [ + 125.13746178500003, + 10.165513414000088 + ], + [ + 125.22925866000003, + 10.121161200000074 + ], + [ + 125.29509524800005, + 9.970648505000042 + ] + ], + [ + [ + 125.71957441500001, + 9.911688544000071 + ], + [ + 125.66358483200008, + 9.889146226000037 + ], + [ + 125.59669030000009, + 10.08982982000009 + ], + [ + 125.52100670700008, + 10.062567450000074 + ], + [ + 125.49529056100005, + 10.108710028000075 + ], + [ + 125.52214603000004, + 10.316961981000077 + ], + [ + 125.63770592500009, + 10.46039459800005 + ], + [ + 125.71957441500001, + 9.911688544000071 + ] + ], + [ + [ + 123.69800866000003, + 9.16502513200004 + ], + [ + 123.63233483200008, + 9.098334052000043 + ], + [ + 123.4712020190001, + 9.18545156500005 + ], + [ + 123.64210045700008, + 9.293646552000043 + ], + [ + 123.69800866000003, + 9.16502513200004 + ] + ], + [ + [ + 123.84131920700008, + 9.642401434000078 + ], + [ + 123.80453535200002, + 9.560288804000038 + ], + [ + 123.72632897200003, + 9.58698151200008 + ], + [ + 123.84131920700008, + 9.642401434000078 + ] + ], + [ + [ + 123.57447350400003, + 10.830959377000056 + ], + [ + 123.1567488940001, + 9.867621161000047 + ], + [ + 123.13550866000003, + 9.552679755000042 + ], + [ + 123.32113691500001, + 9.343166408000059 + ], + [ + 123.31763756600003, + 9.25690338700008 + ], + [ + 123.23015384200005, + 9.10761139500005 + ], + [ + 123.03321373800009, + 9.035305080000057 + ], + [ + 122.95769290500004, + 9.081244208000044 + ], + [ + 122.84489993600005, + 9.347072658000059 + ], + [ + 122.55176842500009, + 9.49095286700009 + ], + [ + 122.40259850400003, + 9.69940827000005 + ], + [ + 122.39519290500004, + 9.84284088700008 + ], + [ + 122.47461998800009, + 9.974351304000038 + ], + [ + 122.70777428500003, + 9.986395575000074 + ], + [ + 122.87281334700003, + 10.100409247000073 + ], + [ + 122.81470787900003, + 10.515041408000059 + ], + [ + 122.97169030000009, + 10.721096096000053 + ], + [ + 122.99382571700005, + 10.906724351000037 + ], + [ + 123.25977623800009, + 10.994818427000043 + ], + [ + 123.52182050900002, + 10.91990794500009 + ], + [ + 123.57447350400003, + 10.830959377000056 + ] + ], + [ + [ + 124.0473738940001, + 10.834051825000074 + ], + [ + 124.01490319100003, + 10.372463283000059 + ], + [ + 123.65259850400003, + 10.063625393000052 + ], + [ + 123.47950280000009, + 9.548570054000038 + ], + [ + 123.32764733200008, + 9.408148505000042 + ], + [ + 123.38705488400002, + 9.973781643000052 + ], + [ + 123.7231551440001, + 10.494208075000074 + ], + [ + 123.97291100400003, + 11.077337958000044 + ], + [ + 123.95875084700003, + 11.175930080000057 + ], + [ + 124.04566491000003, + 11.277167059000078 + ], + [ + 123.99952233200008, + 11.077337958000044 + ], + [ + 124.05494225400003, + 11.063666083000044 + ], + [ + 124.0473738940001, + 10.834051825000074 + ] + ], + [ + [ + 123.99164944169532, + 10.324283806534812 + ], + [ + 124.04384043787854, + 10.324283806534812 + ], + [ + 123.93319552597009, + 10.254347871649275 + ], + [ + 123.99164944169532, + 10.324283806534812 + ] + ], + [ + [ + 124.37973066500001, + 10.69131094000005 + ], + [ + 124.37842858200008, + 10.628322658000059 + ], + [ + 124.28435306100005, + 10.60382721600007 + ], + [ + 124.32764733200008, + 10.704006252000056 + ], + [ + 124.37973066500001, + 10.69131094000005 + ] + ], + [ + [ + 124.46583092500009, + 10.71360911700009 + ], + [ + 124.50879967500009, + 10.641546942000048 + ], + [ + 124.40919030000009, + 10.648260809000078 + ], + [ + 124.46583092500009, + 10.71360911700009 + ] + ], + [ + [ + 125.82203209700003, + 10.73468659100007 + ], + [ + 125.76937910200002, + 10.700384833000044 + ], + [ + 125.68726647200003, + 10.805161851000037 + ], + [ + 125.82203209700003, + 10.73468659100007 + ] + ], + [ + [ + 117.32545006600003, + 8.322739976000038 + ], + [ + 117.35954837300005, + 8.21906159100007 + ], + [ + 117.28972415500004, + 8.18431224200009 + ], + [ + 117.27963300900002, + 8.311102606000079 + ], + [ + 117.32545006600003, + 8.322739976000038 + ] + ], + [ + [ + 119.67188561300009, + 10.552557684000078 + ], + [ + 119.72535241000003, + 10.51862213700008 + ], + [ + 119.57585696700005, + 10.380519924000055 + ], + [ + 119.37826582100001, + 10.344142971000053 + ], + [ + 119.28598066500001, + 10.261379299000055 + ], + [ + 119.19629967500009, + 10.056341864000046 + ], + [ + 118.77418053500003, + 9.934149481000077 + ], + [ + 118.7778426440001, + 9.734198309000078 + ], + [ + 118.70093834700003, + 9.775539455000057 + ], + [ + 118.7563582690001, + 9.667669989000046 + ], + [ + 118.36500084700003, + 9.193060614000046 + ], + [ + 118.13697350400003, + 9.13084544500009 + ], + [ + 118.01368248800009, + 8.887600002000056 + ], + [ + 117.75538170700008, + 8.69017161700009 + ], + [ + 117.56560306100005, + 8.661078192000048 + ], + [ + 117.51286868600005, + 8.506781317000048 + ], + [ + 117.34498131600003, + 8.471258856000079 + ], + [ + 117.19076582100001, + 8.338324286000047 + ], + [ + 117.26392662900003, + 8.61009349200009 + ], + [ + 117.65552819100003, + 9.057928778000075 + ], + [ + 117.76189212300005, + 9.077948309000078 + ], + [ + 117.90447024800005, + 9.261216539000088 + ], + [ + 118.00318444100003, + 9.233303127000056 + ], + [ + 118.13355553500003, + 9.343166408000059 + ], + [ + 118.77165774800005, + 10.130804755000042 + ], + [ + 118.77947024800005, + 10.056301174000055 + ], + [ + 118.83236738400002, + 10.083644924000055 + ], + [ + 118.81576582100001, + 10.18891022300005 + ], + [ + 118.93360436300009, + 10.209662177000043 + ], + [ + 119.02475019600001, + 10.30955638200004 + ], + [ + 119.00196373800009, + 10.39752838700008 + ], + [ + 119.07203209700003, + 10.391506252000056 + ], + [ + 119.12037194100003, + 10.48773834800005 + ], + [ + 119.1352645190001, + 10.38812897300005 + ], + [ + 119.27808678500003, + 10.508205471000053 + ], + [ + 119.25074303500003, + 10.555975653000075 + ], + [ + 119.31910241000003, + 10.59007396000004 + ], + [ + 119.34498131600003, + 10.723578192000048 + ], + [ + 119.22339928500003, + 10.850816148000092 + ], + [ + 119.22250410200002, + 10.94171784100007 + ], + [ + 119.46753991000003, + 10.73265208500004 + ], + [ + 119.31999759200005, + 11.000881252000056 + ], + [ + 119.36060631600003, + 11.00096263200004 + ], + [ + 119.33497155000009, + 11.102932033000059 + ], + [ + 119.41529381600003, + 11.056219794000071 + ], + [ + 119.38795006600003, + 11.18659088700008 + ], + [ + 119.50196373800009, + 11.423325914000088 + ], + [ + 119.56706790500004, + 11.30141836100006 + ], + [ + 119.51636803500003, + 11.11749909100007 + ], + [ + 119.57243899800005, + 11.015326239000046 + ], + [ + 119.51758873800009, + 11.011867580000057 + ], + [ + 119.50456790500004, + 10.88495514500005 + ], + [ + 119.53158613400002, + 10.819810289000088 + ], + [ + 119.60271243600005, + 10.82440827000005 + ], + [ + 119.59083092500009, + 10.672430731000077 + ], + [ + 119.65357506600003, + 10.675116278000075 + ], + [ + 119.67188561300009, + 10.552557684000078 + ] + ], + [ + [ + 119.95020592500009, + 10.60374583500004 + ], + [ + 119.98414147200003, + 10.531317450000074 + ], + [ + 119.9087020190001, + 10.555975653000075 + ], + [ + 119.91488691500001, + 10.480861721000053 + ], + [ + 119.78858483200008, + 10.456976630000042 + ], + [ + 119.75261478000004, + 10.53978099200009 + ], + [ + 119.83790123800009, + 10.637518622000073 + ], + [ + 119.95020592500009, + 10.60374583500004 + ] + ], + [ + [ + 122.71111087300005, + 10.73468659100007 + ], + [ + 122.68685957100001, + 10.506008205000057 + ], + [ + 122.53663170700008, + 10.419419664000088 + ], + [ + 122.48243248800009, + 10.50336334800005 + ], + [ + 122.55347741000003, + 10.54913971600007 + ], + [ + 122.53663170700008, + 10.607489325000074 + ], + [ + 122.67017662900003, + 10.76203034100007 + ], + [ + 122.71111087300005, + 10.73468659100007 + ] + ], + [ + [ + 121.09449303500003, + 10.895819403000075 + ], + [ + 121.08716881600003, + 10.823472398000092 + ], + [ + 121.01758873800009, + 10.834133205000057 + ], + [ + 121.09449303500003, + 10.895819403000075 + ] + ], + [ + [ + 119.63209069100003, + 11.069891669000071 + ], + [ + 119.61312910200002, + 11.00844961100006 + ], + [ + 119.57976321700005, + 11.09784577000005 + ], + [ + 119.63209069100003, + 11.069891669000071 + ] + ], + [ + [ + 124.54745527400006, + 10.76398346600007 + ], + [ + 124.49740644600001, + 10.742010809000078 + ], + [ + 124.5551050140001, + 10.812892971000053 + ], + [ + 124.54745527400006, + 10.76398346600007 + ] + ], + [ + [ + 125.2739363940001, + 10.323187567000048 + ], + [ + 125.26002037900003, + 10.261053778000075 + ], + [ + 125.14087975400003, + 10.278794664000088 + ], + [ + 125.15105228000004, + 10.18545156500005 + ], + [ + 124.99097741000003, + 10.381333726000037 + ], + [ + 125.0317488940001, + 10.02024974200009 + ], + [ + 124.78044681100005, + 10.151922919000071 + ], + [ + 124.79224694100003, + 10.325669664000088 + ], + [ + 124.73560631600003, + 10.420314846000053 + ], + [ + 124.77881920700008, + 10.821437893000052 + ], + [ + 124.62232506600003, + 11.002020575000074 + ], + [ + 124.54957116000003, + 10.983303127000056 + ], + [ + 124.51449629000001, + 10.87368398600006 + ], + [ + 124.39600670700008, + 10.934068101000037 + ], + [ + 124.40430748800009, + 11.302679755000042 + ], + [ + 124.30062910200002, + 11.54287344000005 + ], + [ + 124.62989342500009, + 11.304429429000038 + ], + [ + 124.84571373800009, + 11.433010158000059 + ], + [ + 124.97632897200003, + 11.39203522300005 + ], + [ + 124.97396894600001, + 11.277085679000038 + ], + [ + 125.04175866000003, + 11.24803294500009 + ], + [ + 125.01384524800005, + 10.754584052000043 + ], + [ + 125.19410241000003, + 10.60297272300005 + ], + [ + 125.19874108200008, + 10.43305084800005 + ], + [ + 125.2739363940001, + 10.323187567000048 + ] + ], + [ + [ + 124.59961998800009, + 11.563381252000056 + ], + [ + 124.60914147200003, + 11.48655833500004 + ], + [ + 124.47266686300009, + 11.473944403000075 + ], + [ + 124.34913170700008, + 11.680080471000053 + ], + [ + 124.52320397200003, + 11.68626536700009 + ], + [ + 124.59961998800009, + 11.563381252000056 + ] + ], + [ + [ + 124.81519616000003, + 11.63226959800005 + ], + [ + 124.83155358200008, + 11.536322333000044 + ], + [ + 124.73267662900003, + 11.721625067000048 + ], + [ + 124.81519616000003, + 11.63226959800005 + ] + ], + [ + [ + 123.1704207690001, + 11.48078034100007 + ], + [ + 123.1313582690001, + 11.18268463700008 + ], + [ + 122.78931725400003, + 10.976060289000088 + ], + [ + 122.74480228000004, + 10.79564036700009 + ], + [ + 122.63062584700003, + 10.774359442000048 + ], + [ + 122.58985436300009, + 10.698716539000088 + ], + [ + 122.22657311300009, + 10.642238674000055 + ], + [ + 121.9497176440001, + 10.433172919000071 + ], + [ + 121.9848738940001, + 10.647284247000073 + ], + [ + 121.93702233200008, + 10.77570221600007 + ], + [ + 122.04509524800005, + 11.017401434000078 + ], + [ + 122.10718834700003, + 11.657945054000038 + ], + [ + 122.0844832690001, + 11.724676825000074 + ], + [ + 121.85385175900002, + 11.76943594000005 + ], + [ + 121.89682050900002, + 11.893784898000092 + ], + [ + 121.96371504000001, + 11.93390534100007 + ], + [ + 122.37720787900003, + 11.733221747000073 + ], + [ + 122.62232506600003, + 11.508734442000048 + ], + [ + 122.72478274800005, + 11.611761786000047 + ], + [ + 122.83033287900003, + 11.605292059000078 + ], + [ + 122.94450931100005, + 11.522406317000048 + ], + [ + 122.90072675900002, + 11.437933661000047 + ], + [ + 123.16358483200008, + 11.598089911000047 + ], + [ + 123.12208092500009, + 11.508734442000048 + ], + [ + 123.1704207690001, + 11.48078034100007 + ] + ], + [ + [ + 123.80103600400003, + 11.17914459800005 + ], + [ + 123.73365319100003, + 11.15428294500009 + ], + [ + 123.74577884200005, + 11.292466539000088 + ], + [ + 123.80103600400003, + 11.17914459800005 + ] + ], + [ + [ + 119.86719811300009, + 11.515570380000042 + ], + [ + 119.83285566500001, + 11.37836334800005 + ], + [ + 119.71615644600001, + 11.460353908000059 + ], + [ + 119.83285566500001, + 11.460353908000059 + ], + [ + 119.86719811300009, + 11.515570380000042 + ] + ], + [ + [ + 120.02475019600001, + 11.892971096000053 + ], + [ + 120.07992597700002, + 11.78925202000005 + ], + [ + 119.96697024800005, + 11.66437409100007 + ], + [ + 120.00489342500009, + 11.782538153000075 + ], + [ + 119.92920983200008, + 11.77558014500005 + ], + [ + 119.8540145190001, + 11.954413153000075 + ], + [ + 119.91968834700003, + 11.98151276200008 + ], + [ + 120.02475019600001, + 11.892971096000053 + ] + ], + [ + [ + 121.47413170700008, + 11.866848049000055 + ], + [ + 121.52605228000004, + 11.846584377000056 + ], + [ + 121.4126082690001, + 11.840277411000047 + ], + [ + 121.47413170700008, + 11.866848049000055 + ] + ], + [ + [ + 120.28516686300009, + 11.930161851000037 + ], + [ + 120.26791425900002, + 11.816229559000078 + ], + [ + 120.20329837300005, + 11.94757721600007 + ], + [ + 120.28516686300009, + 11.930161851000037 + ] + ], + [ + [ + 121.40642337300005, + 12.062445380000042 + ], + [ + 121.38428795700008, + 12.000921942000048 + ], + [ + 121.35865319100003, + 12.11469147300005 + ], + [ + 121.40642337300005, + 12.062445380000042 + ] + ], + [ + [ + 120.34750410200002, + 12.02948639500005 + ], + [ + 120.23764082100001, + 11.987941799000055 + ], + [ + 120.14210045700008, + 12.02948639500005 + ], + [ + 120.11410566500001, + 11.96743398600006 + ], + [ + 120.00114993600005, + 12.01117584800005 + ], + [ + 119.8950301440001, + 12.20766836100006 + ], + [ + 119.84766686300009, + 12.16673411700009 + ], + [ + 119.9223738940001, + 12.276516018000052 + ], + [ + 119.88502037900003, + 12.322699286000047 + ], + [ + 120.19605553500003, + 12.112005927000043 + ], + [ + 120.22974694100003, + 12.21865469000005 + ], + [ + 120.34750410200002, + 12.02948639500005 + ] + ], + [ + [ + 124.88379967500009, + 11.681911526000079 + ], + [ + 124.83318118600005, + 11.632635809000078 + ], + [ + 124.82040449300007, + 11.70766836100006 + ], + [ + 124.88379967500009, + 11.681911526000079 + ] + ], + [ + [ + 125.71273847700002, + 11.14874909100007 + ], + [ + 125.76050866000003, + 11.022772528000075 + ], + [ + 125.65154056100005, + 11.14940013200004 + ], + [ + 125.42465254000001, + 11.090399481000077 + ], + [ + 125.31706790500004, + 11.149562893000052 + ], + [ + 125.24683678500003, + 11.092189846000053 + ], + [ + 125.1723738940001, + 11.265204169000071 + ], + [ + 125.00098717500009, + 11.28978099200009 + ], + [ + 125.00700931100005, + 11.426174221000053 + ], + [ + 124.82829837300005, + 11.508734442000048 + ], + [ + 124.97779381600003, + 11.59275950700004 + ], + [ + 125.04371178500003, + 11.757757880000042 + ], + [ + 124.89242597700002, + 11.761460679000038 + ], + [ + 124.67986087300005, + 12.029730536000047 + ], + [ + 124.49317467500009, + 12.097805080000057 + ], + [ + 124.39079837300005, + 12.221869208000044 + ], + [ + 124.28345787900003, + 12.57062409100007 + ], + [ + 124.67920983200008, + 12.51593659100007 + ], + [ + 124.87720787900003, + 12.53339264500005 + ], + [ + 124.87671959700003, + 12.59125397300005 + ], + [ + 125.04957116000003, + 12.529364325000074 + ], + [ + 125.16627037900003, + 12.57811107000009 + ], + [ + 125.27214603000004, + 12.49900950700004 + ], + [ + 125.34961998800009, + 12.39940013200004 + ], + [ + 125.31478925900002, + 12.296372789000088 + ], + [ + 125.5004988940001, + 12.248602606000077 + ], + [ + 125.53825931100005, + 12.18349844000005 + ], + [ + 125.4594832690001, + 12.125677802000043 + ], + [ + 125.52515709700003, + 12.05695221600007 + ], + [ + 125.4458113940001, + 11.947333075000074 + ], + [ + 125.46631920700008, + 11.611761786000047 + ], + [ + 125.52100670700008, + 11.460353908000059 + ], + [ + 125.63770592500009, + 11.368475653000075 + ], + [ + 125.55502363400002, + 11.211859442000048 + ], + [ + 125.62891686300009, + 11.23631419500009 + ], + [ + 125.71273847700002, + 11.14874909100007 + ] + ], + [ + [ + 124.14861087300005, + 13.18577708500004 + ], + [ + 124.06560306100005, + 13.210760809000078 + ], + [ + 124.20964603000004, + 13.195786851000037 + ], + [ + 124.14861087300005, + 13.18577708500004 + ] + ], + [ + [ + 124.08627363400002, + 13.260443427000043 + ], + [ + 124.02540123800009, + 13.221991278000075 + ], + [ + 123.91244550900002, + 13.288641669000071 + ], + [ + 124.08627363400002, + 13.260443427000043 + ] + ], + [ + [ + 124.05494225400003, + 11.79979075700004 + ], + [ + 124.05486087300005, + 11.72557200700004 + ], + [ + 123.85564212300005, + 11.913397528000075 + ], + [ + 123.74293053500003, + 11.926947333000044 + ], + [ + 123.73267662900003, + 12.008368231000077 + ], + [ + 123.48536217500009, + 12.218085028000075 + ], + [ + 123.15967858200008, + 11.917792059000078 + ], + [ + 123.29460696700005, + 12.217230536000047 + ], + [ + 123.21810957100001, + 12.228094794000071 + ], + [ + 123.27344811300009, + 12.423651434000078 + ], + [ + 123.23471113400002, + 12.59275950700004 + ], + [ + 123.35645592500009, + 12.549261786000047 + ], + [ + 123.32642662900003, + 12.438055731000077 + ], + [ + 123.4340926440001, + 12.51862213700008 + ], + [ + 123.79363040500004, + 12.187160549000055 + ], + [ + 123.79493248800009, + 12.246893622000073 + ], + [ + 123.88965905000009, + 12.20766836100006 + ], + [ + 124.05030358200008, + 11.971136786000047 + ], + [ + 123.99952233200008, + 12.008368231000077 + ], + [ + 124.05494225400003, + 11.79979075700004 + ] + ], + [ + [ + 122.68751061300009, + 12.402818101000037 + ], + [ + 122.6118270190001, + 12.276516018000052 + ], + [ + 122.42302493600005, + 12.46287669500009 + ], + [ + 122.63209069100003, + 12.484523830000057 + ], + [ + 122.68751061300009, + 12.402818101000037 + ] + ], + [ + [ + 122.11524498800009, + 12.66632721600007 + ], + [ + 122.15626061300009, + 12.632147528000075 + ], + [ + 122.0122176440001, + 12.10455963700008 + ], + [ + 121.92408287900003, + 12.339341539000088 + ], + [ + 121.99586022200003, + 12.592718817000048 + ], + [ + 122.11524498800009, + 12.66632721600007 + ] + ], + [ + [ + 123.78736412900003, + 12.375555731000077 + ], + [ + 123.58318118600005, + 12.623928127000056 + ], + [ + 123.60922285200002, + 12.687445380000042 + ], + [ + 123.73267662900003, + 12.59125397300005 + ], + [ + 123.78736412900003, + 12.375555731000077 + ] + ], + [ + [ + 121.52613366000003, + 12.704494533000059 + ], + [ + 121.54566491000003, + 12.61123281500005 + ], + [ + 121.43783613400002, + 12.521633205000057 + ], + [ + 121.39576256600003, + 12.289536851000037 + ], + [ + 121.35474694100003, + 12.32412344000005 + ], + [ + 121.24496504000001, + 12.214422919000071 + ], + [ + 121.11361738400002, + 12.251288153000075 + ], + [ + 121.10108483200008, + 12.330511786000047 + ], + [ + 121.14258873800009, + 12.310044664000088 + ], + [ + 120.98113040500004, + 12.422674872000073 + ], + [ + 120.91244550900002, + 12.634711005000042 + ], + [ + 120.79786217500009, + 12.729437567000048 + ], + [ + 120.7583113940001, + 13.002386786000047 + ], + [ + 120.66488691500001, + 13.155910549000055 + ], + [ + 120.51482181100005, + 13.230536200000074 + ], + [ + 120.45248457100001, + 13.42023346600007 + ], + [ + 120.32764733200008, + 13.396877346000053 + ], + [ + 120.32154381600003, + 13.487779039000088 + ], + [ + 120.40316816500001, + 13.52732982000009 + ], + [ + 120.75456790500004, + 13.466742255000042 + ], + [ + 120.97738691500001, + 13.53034088700008 + ], + [ + 121.1215926440001, + 13.372015692000048 + ], + [ + 121.19711347700002, + 13.440904039000088 + ], + [ + 121.43051191500001, + 13.224269924000055 + ], + [ + 121.43628991000003, + 13.146063544000071 + ], + [ + 121.55298912900003, + 13.11131419500009 + ], + [ + 121.48316491000003, + 13.01471588700008 + ], + [ + 121.52613366000003, + 12.704494533000059 + ] + ], + [ + [ + 123.28028405000009, + 12.864935614000046 + ], + [ + 123.37582441500001, + 12.69358958500004 + ], + [ + 122.97388756600003, + 13.018703518000052 + ], + [ + 122.94450931100005, + 13.11131419500009 + ], + [ + 123.03980553500003, + 13.128078518000052 + ], + [ + 123.28028405000009, + 12.864935614000046 + ] + ], + [ + [ + 122.10157311300009, + 13.416693427000043 + ], + [ + 122.12029056100005, + 13.356634833000044 + ], + [ + 122.00879967500009, + 13.204779364000046 + ], + [ + 121.81373131600003, + 13.352240302000043 + ], + [ + 121.85865319100003, + 13.56549713700008 + ], + [ + 121.99789472700002, + 13.55076732000009 + ], + [ + 122.11524498800009, + 13.464992580000057 + ], + [ + 122.10157311300009, + 13.416693427000043 + ] + ], + [ + [ + 120.36361738400002, + 13.65037669500009 + ], + [ + 120.31120853000004, + 13.680365302000043 + ], + [ + 120.41797936300009, + 13.63812897300005 + ], + [ + 120.36361738400002, + 13.65037669500009 + ] + ], + [ + [ + 120.26091556100005, + 13.71157461100006 + ], + [ + 120.10824629000001, + 13.776841539000088 + ], + [ + 120.08570397200003, + 13.86078522300005 + ], + [ + 120.23764082100001, + 13.804632880000042 + ], + [ + 120.26091556100005, + 13.71157461100006 + ] + ], + [ + [ + 121.7875268890001, + 13.913397528000075 + ], + [ + 121.74927819100003, + 13.88768138200004 + ], + [ + 121.74586022200003, + 13.940130927000043 + ], + [ + 121.7875268890001, + 13.913397528000075 + ] + ], + [ + [ + 122.10474694100003, + 14.10260651200008 + ], + [ + 122.17701256600003, + 14.007066148000092 + ], + [ + 121.92660566500001, + 14.221258856000077 + ], + [ + 122.10474694100003, + 14.10260651200008 + ] + ], + [ + [ + 122.23536217500009, + 14.797756252000056 + ], + [ + 122.24219811300009, + 14.73631419500009 + ], + [ + 122.10572350400003, + 14.84393952000005 + ], + [ + 122.23536217500009, + 14.797756252000056 + ] + ], + [ + [ + 121.90235436300009, + 6.033636786000046 + ], + [ + 121.94320722700002, + 6.033636786000046 + ], + [ + 121.85767662900003, + 6.00226471600007 + ], + [ + 121.77662194100003, + 6.077378648000092 + ], + [ + 121.90235436300009, + 6.033636786000046 + ] + ], + [ + [ + 120.58814537900003, + 6.380764065000052 + ], + [ + 120.57732181100005, + 6.251532294000072 + ], + [ + 120.4946395190001, + 6.249335028000076 + ], + [ + 120.58814537900003, + 6.380764065000052 + ] + ], + [ + [ + 122.29672285200002, + 6.633246161000046 + ], + [ + 122.33521569100003, + 6.603338934000078 + ], + [ + 122.23536217500009, + 6.571193752000056 + ], + [ + 122.18864993600005, + 6.451076565000052 + ], + [ + 121.96225019600001, + 6.404852606000078 + ], + [ + 121.80681399800005, + 6.619289455000058 + ], + [ + 122.06666100400003, + 6.740708726000094 + ], + [ + 122.29672285200002, + 6.633246161000046 + ] + ], + [ + [ + 121.62891686300009, + 6.657416083000044 + ], + [ + 121.61638431100005, + 6.561428127000056 + ], + [ + 121.5825301440001, + 6.631659247000074 + ], + [ + 121.62891686300009, + 6.657416083000044 + ] + ], + [ + [ + 122.97169030000009, + 7.383612372000074 + ], + [ + 122.80054772200003, + 7.32094961100006 + ], + [ + 122.82837975400003, + 7.430812893000052 + ], + [ + 122.97169030000009, + 7.383612372000074 + ] + ], + [ + [ + 117.46876061300009, + 6.76666901200008 + ], + [ + 117.50660241000003, + 6.673488674000056 + ], + [ + 117.34693444100003, + 6.654974677000042 + ], + [ + 117.46876061300009, + 6.76666901200008 + ] + ], + [ + [ + 117.17115319100003, + 7.342678127000056 + ], + [ + 117.28191165500004, + 7.33234284100007 + ], + [ + 117.26238040500004, + 7.201971747000074 + ], + [ + 117.07154381600003, + 7.102484442000048 + ], + [ + 117.06771894600001, + 7.28001536700009 + ], + [ + 117.17115319100003, + 7.342678127000056 + ] + ], + [ + [ + 117.00261478000004, + 7.355698960000042 + ], + [ + 117.01002037900003, + 7.279974677000042 + ], + [ + 116.85181725400003, + 7.198065497000074 + ], + [ + 117.00261478000004, + 7.355698960000042 + ] + ], + [ + [ + 117.08497155000009, + 8.057847398000092 + ], + [ + 117.08676191500001, + 7.87213776200008 + ], + [ + 117.00993899800005, + 7.800279039000088 + ], + [ + 116.96168053500003, + 8.061997789000088 + ], + [ + 117.08497155000009, + 8.057847398000092 + ] + ], + [ + [ + 117.03052819100003, + 8.068264065000053 + ], + [ + 116.99586022200003, + 8.103013414000088 + ], + [ + 117.0454207690001, + 8.13580963700008 + ], + [ + 117.03052819100003, + 8.068264065000053 + ] + ], + [ + [ + 122.00538170700008, + 15.010687567000048 + ], + [ + 122.05787194100003, + 14.983303127000056 + ], + [ + 122.00538170700008, + 14.990179755000042 + ], + [ + 121.96810957100001, + 14.90257396000004 + ], + [ + 122.02369225400003, + 14.722601630000042 + ], + [ + 121.94019616000003, + 14.64008209800005 + ], + [ + 121.82642662900003, + 15.012152411000047 + ], + [ + 121.92798912900003, + 15.052232164000088 + ], + [ + 122.00538170700008, + 15.010687567000048 + ] + ], + [ + [ + 120.00505618600005, + 16.26862213700008 + ], + [ + 119.99293053500003, + 16.230169989000046 + ], + [ + 119.9223738940001, + 16.30377838700008 + ], + [ + 119.98406009200005, + 16.34870026200008 + ], + [ + 120.00505618600005, + 16.26862213700008 + ] + ], + [ + [ + 123.89031009200005, + 13.27407461100006 + ], + [ + 123.8735457690001, + 13.229641018000052 + ], + [ + 123.84888756600003, + 13.35415273600006 + ], + [ + 123.92212975400003, + 13.32998281500005 + ], + [ + 123.89031009200005, + 13.27407461100006 + ] + ], + [ + [ + 123.80152428500003, + 13.366034247000073 + ], + [ + 123.77165774800005, + 13.403509833000044 + ], + [ + 123.84555097700002, + 13.36782461100006 + ], + [ + 123.80152428500003, + 13.366034247000073 + ] + ], + [ + [ + 124.41797936300009, + 13.87295156500005 + ], + [ + 124.4087020190001, + 13.667303778000075 + ], + [ + 124.33472741000003, + 13.55760325700004 + ], + [ + 124.25163821700005, + 13.599188544000071 + ], + [ + 124.18775475400003, + 13.52289459800005 + ], + [ + 124.0473738940001, + 13.606024481000077 + ], + [ + 124.02605228000004, + 13.669623114000046 + ], + [ + 124.1294051440001, + 13.818304755000042 + ], + [ + 124.13689212300005, + 14.07835521000004 + ], + [ + 124.21566816500001, + 14.086493231000077 + ], + [ + 124.30811608200008, + 13.90643952000005 + ], + [ + 124.41797936300009, + 13.87295156500005 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 125.27303287398779, + 6 + ], + [ + 125.25074303500003, + 6.093085028000076 + ], + [ + 125.15788821700005, + 6.10879140800006 + ], + [ + 125.12430452462482, + 6 + ], + [ + 125.27303287398779, + 6 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 126.5, + 7.062109879403024 + ], + [ + 126.46615644600001, + 7.003119208000044 + ], + [ + 126.30958092500009, + 6.948919989000046 + ], + [ + 126.33961022200003, + 6.78652578300006 + ], + [ + 126.2426863940001, + 6.919256903000076 + ], + [ + 126.17212975400003, + 6.903876044000072 + ], + [ + 126.25717207100001, + 6.744818427000042 + ], + [ + 126.20020592500009, + 6.283189195000092 + ], + [ + 126.09506269600001, + 6.514105536000046 + ], + [ + 126.07911217500009, + 6.84251536700009 + ], + [ + 125.98340905000009, + 6.92088450700004 + ], + [ + 125.85320071700005, + 7.336004950000074 + ], + [ + 125.66830488400002, + 7.257025458000044 + ], + [ + 125.64437910200002, + 7.09906647300005 + ], + [ + 125.50993899800005, + 7.015570380000042 + ], + [ + 125.37761478000004, + 6.674221096000054 + ], + [ + 125.40552819100003, + 6.58885325700004 + ], + [ + 125.58985436300009, + 6.499172268000052 + ], + [ + 125.69922936300009, + 6.04047272300005 + ], + [ + 125.67083857549744, + 6 + ], + [ + 126.5, + 6 + ], + [ + 126.5, + 7.062109879403024 + ] + ], + [ + [ + 125.79127037900003, + 6.948187567000048 + ], + [ + 125.77686608200008, + 6.894029039000088 + ], + [ + 125.67408287900003, + 7.070217190000052 + ], + [ + 125.71583092500009, + 7.19594961100006 + ], + [ + 125.78191165500004, + 7.135199286000046 + ], + [ + 125.79127037900003, + 6.948187567000048 + ] + ] + ] + }, + { + "type": "Polygon", + "coordinates": [ + [ + [ + 121.34245756458951, + 18.5 + ], + [ + 121.64966881600003, + 18.31395091400009 + ], + [ + 121.6450301440001, + 18.369452216000074 + ], + [ + 121.9868270190001, + 18.29043203300006 + ], + [ + 122.11931399800005, + 18.40302155200004 + ], + [ + 122.14740195645128, + 18.5 + ], + [ + 121.34245756458951, + 18.5 + ] + ] + ] + } + ], + "type": "GeometryCollection" + }, + "temporal": [ + { + "start": "1998-12-31T13:00:00Z", + "end": "2002-12-31T12:59:59Z" + } + ] + }, + "contacts": [ + { + "roles": [ + "principalInvestigator", + "about" + ], + "organization": "Australian Institute of Marine Science (AIMS)", + "name": "van Oppen, Madeleine JH, Dr", + "position": "", + "emails": [ + "adc@aims.gov.au" + ], + "addresses": [ + { + "deliveryPoint": [ + "PRIVATE MAIL BAG 3, TOWNSVILLE MAIL CENTRE" + ], + "city": "TOWNSVILLE", + "country": "Australia", + "postalCode": "4810", + "administrativeArea": "Queensland" + } + ], + "phones": [ + { + "roles": [ + "voice" + ], + "value": "+61 7 4753 4444" + }, + { + "roles": [ + "facsimile" + ], + "value": "" + } + ], + "links": [ + { + "href": "https://www.aims.gov.au", + "type": "WWW:LINK-1.0-http--link", + "title": "AIMS Web Site" + } + ] + }, + { + "roles": [ + "pointOfContact", + "about" + ], + "organization": "Australian Institute of Marine Science (AIMS)", + "name": "Data Manager, AIMS Data Centre", + "position": "", + "emails": [ + "adc@aims.gov.au" + ], + "addresses": [ + { + "deliveryPoint": [ + "PRIVATE MAIL BAG 3, TOWNSVILLE MAIL CENTRE" + ], + "city": "TOWNSVILLE", + "country": "Australia", + "postalCode": "4810", + "administrativeArea": "Queensland" + } + ], + "phones": [ + { + "roles": [ + "voice" + ], + "value": "+61 7 4753 4444" + }, + { + "roles": [ + "facsimile" + ], + "value": "" + } + ], + "links": [ + { + "href": "https://www.aims.gov.au", + "type": "WWW:LINK-1.0-http--link", + "title": "AIMS Web Site" + } + ] + }, + { + "roles": [ + "pointOfContact", + "metadata" + ], + "organization": "Australian Institute of Marine Science (AIMS)", + "name": "", + "position": "AIMS Data Centre", + "emails": [ + "adc@aims.gov.au" + ], + "addresses": [ + { + "deliveryPoint": [ + "PRIVATE MAIL BAG 3" + ], + "city": "TOWNSVILLE MAIL CENTRE", + "country": "Australia", + "postalCode": "4810", + "administrativeArea": "Queensland" + } + ], + "phones": [ + { + "roles": [ + "voice" + ], + "value": "+61 7 4753 4444" + }, + { + "roles": [ + "facsimile" + ], + "value": "+61 7 4772 5852" + } + ], + "links": [ + { + "href": "https://www.aims.gov.au/adc", + "type": "WWW:LINK-1.0-http--link" + } + ] + }, + { + "roles": [ + "publisher", + "citation" + ], + "organization": "Australian Institute of Marine Science (AIMS)", + "name": "", + "position": "", + "emails": [ + "reception@aims.gov.au" + ], + "addresses": [ + { + "deliveryPoint": [ + "PRIVATE MAIL BAG 3, TOWNSVILLE MAIL CENTRE" + ], + "city": "TOWNSVILLE", + "country": "Australia", + "postalCode": "4810", + "administrativeArea": "Queensland" + } + ], + "phones": [ + { + "roles": [ + "voice" + ], + "value": "+61 7 4753 4444" + }, + { + "roles": [ + "facsimile" + ], + "value": "" + } + ], + "links": [ + { + "href": "https://www.aims.gov.au", + "type": "WWW:LINK-1.0-http--link", + "title": "AIMS Web Site" + } + ] + }, + { + "roles": [ + "owner", + "citation" + ], + "organization": "Australian Institute of Marine Science (AIMS)", + "name": "", + "position": "", + "emails": [ + "adc@aims.gov.au" + ], + "addresses": [ + { + "deliveryPoint": [ + "PRIVATE MAIL BAG 3, TOWNSVILLE MAIL CENTRE" + ], + "city": "TOWNSVILLE", + "country": "Australia", + "postalCode": "4810", + "administrativeArea": "Queensland" + } + ], + "phones": [ + { + "roles": [ + "voice" + ], + "value": "+61 7 4753 4444" + }, + { + "roles": [ + "facsimile" + ], + "value": "" + } + ], + "links": [ + { + "href": "https://www.aims.gov.au", + "type": "WWW:LINK-1.0-http--link", + "title": "AIMS Web Site" + } + ] + } + ], + "languages": [ + { + "code": "eng", + "name": "English" + } + ], + "links": [ + { + "href": "articleId=6680", + "rel": "related", + "type": "", + "title": "Diversity of algal endosymbionts (zooxanthellae) in octocorals from three oceans: the roles of geography and host relationships: van Oppen MJH, Mieog JC, Sanchez C and Fabricius KE (2005) Diversity of algal endosymbionts (zooxanthellae) in octocorals from three oceans: the roles of geography and host relationships. Molecular Ecology 14: 2403-2417." + }, + { + "href": "https://geonetwork-edge.edge.aodn.org.au:443/geonetwork/images/logos/81465e5f-731c-4f72-9b4e-68f2f5e52f41.png", + "rel": "icon", + "type": "image/png", + "title": "Suggest icon for dataset" + }, + { + "href": "https://apps.aims.gov.au/metadata/view/0c681199-06cd-435c-9468-be6998799b1f", + "rel": "describedby", + "type": "text/html", + "title": "Full metadata link" + }, + { + "href": "http://i.creativecommons.org/l/by-nc/3.0/au/88x31.png", + "rel": "license", + "type": "image/png" + }, + { + "href": "http://creativecommons.org/licenses/by-nc/3.0/au/", + "rel": "license", + "type": "text/html" + } + ], + "license": "Creative Commons Attribution-NonCommercial 3.0 Australia License", + "providers": [ + { + "name": "Australian Institute of Marine Science (AIMS)", + "roles": [ + "pointOfContact" + ] + } + ], + "themes": [], + "id": "0c681199-06cd-435c-9468-be6998799b1f", + "search_suggestions": { + "abstract_phrases": [ + "eunicea asperula", + "great barrier", + "were great barrier reef", + "collected from california galapagos", + "paracis sp", + "francisco genetic", + "keroeides", + "muricea fruticosa", + "arbuscula", + "faro", + "eunicea calyculata eunicea laciniata", + "plexaura homomalla plexaurella", + "eunicea calyculata", + "villogorgia", + "de zuniga", + "g were", + "annella mollis", + "san lucas cancun", + "isla coronado isla danzante", + "isla", + "host phylogeny", + "eunicea laciniata eunicea sp", + "sinularia", + "presence genetic", + "cladiella", + "succinea", + "tubipora musica umbellulifera sp", + "francisco genetic analyses", + "frente al", + "far eastern", + "new guinea philippines south", + "menella sp", + "animas cabo san", + "paracis", + "papillosa", + "from california galapagos", + "euplexaura nuttingi euplexaura sp", + "piedra blanca piedras de", + "chironephthya", + "b pacifigorgia gracilis", + "coronado", + "octocoral taxa", + "xcaret", + "bahia de las animas", + "ventalina gorgoniidae", + "capnella sp", + "plexaurella dichotoma plexaurella", + "ctenocella pectinata", + "wagenaari pterogorgia", + "algal endosymbionts", + "unrooted phylogenetic tree", + "collected fresh", + "coast during", + "identified were dungenesse reef", + "internal transcribed spacer", + "grisea", + "central pacific regions", + "analyses", + "siphonogorgia geodeffroyi solenocaulon", + "belonging", + "annella", + "laciniata", + "ribosomal dna", + "list acabaria", + "salsipuedes isla tortuga", + "originally", + "danzante isla", + "list", + "coerulea heterogorgia", + "fruticosa", + "from california", + "plexaurella grisea", + "specifically identified were dungenesse", + "san francisco genetic analyses", + "wagenaari", + "isla danzante isla salsipuedes", + "tortuga", + "genetic identity", + "dowii psammogorgia teres", + "usa acapulco afuera", + "stereonephthya", + "flavida", + "locations were", + "great barrier reef bali", + "list acabaria cinquemiglia", + "pacifigorgia stenobrochis paracis", + "isla tortuga piedra blanca", + "dichotella sp", + "locations specifically identified were", + "paragorgia dendroides paralemnalia sp", + "asbestinum briareum", + "pacifigorgia gracilis", + "aurantiaca eunicea asperula eunicea", + "africa california usa acapulco", + "isla salsipuedes isla tortuga", + "muriceopsis", + "eastern pacific coast", + "cabo", + "musica umbellulifera", + "locations specifically identified", + "subergorgia suberosa", + "per", + "chironephthya sp", + "pseudoplexaura wagenaari", + "octocorals", + "collected fresh octocoral", + "caribbean sea", + "coronado isla danzante", + "africa", + "astrogorgia", + "eunicea tourneforti", + "pacifigorgia gracilis pacifigorgia stenobrochis", + "heliopora coerulea heterogorgia", + "xenia", + "dungenesse reef torres strait", + "melithaeidae sp", + "papillosa euplexaura nuttingi", + "anceps pterogorgia citrina", + "de las", + "afuera", + "other", + "isla coronado isla", + "eunicea tourneforti eunicella", + "octocorals from", + "isis hippuris junceella", + "eunicea", + "eunicea asperula eunicea", + "las animas", + "cone islands", + "central pacific", + "limbaughi", + "nicella sp", + "frente al faro", + "pacific", + "species samples derived from", + "species", + "unrooted", + "species list acabaria", + "octocoral samples were", + "de las animas cabo", + "francisco", + "phylogenetic tree", + "junceella fragilis junceella", + "homomalla", + "ptilosarcus undulates rhytisma sp", + "algal symbiosis", + "collected per species", + "reef bali central pacific", + "muricea sp", + "hook long", + "rigida leptogorgia", + "pacifigorgia", + "barrier reef bali", + "b xeniidae sp", + "las", + "isla coronado", + "new", + "stenobrochis paracis", + "verrucosa iciligorgia", + "schoboti", + "reef bali", + "dichotella", + "were", + "ellisella", + "succinea eunicea", + "alertigorgia orientalis annella", + "sympodium sp", + "grisea plexaurella nutans", + "annella mollis anthelia", + "samples belonging", + "lemnalia sp", + "isla salsipuedes", + "nicella", + "junceella", + "south africa california usa", + "muricanta", + "reef torres", + "muricea fruticosa muricea muricanta", + "samples were collected from", + "anceps pterogorgia citrina ptilosarcus", + "euplexaura nuttingi euplexaura", + "plexaurella dichotoma plexaurella grisea", + "paraminabea aldersladei paratelesto sp", + "papua new guinea", + "asperula eunicea calyculata", + "pacific eastern pacific", + "california usa", + "compare patterns", + "plexaurella nutans plumigorgia schoboti", + "gorgonia", + "double cone", + "usa acapulco", + "danzante isla salsipuedes isla", + "created from", + "ribosomal dna internal", + "dowii psammogorgia teres pseudoplexaura", + "leptogorgia sp", + "stenobrochis", + "mitochondrial coii", + "melithaea", + "heliopora coerulea heterogorgia sp", + "ventalina gorgoniidae sp", + "musica umbellulifera sp", + "dendroides paralemnalia sp", + "klyxum", + "philippines", + "anceps pterogorgia", + "psammogorgia arbuscula", + "reef", + "were acquired", + "barrier reef during", + "muricea", + "guinea philippines south", + "violacea capnella sp", + "rumphella", + "plumigorgia schoboti psammogorgia arbuscula", + "guinea were", + "pseudoplexaura wagenaari pterogorgia anceps", + "guinea philippines south africa", + "samples derived", + "algal endosymbionts symbiodinium", + "euplexaura sp", + "guinea philippines", + "limbaughi ellisella", + "dichotoma", + "other central pacific regions", + "were dungenesse reef torres", + "gracilis pacifigorgia", + "acabaria cinquemiglia", + "wagenaari pterogorgia anceps pterogorgia", + "tourneforti", + "diversity", + "aurantiaca eunicea", + "barrier reef", + "lucas cancun", + "reef during", + "anthelia sp", + "south africa california", + "flavida nicella", + "b pacifigorgia gracilis pacifigorgia", + "eunicea calyculata eunicea", + "subergorgia suberosa sympodium sp", + "genetic", + "aldersladei paratelesto", + "heliopora coerulea", + "mollis anthelia sp", + "bebryce sp", + "sp cespitularia", + "species list acabaria cinquemiglia", + "stenobrochis paracis sp", + "al faro", + "guinea were acquired", + "violacea capnella", + "rattray", + "umbellulifera", + "from museum", + "individuals", + "isla tortuga piedra", + "sciences", + "las animas cabo", + "carijoa sp cespitularia", + "acquired", + "eugorgia aurantiaca eunicea", + "eastern", + "blanca piedras", + "transcribed spacer", + "museum", + "spacer", + "nutans plumigorgia", + "plumigorgia schoboti", + "palau papua new", + "species samples derived", + "central", + "subergorgia", + "suberosa sympodium", + "transcribed", + "stylatula sp", + "dowii", + "derived", + "plumigorgia schoboti psammogorgia", + "list acabaria cinquemiglia acabaria", + "eunicella papillosa euplexaura nuttingi", + "gorgonia ventalina gorgoniidae", + "endosymbionts", + "heterogorgia sp", + "new guinea philippines", + "subergorgia suberosa sympodium", + "briareum violacea capnella sp", + "far eastern pacific", + "stereonephthya sp", + "coronado isla danzante isla", + "ptilosarcus", + "collected", + "ellisella limbaughi ellisella", + "samples investigated from", + "alertigorgia", + "echinogorgia", + "leptogorgia", + "eunicella", + "identified", + "far", + "rigida", + "pacifigorgia gracilis pacifigorgia", + "california galapagos", + "papillosa euplexaura nuttingi euplexaura", + "heterogorgia verrucosa iciligorgia sp", + "specifically", + "hippuris junceella fragilis", + "paratelesto", + "teres pseudoplexaura", + "double", + "pterogorgia citrina ptilosarcus", + "asperula eunicea calyculata eunicea", + "paralemnalia", + "coast", + "psammogorgia teres pseudoplexaura wagenaari", + "genetic analyses", + "phylogeny", + "phylogeny numbers", + "euplexaura nuttingi", + "acabaria", + "pacific regions", + "piedra blanca piedras", + "derived from museum specimens", + "were collected fresh", + "dowii psammogorgia", + "piedra blanca", + "algal", + "nuttingi", + "cabo san lucas cancun", + "nutans plumigorgia schoboti psammogorgia", + "octocorals were collected", + "rhytisma", + "samples investigated", + "acabaria sp", + "strait haslewood hook long", + "individuals were collected per", + "gorgoniidae", + "b xeniidae", + "central pacific eastern", + "tourneforti eunicella papillosa euplexaura", + "unrooted phylogenetic", + "studeriotes", + "cinquemiglia", + "rigida leptogorgia sp", + "great", + "paragorgia dendroides", + "mexico", + "were dungenesse reef", + "citrina ptilosarcus undulates rhytisma", + "fragilis junceella sp", + "gorgonia ventalina", + "internal transcribed", + "echinomuricea", + "ellisella limbaughi ellisella sp", + "small", + "endosymbionts symbiodinium", + "acanthogorgia sp", + "eunicea laciniata eunicea", + "iciligorgia", + "ctenocella pectinata dendronephthya sp", + "briareum violacea", + "alertigorgia orientalis annella mollis", + "annella mollis anthelia sp", + "acquired from", + "briareum violacea capnella", + "mariae", + "piedras de zuniga", + "laciniata eunicea", + "created", + "paralemnalia sp", + "tree", + "locations were great", + "strait", + "guinea were acquired from", + "hippuris junceella", + "small fragments", + "dna internal transcribed spacer", + "animas cabo", + "tourneforti eunicella", + "violacea", + "san carlos", + "rumphella sp", + "haslewood hook long", + "barrier reef bali central", + "succinea eunicea tourneforti", + "specimens originally collected from", + "san", + "astrogorgia dumbea astrogorgia sp", + "were collected from", + "species samples", + "isla danzante isla", + "briareidae", + "samples derived from", + "solenocaulon", + "pectinata dendronephthya", + "samples were collected", + "various", + "isla danzante", + "bebryce", + "arbuscula dowii psammogorgia teres", + "specifically identified were", + "succinea eunicea tourneforti eunicella", + "las animas cabo san", + "south africa", + "dungenesse reef torres", + "guinea", + "asperula eunicea", + "eunicea sp", + "citrina ptilosarcus", + "gracilis", + "gorgonia ventalina gorgoniidae sp", + "cespitularia", + "octocoral samples", + "investigated", + "heliopora", + "muriceopsis flavida nicella", + "tortuga piedra", + "pacific coast", + "astrogorgia dumbea astrogorgia", + "b c", + "sp cespitularia sp", + "eunicea laciniata", + "animas cabo san lucas", + "philippines south africa", + "individuals were", + "al", + "danzante", + "gorgonia mariae gorgonia ventalina", + "lucas cancun costa frente", + "islands", + "philippines south", + "aurantiaca eunicea asperula", + "zoxanthellae", + "compare", + "lobophytum", + "cancun costa frente", + "dumbea", + "geodeffroyi solenocaulon", + "lemnalia", + "sea", + "calyculata eunicea", + "anceps", + "limbaughi ellisella sp", + "palau", + "dendronephthya", + "presence genetic identity", + "zooxanthellae were", + "haslewood hook", + "gracilis pacifigorgia stenobrochis paracis", + "orientalis annella mollis anthelia", + "muricanta muricea sp", + "briareidae sp", + "acapulco afuera", + "eugorgia aurantiaca eunicea asperula", + "bahia de las", + "astrogorgia sp", + "great barrier reef during", + "isla salsipuedes isla", + "california usa acapulco afuera", + "aldersladei", + "symbiodinium clades", + "carlos", + "eugorgia", + "dendroides paralemnalia", + "de", + "pterogorgia anceps pterogorgia citrina", + "solenocaulon sp", + "ellisella limbaughi", + "zooxanthellae were based", + "muriceopsis flavida nicella sp", + "coronado isla", + "philippines palau", + "individuals were collected", + "various locations were", + "identified were", + "species from", + "patterns", + "tubipora musica", + "plexaurella grisea plexaurella", + "sinularia sp", + "suberosa", + "ctenocella", + "plexaura homomalla", + "fresh octocoral samples", + "octocoral taxa based", + "collected per", + "museum specimens originally", + "paratelesto sp", + "subergorgia sp", + "ribosomal dna internal transcribed", + "long rattray", + "grisea plexaurella nutans plumigorgia", + "california usa acapulco", + "per species samples derived", + "ptilosarcus undulates", + "bali central", + "central great barrier reef", + "collected per species samples", + "zooxanthellae", + "museum specimens originally collected", + "schoboti psammogorgia arbuscula dowii", + "reef torres strait", + "acabaria cinquemiglia acabaria sp", + "schoboti psammogorgia", + "colonies individuals were collected", + "per species samples", + "pseudoplexaura wagenaari pterogorgia", + "salsipuedes isla tortuga piedra", + "were collected fresh octocoral", + "papua new guinea were", + "paragorgia dendroides paralemnalia", + "clades", + "eastern pacific", + "were collected per species", + "asbestinum", + "eunicea tourneforti eunicella papillosa", + "bahia de", + "fresh", + "strait haslewood", + "muricella sp", + "taxa based", + "salsipuedes", + "central great barrier", + "gracilis pacifigorgia stenobrochis", + "hook", + "specimens originally collected", + "dna", + "plexaurella nutans", + "mitochondrial", + "iciligorgia sp", + "reef torres strait haslewood", + "lobophytum sp", + "palau papua", + "torres strait", + "arbuscula dowii psammogorgia", + "papua", + "cabo san lucas", + "citrina", + "ellisella sp", + "plumigorgia", + "suberosa sympodium sp", + "mariae gorgonia ventalina", + "dumbea astrogorgia", + "g were identified", + "muriceopsis flavida", + "geodeffroyi solenocaulon sp", + "euplexaura", + "were dungenesse", + "leptogorgia rigida", + "octocoral algal symbiosis", + "eunicea succinea", + "octocorals were collected fresh", + "arbuscula dowii", + "dichotoma plexaurella", + "pacifigorgia stenobrochis", + "pacifigorgia stenobrochis paracis sp", + "blanca piedras de", + "plexaura homomalla plexaurella dichotoma", + "nutans", + "costa frente", + "piedras", + "specimens", + "locations were great barrier", + "new guinea were acquired", + "originally collected from", + "plexaurella", + "pacific coast during", + "plexaurella dichotoma", + "sarcophyton", + "genera", + "carijoa", + "usa", + "papillosa euplexaura", + "calyculata", + "geodeffroyi", + "astrogorgia dumbea", + "gorgoniidae sp", + "sarcophyton sp", + "piedra", + "fragilis junceella", + "stylatula", + "were great", + "central great", + "symbiodinium", + "capnella", + "identified were dungenesse", + "were identified", + "host", + "junceella fragilis junceella sp", + "colonies", + "hippuris", + "san lucas cancun costa", + "from museum specimens originally", + "haslewood hook long rattray", + "dna internal", + "species list", + "coerulea", + "xcaret isla coronado", + "pterogorgia anceps", + "philippines south africa california", + "asperula", + "studeriotes sp", + "psammogorgia teres", + "dendronephthya sp", + "pterogorgia citrina", + "collected from", + "other central pacific", + "animas", + "eunicella papillosa", + "locations specifically", + "blanca", + "pterogorgia", + "bali", + "acapulco", + "reef bali central", + "nuttingi euplexaura sp", + "coerulea heterogorgia sp", + "palau papua new guinea", + "families", + "xenia sp", + "cespitularia sp", + "pseudoplexaura", + "ventalina", + "psammogorgia teres pseudoplexaura", + "xeniidae", + "anthelia", + "pacific eastern", + "briareum", + "heterogorgia verrucosa iciligorgia", + "phylogenetic", + "bali central pacific", + "ptilosarcus undulates rhytisma", + "isla tortuga", + "eunicea asperula eunicea calyculata", + "cancun", + "cinquemiglia acabaria", + "teres", + "from museum specimens", + "taxa", + "originally collected from california", + "based", + "villogorgia sp", + "muricea muricanta muricea sp", + "aldersladei paratelesto sp", + "pectinata dendronephthya sp", + "were based", + "plexaurella grisea plexaurella nutans", + "teres pseudoplexaura wagenaari pterogorgia", + "fresh octocoral", + "orientalis annella mollis", + "muricea muricanta", + "siphonogorgia geodeffroyi", + "lucas cancun costa", + "collected from california", + "examine", + "california academy", + "verrucosa iciligorgia sp", + "dendroides", + "eugorgia aurantiaca", + "eunicella papillosa euplexaura", + "plexaurella nutans plumigorgia", + "long", + "derived from", + "paraminabea aldersladei", + "galapagos", + "eunicea succinea eunicea tourneforti", + "piedras de", + "fresh octocoral samples were", + "b c d", + "sp", + "undulates", + "hook long rattray", + "fruticosa muricea muricanta muricea", + "dungenesse reef", + "rhytisma sp", + "xcaret isla coronado isla", + "calyculata eunicea laciniata", + "keroeides sp", + "teres pseudoplexaura wagenaari", + "pterogorgia anceps pterogorgia", + "musica", + "sympodium", + "papua new guinea philippines", + "clavularia", + "were great barrier", + "numbers", + "strait haslewood hook", + "tubipora", + "investigated from", + "dna internal transcribed", + "melithaea sp", + "fragments", + "california", + "grisea plexaurella", + "orientalis", + "coii", + "muricella", + "various locations", + "nuttingi euplexaura", + "carijoa sp", + "siphonogorgia", + "collected fresh octocoral samples", + "colonies individuals", + "derived from museum", + "octocoral samples were collected", + "new guinea were", + "echinogorgia sp", + "region", + "briareum asbestinum", + "xeniidae sp", + "cinquemiglia acabaria sp", + "per species", + "fruticosa muricea muricanta", + "dichotoma plexaurella grisea plexaurella", + "danzante isla salsipuedes", + "ribosomal", + "tourneforti eunicella papillosa", + "acabaria cinquemiglia acabaria", + "torres strait haslewood hook", + "isis hippuris", + "schoboti psammogorgia arbuscula", + "siphonogorgia geodeffroyi solenocaulon sp", + "melithaeidae", + "ctenocella pectinata dendronephthya", + "laciniata eunicea sp", + "verrucosa", + "isis hippuris junceella fragilis", + "wagenaari pterogorgia anceps", + "hippuris junceella fragilis junceella", + "cancun costa", + "mariae gorgonia ventalina gorgoniidae", + "mollis", + "orientalis annella", + "citrina ptilosarcus undulates", + "mariae gorgonia", + "during", + "tortuga piedra blanca", + "cone", + "muricea muricanta muricea", + "caribbean", + "other central", + "tortuga piedra blanca piedras", + "umbellulifera sp", + "bali central pacific eastern", + "presence", + "psammogorgia arbuscula dowii psammogorgia", + "samples derived from museum", + "frente", + "calyculata eunicea laciniata eunicea", + "samples", + "echinomuricea sp", + "symbiosis", + "cladiella sp", + "internal", + "regions", + "zuniga", + "south", + "range", + "homomalla plexaurella", + "gorgonia mariae", + "plexaura", + "specimens originally", + "identity", + "academy", + "pectinata", + "haslewood", + "papua new", + "homomalla plexaurella dichotoma", + "octocoral", + "undulates rhytisma", + "were acquired from", + "host phylogeny numbers", + "octocorals were", + "leptogorgia rigida leptogorgia", + "paragorgia", + "bahia", + "mollis anthelia", + "klyxum sp", + "dichotoma plexaurella grisea", + "heterogorgia", + "central pacific eastern pacific", + "lucas", + "new guinea", + "heterogorgia verrucosa", + "junceella fragilis", + "samples were", + "various locations were great", + "barrier", + "costa", + "blanca piedras de zuniga", + "from", + "psammogorgia arbuscula dowii", + "xcaret isla", + "carijoa sp cespitularia sp", + "clavularia sp", + "eastern pacific coast during", + "dumbea astrogorgia sp", + "torres", + "leptogorgia rigida leptogorgia sp", + "museum specimens", + "menella", + "san lucas", + "undulates rhytisma sp", + "specifically identified", + "acanthogorgia", + "psammogorgia", + "eunicea succinea eunicea", + "salsipuedes isla", + "tubipora musica umbellulifera", + "aurantiaca", + "nutans plumigorgia schoboti", + "de las animas", + "pterogorgia citrina ptilosarcus undulates", + "flavida nicella sp", + "dungenesse", + "africa california", + "fruticosa muricea", + "paraminabea aldersladei paratelesto", + "colonies individuals were", + "homomalla plexaurella dichotoma plexaurella", + "octocoral algal", + "cabo san", + "b pacifigorgia", + "briareum asbestinum briareum", + "san francisco genetic", + "san francisco", + "fragilis", + "gorgonia mariae gorgonia", + "isis", + "originally collected", + "c d", + "alertigorgia orientalis", + "muricea fruticosa muricea", + "double cone islands", + "africa california usa", + "were collected per", + "region symbiodinium clades", + "paraminabea", + "region symbiodinium", + "junceella sp", + "muricanta muricea", + "torres strait haslewood", + "were collected", + "locations", + "great barrier reef" + ] + }, + "sci:citation": "", + "stac_version": "1.0.0", + "stac_extensions": [ + "https://stac-extensions.github.io/scientific/v1.0.0/schema.json", + "https://stac-extensions.github.io/contacts/v0.1.1/schema.json", + "https://stac-extensions.github.io/projection/v1.1.0/schema.json", + "https://stac-extensions.github.io/language/v1.0.0/schema.json", + "https://stac-extensions.github.io/themes/v1.0.0/schema.json", + "https://stac-extensions.github.io/web-map-links/v1.2.0/schema.json" + ], + "type": "Collection" +}