private static String getDataLine(Placemark placemark, Object[] values, int columnCountMin, int columnCount) { StringBuilder sb = new StringBuilder(); sb.append(placemark.getName()); for (int col = 0; col < columnCountMin; col++) { formatValue(values[col], sb); } sb.append("\t"); sb.append(placemark.getDescription()); for (int col = columnCountMin; col < columnCount; col++) { formatValue(values[col], sb); } return sb.toString(); }
private boolean makePlacemarkNameUnique0(Placemark placemark, Product targetProduct) { ProductNodeGroup<Placemark> placemarkGroup = getPlacemarkGroup(targetProduct); if (placemarkGroup.get(placemark.getName()) == placemark) { return false; } String name0 = placemark.getName(); String name = name0; int id = 1; while (placemarkGroup.contains(name)) { name = name0 + "_" + id; id++; } if (!name0.equals(name)) { placemark.setName(name); return true; } return false; }
private void makePlacemarkNameUnique(Placemark newPlacemark) { if (makePlacemarkNameUnique0(newPlacemark, product)) { showWarningDialog(MessageFormat.format("{0} has been renamed to ''{1}'',\n" + "because a {2} with the former name already exists.", StringUtils.firstLetterUp(placemarkDescriptor.getRoleLabel()), newPlacemark.getName(), placemarkDescriptor.getRoleLabel())); } }
private List<Coordinate> extractCoordinates(File coordinatesFile) { final List<Coordinate> extractedCoordinates = new ArrayList<>(); FileReader fileReader = null; try { fileReader = new FileReader(coordinatesFile); final List<Placemark> pins = PlacemarkIO.readPlacemarks(fileReader, null, // no GeoCoding needed PinDescriptor.getInstance()); for (Placemark pin : pins) { final GeoPos geoPos = pin.getGeoPos(); if (geoPos != null) { final Date dateTimeValue = (Date) pin.getFeature().getAttribute(Placemark.PROPERTY_NAME_DATETIME); final Coordinate coordinate = new Coordinate(pin.getName(), geoPos.lat, geoPos.lon, dateTimeValue); extractedCoordinates.add(coordinate); } } } catch (IOException cause) { throw new OperatorException(cause); } finally { if (fileReader != null) { try { fileReader.close(); } catch (IOException ignored) { } } } return extractedCoordinates; }
public static Color getPlacemarkColor(Placemark placemark, ProductSceneView view) { final String styleCss = placemark.getStyleCss(); if (styleCss.contains(DefaultFigureStyle.FILL_COLOR.getName())) { return DefaultFigureStyle.createFromCss(styleCss).getFillColor(); } final Figure[] figures = getFigures(view); for (Figure figure : figures) { if (figure instanceof SimpleFeaturePointFigure) { final SimpleFeature simpleFeature = ((SimpleFeaturePointFigure) figure).getSimpleFeature(); if (simpleFeature.getID().equals(placemark.getName())) { return figure.getNormalStyle().getFillColor(); } } } return Color.BLUE; }
private void testReadMinimalPlacemarkTextFile(PlacemarkDescriptor descriptor) throws IOException { String output = "Name\tLat\tLon\n"; output += "name_1\t10.2\t12.4\n"; output += "name_2\t40.0\t-2.9\n"; List<Placemark> actualPlacemarks = PlacemarkIO.readPlacemarks(new StringReader(output), GEO_CODING, descriptor); assertEquals(2, actualPlacemarks.size()); assertEquals(actualPlacemarks.get(0).getName(), "name_1"); assertEquals(actualPlacemarks.get(0).getGeoPos().lat, 10.2f, 1.0e-4); assertEquals(actualPlacemarks.get(0).getGeoPos().lon, 12.4f, 1.0e-4); assertEquals(actualPlacemarks.get(1).getName(), "name_2"); assertEquals(actualPlacemarks.get(1).getGeoPos().lat, 40.0f, 1.0e-4); assertEquals(actualPlacemarks.get(1).getGeoPos().lon, -2.9f, 1.0e-4); } }
public Coordinate[] getCoordinates() { Coordinate[] coordinates = new Coordinate[coordinateTableModel.getRowCount()]; for (int i = 0; i < coordinateTableModel.getRowCount(); i++) { final Placemark placemark = coordinateTableModel.getPlacemarkAt(i); SimpleFeature feature = placemark.getFeature(); final Date dateTime = (Date) feature.getAttribute(Placemark.PROPERTY_NAME_DATETIME); final Coordinate.OriginalValue[] originalValues = PixExOp.getOriginalValues(feature); if (placemark.getGeoPos() == null) { final Point point = (Point) feature.getDefaultGeometry(); coordinates[i] = new Coordinate(placemark.getName(), (float) point.getY(), (float) point.getX(), dateTime, originalValues); } else { coordinates[i] = new Coordinate(placemark.getName(), placemark.getGeoPos().getLat(), placemark.getGeoPos().getLon(), dateTime, originalValues); } } return coordinates; }
for (Placemark placemark : placemarks) { Placemark newPlacemark = Placemark.createPointPlacemark(placemark.getDescriptor(), placemark.getName(), placemark.getLabel(), placemark.getDescription(),
@Override protected Object getStandardColumnValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0: return getPlacemarkAt(rowIndex).getName(); case 1: if (placemarkHasGeoPos(rowIndex)) { return getPlacemarkAt(rowIndex).getGeoPos().getLat(); } return ((Point) getPlacemarkAt(rowIndex).getFeature().getDefaultGeometry()).getY(); case 2: if (placemarkHasGeoPos(rowIndex)) { return getPlacemarkAt(rowIndex).getGeoPos().getLon(); } return ((Point) getPlacemarkAt(rowIndex).getFeature().getDefaultGeometry()).getX(); case 3: return getPlacemarkAt(rowIndex).getFeature().getAttribute(Placemark.PROPERTY_NAME_DATETIME); default: throw new IllegalArgumentException(String.format("Invalid columnIndex = %d", columnIndex)); } }
private void testReadStandardResult(List<Placemark> expectedPlacemarks, List<Placemark> actualPlacemarks, PlacemarkDescriptor descriptorInstance) { for (int i = 0; i < actualPlacemarks.size(); i++) { Placemark actualPlacemark = actualPlacemarks.get(i); Placemark expectedPlacemark = expectedPlacemarks.get(i); assertNotSame(expectedPlacemark, actualPlacemark); assertEquals(expectedPlacemark.getName(), actualPlacemark.getName()); assertEquals(expectedPlacemark.getLabel(), actualPlacemark.getLabel()); assertEquals(expectedPlacemark.getPixelPos(), actualPlacemark.getPixelPos()); assertEquals(expectedPlacemark.getGeoPos(), actualPlacemark.getGeoPos()); assertEquals(expectedPlacemark.getDescription(), actualPlacemark.getDescription()); PlacemarkDescriptor descriptor = expectedPlacemark.getDescriptor(); assertEquals(descriptor.getRoleLabel(), descriptorInstance.getRoleLabel()); } }
@Override public void computeTile(Band band, Tile targetTile, ProgressMonitor pm) { // Fill the tile with the constant sample value 12345 // for (Pos pos : targetTile) { targetTile.setSample(pos.x, pos.y, 12345); } // Set a pin, so that we can test that the header is rewritten after // a data model change. // final int minX = targetTile.getMinX(); final int minY = targetTile.getMinY(); Placemark placemark = Placemark.createPointPlacemark(PinDescriptor.getInstance(), band.getName() + "-" + minX + "-" + minY, "label", "descr", new PixelPos(minX, minY), null, targetProduct.getGeoCoding()); targetProduct.getPinGroup().add(placemark); System.out.println("placemark = " + placemark.getName()); }
public static void writeXML(Placemark placemark, XmlWriter writer, int indent) { Guardian.assertNotNull("writer", writer); Guardian.assertGreaterThan("indent", indent, -1); final String[][] attributes = {new String[]{DimapProductConstants.ATTRIB_NAME, placemark.getName()}}; final String[] pinTags = XmlWriter.createTags(indent, DimapProductConstants.TAG_PLACEMARK, attributes); writer.println(pinTags[0]); indent++; writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_LABEL, placemark.getLabel()); writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_DESCRIPTION, placemark.getDescription()); final GeoPos geoPos = placemark.getGeoPos(); if (geoPos != null) { writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_LATITUDE, geoPos.lat); writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_LONGITUDE, geoPos.lon); } final PixelPos pixelPos = placemark.getPixelPos(); if (pixelPos != null && pixelPos.isValid()) { writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_PIXEL_X, pixelPos.x); writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_PIXEL_Y, pixelPos.y); } final String styleCss = placemark.getStyleCss(); if (styleCss != null && !styleCss.isEmpty()) { writer.printLine(indent, DimapProductConstants.TAG_PLACEMARK_STYLE_CSS, styleCss); } writer.println(pinTags[1]); }
public void testLabelSettings() { Placemark p = Placemark.createPointPlacemark(PinDescriptor.getInstance(), "rallamann", "rallamann", "", null, new GeoPos(), product.getGeoCoding()); assertEquals("rallamann", p.getName()); assertEquals("rallamann", p.getLabel()); p.setLabel("schanteri"); assertEquals("rallamann", p.getName()); assertEquals("schanteri", p.getLabel()); p.setLabel(null); assertEquals("", p.getLabel()); p.setLabel(""); assertEquals("", p.getLabel()); } }
void copyActivePlacemark() { Guardian.assertNotNull("product", product); Placemark activePlacemark = getSelectedPlacemark(); Guardian.assertNotNull("activePlacemark", activePlacemark); Placemark newPlacemark = Placemark.createPointPlacemark(activePlacemark.getDescriptor(), "copy_of_" + activePlacemark.getName(), activePlacemark.getLabel(), activePlacemark.getDescription(), activePlacemark.getPixelPos(), activePlacemark.getGeoPos(), activePlacemark.getProduct().getGeoCoding()); newPlacemark.setStyleCss(activePlacemark.getStyleCss()); if (PlacemarkDialog.showEditPlacemarkDialog(getPaneWindow(), product, newPlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(newPlacemark); updateUIState(); } }
assertEquals(pinName, placemark.getName()); assertEquals("", placemark.getDescription()); assertEquals(pinLat, placemark.getGeoPos().lat, 1e-15f); assertEquals(pinName, placemark.getName()); assertEquals(pinDesc, placemark.getDescription()); assertEquals(pinLat, placemark.getGeoPos().lat, 1e-15f); assertEquals(pinName, placemark.getName()); assertEquals(pinDesc, placemark.getDescription()); assertEquals(pinLat, placemark.getGeoPos().lat, 1e-15f);
assertEquals(3, product2.getGcpGroup().getNodeCount()); assertEquals("P1", product2.getPinGroup().get(0).getName()); assertEquals("P2", product2.getPinGroup().get(1).getName()); assertEquals("P3", product2.getPinGroup().get(2).getName()); assertEquals("G1", product2.getGcpGroup().get(0).getName()); assertEquals("G2", product2.getGcpGroup().get(1).getName()); assertEquals("G3", product2.getGcpGroup().get(2).getName());
@Test public void testCopyPlacemarkGroups() throws IOException { final PlacemarkDescriptor pinDescriptor = PinDescriptor.getInstance(); final Placemark pin = Placemark.createPointPlacemark(pinDescriptor, "P1", "", "", new PixelPos(1.5f, 1.5f), null, sourceProduct.getGeoCoding()); final Placemark gcp = Placemark.createPointPlacemark(pinDescriptor, "G1", "", "", new PixelPos(2.5f, 2.5f), null, sourceProduct.getGeoCoding()); sourceProduct.getPinGroup().add(pin); sourceProduct.getGcpGroup().add(gcp); parameterMap.put("crs", WGS84_CODE); Product targetProduct = createReprojectedProduct(); assertEquals(1, targetProduct.getPinGroup().getNodeCount()); assertEquals(1, targetProduct.getGcpGroup().getNodeCount()); final Placemark pin2 = targetProduct.getPinGroup().get(0); final Placemark gcp2 = targetProduct.getGcpGroup().get(0); assertEquals("P1", pin2.getName()); assertEquals("G1", gcp2.getName()); assertEquals(pin.getGeoPos(), pin2.getGeoPos()); assertEquals(gcp.getGeoPos(), gcp2.getGeoPos()); assertNotNull(pin2.getPixelPos()); assertNotNull(gcp2.getPixelPos()); } }
dialog.setName(placemark.getName()); dialog.setLabel(placemark.getLabel()); dialog.setDescription(placemark.getDescription() != null ? placemark.getDescription() : "");