org.locationtech.jts.geom.Geometry.setUserData()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(203)

本文整理了Java中org.locationtech.jts.geom.Geometry.setUserData()方法的一些代码示例,展示了Geometry.setUserData()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Geometry.setUserData()方法的具体详情如下:
包路径:org.locationtech.jts.geom.Geometry
类名称:Geometry
方法名:setUserData

Geometry.setUserData介绍

[英]A simple scheme for applications to add their own custom data to a Geometry. An example use might be to add an object representing a Coordinate Reference System.

Note that user data objects are not present in geometries created by construction methods.
[中]应用程序向几何图形添加自己的自定义数据的简单方案。例如,可以添加表示坐标参照系的对象。
请注意,由构造方法创建的几何图形中不存在用户数据对象。

代码示例

代码示例来源:origin: geotools/geotools

  1. public void setUserData(Object userData) {
  2. geometry.setUserData(userData);
  3. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. *
  3. * <!-- begin-user-doc -->
  4. * <!-- end-user-doc -->
  5. *
  6. * @generated modifiable
  7. */
  8. public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
  9. // set the crs
  10. if (value instanceof Geometry) {
  11. CoordinateReferenceSystem crs = GML3ParsingUtils.crs(node);
  12. if (crs != null) {
  13. Geometry geometry = (Geometry) value;
  14. geometry.setUserData(crs);
  15. }
  16. }
  17. return value;
  18. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. *
  3. * <!-- begin-user-doc -->
  4. * <!-- end-user-doc -->
  5. *
  6. * @generated modifiable
  7. */
  8. public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
  9. // set the crs
  10. if (value instanceof Geometry) {
  11. CoordinateReferenceSystem crs = GML3ParsingUtils.crs(node);
  12. if (crs != null) {
  13. Geometry geometry = (Geometry) value;
  14. geometry.setUserData(crs);
  15. }
  16. }
  17. return value;
  18. }

代码示例来源:origin: geotools/geotools

  1. public Geometry gml(Node root) {
  2. // look for the SRS name, if available
  3. Node srsNameNode = root.getAttributes().getNamedItem("srsName");
  4. CoordinateReferenceSystem crs = null;
  5. if (srsNameNode != null) {
  6. String srs = srsNameNode.getTextContent();
  7. try {
  8. crs = CRS.decode(srs);
  9. } catch (Exception e) {
  10. LOGGER.warning("Failed to parse the specified SRS " + srs);
  11. }
  12. }
  13. // parse the geometry
  14. Geometry g = _gml(root);
  15. // force the crs if necessary
  16. if (crs != null) {
  17. g.setUserData(crs);
  18. }
  19. return g;
  20. }

代码示例来源:origin: geotools/geotools

  1. @SuppressWarnings({"unchecked", "rawtypes"})
  2. void setMetadata(Geometry g, String metadata, String value) {
  3. if (g.getUserData() == null) {
  4. g.setUserData(new HashMap());
  5. }
  6. if (g.getUserData() instanceof Map) {
  7. ((Map) g.getUserData()).put(metadata, value);
  8. }
  9. }

代码示例来源:origin: geotools/geotools

  1. g.setUserData(srsName);

代码示例来源:origin: geotools/geotools

  1. g.setUserData(srsName);

代码示例来源:origin: geotools/geotools

  1. /**
  2. *
  3. * <!-- begin-user-doc -->
  4. * <!-- end-user-doc -->
  5. *
  6. * @generated modifiable
  7. */
  8. public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
  9. if (value instanceof Geometry) {
  10. Geometry geometry = (Geometry) value;
  11. // &lt;attribute name="srsName" type="anyURI" use="optional"/&gt;
  12. if (node.hasAttribute("srsName")) {
  13. URI srs = (URI) node.getAttributeValue("srsName");
  14. CoordinateReferenceSystem crs = CRS.decode(srs.toString());
  15. if (crs != null) {
  16. geometry.setUserData(crs);
  17. } else {
  18. logger.warning("Could not create Coordinate Reference System for " + srs);
  19. }
  20. }
  21. // TODO: process the ID attribute
  22. }
  23. return value;
  24. }

代码示例来源:origin: geotools/geotools

  1. Geometry decodeGeometry(String s, GeometryFactory factory) throws IOException {
  2. if (s == null) {
  3. return null;
  4. }
  5. if (factory == null) {
  6. factory = new GeometryFactory();
  7. }
  8. String[] split = s.split(":");
  9. String srid = split[0];
  10. Geometry g = null;
  11. try {
  12. g = new WKTReader(factory).read(split[1]);
  13. } catch (ParseException e) {
  14. throw (IOException) new IOException().initCause(e);
  15. }
  16. if (srid != null && POSITIVE_NUMBER.matcher(srid).matches()) {
  17. CoordinateReferenceSystem crs;
  18. try {
  19. crs = CRS.decode("EPSG:" + srid);
  20. } catch (Exception e) {
  21. throw (IOException) new IOException().initCause(e);
  22. }
  23. g.setUserData(crs);
  24. }
  25. return g;
  26. }

代码示例来源:origin: geotools/geotools

  1. /** Helper method for setting the gml:id of a geometry as user data. */
  2. protected void setGmlProperties(Geometry g, String gid, String name, String description) {
  3. // set up the user data
  4. Map userData = null;
  5. if (g.getUserData() != null) {
  6. if (g.getUserData() instanceof Map) {
  7. userData = (Map) g.getUserData();
  8. } else {
  9. userData = new HashMap();
  10. userData.put(g.getUserData().getClass(), g.getUserData());
  11. }
  12. } else {
  13. userData = new HashMap();
  14. }
  15. if (gid != null) {
  16. userData.put("gml:id", gid);
  17. }
  18. if (name != null) {
  19. userData.put("gml:name", name);
  20. }
  21. if (description != null) {
  22. userData.put("gml:description", description);
  23. }
  24. g.setUserData(userData);
  25. }

代码示例来源:origin: geotools/geotools

  1. protected void copyUserProperties(Geometry sourceGeometry, Geometry destGeometry) {
  2. // NC-added, copy userdata
  3. if (destGeometry != null) {
  4. Map<Object, Object> newUserData = new HashMap<Object, Object>();
  5. // copy if anything is already in destination data
  6. if (destGeometry.getUserData() instanceof Map) {
  7. newUserData.putAll((Map) destGeometry.getUserData());
  8. } else if (destGeometry.getUserData() instanceof CoordinateReferenceSystem) {
  9. newUserData.put(CoordinateReferenceSystem.class, destGeometry.getUserData());
  10. }
  11. // overwrite with source
  12. if (sourceGeometry.getUserData() instanceof Map) {
  13. newUserData.putAll((Map) sourceGeometry.getUserData());
  14. } else if (sourceGeometry.getUserData() instanceof CoordinateReferenceSystem) {
  15. newUserData.put(CoordinateReferenceSystem.class, sourceGeometry.getUserData());
  16. }
  17. destGeometry.setUserData(newUserData);
  18. }
  19. }
  20. }

代码示例来源:origin: geotools/geotools

  1. /** Helper method to reproject a geometry. */
  2. protected Geometry reproject(Object value, CoordinateReferenceSystem propertyCrs) {
  3. if (value == null) {
  4. return null;
  5. }
  6. if (!(value instanceof Geometry))
  7. throw new IllegalArgumentException(
  8. "Binary geometry filter, but second expression "
  9. + "is not a geometry literal? (it's a "
  10. + value.getClass()
  11. + ")");
  12. Geometry geom = (Geometry) value;
  13. // does it make sense to proceed?
  14. if (geom.getUserData() == null
  15. || !(geom.getUserData() instanceof CoordinateReferenceSystem)) return geom;
  16. try {
  17. // reproject
  18. CoordinateReferenceSystem geomCRS = (CoordinateReferenceSystem) geom.getUserData();
  19. Geometry transformed =
  20. JTS.transform(geom, CRS.findMathTransform(geomCRS, propertyCrs, true));
  21. transformed.setUserData(propertyCrs);
  22. return transformed;
  23. } catch (Exception e) {
  24. throw new RuntimeException("Could not reproject geometry " + value, e);
  25. }
  26. }

代码示例来源:origin: geotools/geotools

  1. public Literal buildReferencedGeometryLiteral() throws CQLException {
  2. BuildResultStack resultStack = getResultStack();
  3. Literal literal = resultStack.popLiteral();
  4. int srid = resultStack.popIntegerValue();
  5. try {
  6. CoordinateReferenceSystem crs = CRS.decode("EPSG:" + srid);
  7. Geometry geometry = (Geometry) literal.getValue();
  8. geometry.setUserData(crs);
  9. } catch (FactoryException e) {
  10. throw new CQLException(
  11. "Failed to build CRS for SRID: " + srid, null, e, getStatement());
  12. }
  13. return literal;
  14. }

代码示例来源:origin: geotools/geotools

  1. geom.setUserData(newUserData);
  2. target.setValue(geom);

代码示例来源:origin: geotools/geotools

  1. geom.setUserData(crs);

代码示例来源:origin: geotools/geotools

  1. ((Geometry) value).setUserData(crs);

代码示例来源:origin: geotools/geotools

  1. public Object visit(Literal expression, Object extraData) {
  2. if (!(expression.getValue() instanceof Geometry)) return super.visit(expression, extraData);
  3. // check if reprojection is needed
  4. Geometry geom = (Geometry) expression.getValue();
  5. if (geom.getUserData() != null && geom.getUserData() instanceof CoordinateReferenceSystem)
  6. return super.visit(expression, extraData);
  7. // clone the geometry and assign the new crs
  8. Geometry clone = geom.getFactory().createGeometry(geom);
  9. clone.setUserData(defaultCrs);
  10. // clone
  11. return ff.literal(clone);
  12. }
  13. }

代码示例来源:origin: geotools/geotools

  1. public void testLinearRingToCurve() throws Exception {
  2. Geometry ls = new WKTReader().read("LINEARRING(0 0, 10 10, 10 0, 0 0)");
  3. Map<String, String> userData = Collections.singletonMap("test", "value");
  4. ls.setUserData(userData);
  5. Converter converter = getConverter(ls, CurvedGeometry.class);
  6. CurvedGeometry curve = converter.convert(ls, CurvedGeometry.class);
  7. assertTrue(curve instanceof CompoundRing);
  8. CompoundRing cr = (CompoundRing) curve;
  9. assertEquals(1, cr.getComponents().size());
  10. assertEquals(ls, cr.getComponents().get(0));
  11. assertEquals(userData, cr.getUserData());
  12. }
  13. }

代码示例来源:origin: geotools/geotools

  1. @Test
  2. public void testCRSNested() throws Exception {
  3. WKTReader reader = new WKTReader();
  4. GeometryCollector collector = new GeometryCollector();
  5. collector.setFactory(null);
  6. final Geometry p0 = reader.read("MULTIPOINT(0 0, 1 1)");
  7. p0.setUserData(DefaultGeographicCRS.WGS84);
  8. collector.add(p0);
  9. final Geometry p1 = reader.read("MULTIPOINT(2 2, 3 3)");
  10. collector.add(p1);
  11. p1.setUserData(DefaultGeographicCRS.WGS84);
  12. GeometryCollection result = collector.collect();
  13. assertEquals(4, result.getNumGeometries());
  14. assertSame(DefaultGeographicCRS.WGS84, result.getUserData());
  15. assertEquals(reader.read("POINT(0 0)"), result.getGeometryN(0));
  16. }
  17. }

代码示例来源:origin: geotools/geotools

  1. @Test
  2. public void testCRSSimple() throws Exception {
  3. WKTReader reader = new WKTReader();
  4. GeometryCollector collector = new GeometryCollector();
  5. collector.setFactory(null);
  6. final Geometry p0 = reader.read("POINT(0 0)");
  7. p0.setUserData(DefaultGeographicCRS.WGS84);
  8. collector.add(p0);
  9. final Geometry p1 = reader.read("POINT(1 1)");
  10. collector.add(p1);
  11. p1.setUserData(DefaultGeographicCRS.WGS84);
  12. GeometryCollection result = collector.collect();
  13. assertEquals(2, result.getNumGeometries());
  14. assertSame(DefaultGeographicCRS.WGS84, result.getUserData());
  15. assertSame(p0, result.getGeometryN(0));
  16. assertSame(p1, result.getGeometryN(1));
  17. }

相关文章