com.esri.core.geometry.Point.getX()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(168)

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

Point.getX介绍

[英]Returns the X coordinate of the point.
[中]返回点的X坐标。

代码示例

代码示例来源:origin: prestodb/presto

  1. private static boolean withinDistance(GreatCircleDistanceToPoint distanceFunction, double maxDistance, Point point)
  2. {
  3. return distanceFunction.distance(point.getY(), point.getX()) <= maxDistance;
  4. }

代码示例来源:origin: prestodb/presto

  1. private static Point getPolygonSansHolesCentroid(Polygon polygon)
  2. {
  3. int pointCount = polygon.getPointCount();
  4. double xSum = 0;
  5. double ySum = 0;
  6. double signedArea = 0;
  7. for (int i = 0; i < pointCount; i++) {
  8. Point current = polygon.getPoint(i);
  9. Point next = polygon.getPoint((i + 1) % polygon.getPointCount());
  10. double ladder = current.getX() * next.getY() - next.getX() * current.getY();
  11. xSum += (current.getX() + next.getX()) * ladder;
  12. ySum += (current.getY() + next.getY()) * ladder;
  13. signedArea += ladder / 2;
  14. }
  15. return new Point(xSum / (signedArea * 6), ySum / (signedArea * 6));
  16. }

代码示例来源:origin: prestodb/presto

  1. private static Point computeLineCentroid(Polyline polyline)
  2. {
  3. double xSum = 0;
  4. double ySum = 0;
  5. double weightSum = 0;
  6. for (int i = 0; i < polyline.getPathCount(); i++) {
  7. Point startPoint = polyline.getPoint(polyline.getPathStart(i));
  8. Point endPoint = polyline.getPoint(polyline.getPathEnd(i) - 1);
  9. double dx = endPoint.getX() - startPoint.getX();
  10. double dy = endPoint.getY() - startPoint.getY();
  11. double length = sqrt(dx * dx + dy * dy);
  12. weightSum += length;
  13. xSum += (startPoint.getX() + endPoint.getX()) * length / 2;
  14. ySum += (startPoint.getY() + endPoint.getY()) * length / 2;
  15. }
  16. return new Point(xSum / weightSum, ySum / weightSum);
  17. }

代码示例来源:origin: prestodb/presto

  1. private static Envelope tileToEnvelope(BingTile tile)
  2. {
  3. Point upperLeftCorner = tileXYToLatitudeLongitude(tile.getX(), tile.getY(), tile.getZoomLevel());
  4. Point lowerRightCorner = tileXYToLatitudeLongitude(tile.getX() + 1, tile.getY() + 1, tile.getZoomLevel());
  5. return new Envelope(upperLeftCorner.getX(), lowerRightCorner.getY(), lowerRightCorner.getX(), upperLeftCorner.getY());
  6. }

代码示例来源:origin: prestodb/presto

  1. private static Point computePointsCentroid(MultiVertexGeometry multiVertex)
  2. {
  3. double xSum = 0;
  4. double ySum = 0;
  5. for (int i = 0; i < multiVertex.getPointCount(); i++) {
  6. Point point = multiVertex.getPoint(i);
  7. xSum += point.getX();
  8. ySum += point.getY();
  9. }
  10. return new Point(xSum / multiVertex.getPointCount(), ySum / multiVertex.getPointCount());
  11. }

代码示例来源:origin: prestodb/presto

  1. @SqlNullable
  2. @Description("Returns the great-circle distance in meters between two SphericalGeography points.")
  3. @ScalarFunction("ST_Distance")
  4. @SqlType(DOUBLE)
  5. public static Double stSphericalDistance(@SqlType(SPHERICAL_GEOGRAPHY_TYPE_NAME) Slice left, @SqlType(SPHERICAL_GEOGRAPHY_TYPE_NAME) Slice right)
  6. {
  7. OGCGeometry leftGeometry = deserialize(left);
  8. OGCGeometry rightGeometry = deserialize(right);
  9. if (leftGeometry.isEmpty() || rightGeometry.isEmpty()) {
  10. return null;
  11. }
  12. // TODO: support more SphericalGeography types.
  13. validateSphericalType("ST_Distance", leftGeometry, EnumSet.of(POINT));
  14. validateSphericalType("ST_Distance", rightGeometry, EnumSet.of(POINT));
  15. Point leftPoint = (Point) leftGeometry.getEsriGeometry();
  16. Point rightPoint = (Point) rightGeometry.getEsriGeometry();
  17. // greatCircleDistance returns distance in KM.
  18. return greatCircleDistance(leftPoint.getY(), leftPoint.getX(), rightPoint.getY(), rightPoint.getX()) * 1000;
  19. }

代码示例来源:origin: prestodb/presto

  1. Point point1 = multiVertexGeometry.getPoint(result.m_vertexIndex1);
  2. Point point2 = multiVertexGeometry.getPoint(result.m_vertexIndex2);
  3. return utf8Slice(format("%s at or near (%s %s) and (%s %s)", reasonText, point1.getX(), point1.getY(), point2.getX(), point2.getY()));
  4. return utf8Slice(format("%s at or near (%s %s)", reasonText, point.getX(), point.getY()));

代码示例来源:origin: prestodb/presto

  1. private static Point computeMultiPolygonCentroid(OGCMultiPolygon multiPolygon)
  2. {
  3. double xSum = 0;
  4. double ySum = 0;
  5. double weightSum = 0;
  6. for (int i = 0; i < multiPolygon.numGeometries(); i++) {
  7. Point centroid = computePolygonCentroid((Polygon) multiPolygon.geometryN(i).getEsriGeometry());
  8. Polygon polygon = (Polygon) multiPolygon.geometryN(i).getEsriGeometry();
  9. double weight = polygon.calculateArea2D();
  10. weightSum += weight;
  11. xSum += centroid.getX() * weight;
  12. ySum += centroid.getY() * weight;
  13. }
  14. return new Point(xSum / weightSum, ySum / weightSum);
  15. }

代码示例来源:origin: prestodb/presto

  1. private static Point computePolygonCentroid(Polygon polygon)
  2. {
  3. int pathCount = polygon.getPathCount();
  4. if (pathCount == 1) {
  5. return getPolygonSansHolesCentroid(polygon);
  6. }
  7. double xSum = 0;
  8. double ySum = 0;
  9. double areaSum = 0;
  10. for (int i = 0; i < pathCount; i++) {
  11. int startIndex = polygon.getPathStart(i);
  12. int endIndex = polygon.getPathEnd(i);
  13. Polygon sansHoles = getSubPolygon(polygon, startIndex, endIndex);
  14. Point centroid = getPolygonSansHolesCentroid(sansHoles);
  15. double area = sansHoles.calculateArea2D();
  16. xSum += centroid.getX() * area;
  17. ySum += centroid.getY() * area;
  18. areaSum += area;
  19. }
  20. return new Point(xSum / areaSum, ySum / areaSum);
  21. }

代码示例来源:origin: prestodb/presto

  1. private static BingTile getTileCoveringLowerRightCorner(Envelope envelope, int zoomLevel)
  2. {
  3. BingTile tile = latitudeLongitudeToTile(envelope.getYMin(), envelope.getXMax(), zoomLevel);
  4. // If the tile covering the lower right corner of the envelope overlaps the envelope only
  5. // at the border then return a tile shifted to the left and/or top
  6. int deltaX = 0;
  7. int deltaY = 0;
  8. Point upperLeftCorner = tileXYToLatitudeLongitude(tile.getX(), tile.getY(), tile.getZoomLevel());
  9. if (upperLeftCorner.getX() == envelope.getXMax()) {
  10. deltaX = -1;
  11. }
  12. if (upperLeftCorner.getY() == envelope.getYMin()) {
  13. deltaY = -1;
  14. }
  15. if (deltaX != 0 || deltaY != 0) {
  16. return BingTile.fromCoordinates(tile.getX() + deltaX, tile.getY() + deltaY, tile.getZoomLevel());
  17. }
  18. return tile;
  19. }

代码示例来源:origin: prestodb/presto

  1. private static void writePoint(DynamicSliceOutput output, OGCGeometry geometry)
  2. {
  3. Geometry esriGeometry = geometry.getEsriGeometry();
  4. verify(esriGeometry instanceof Point, "geometry is expected to be an instance of Point");
  5. Point point = (Point) esriGeometry;
  6. verify(!point.hasAttribute(VertexDescription.Semantics.Z) &&
  7. !point.hasAttribute(VertexDescription.Semantics.M) &&
  8. !point.hasAttribute(VertexDescription.Semantics.ID),
  9. "Only 2D points with no ID nor M attribute are supported");
  10. output.appendByte(GeometrySerializationType.POINT.code());
  11. if (!point.isEmpty()) {
  12. output.appendDouble(point.getX());
  13. output.appendDouble(point.getY());
  14. }
  15. else {
  16. output.appendDouble(NaN);
  17. output.appendDouble(NaN);
  18. }
  19. }

代码示例来源:origin: apache/drill

  1. for (int i = 0; i < vertexGeom.getPointCount(); i++) {
  2. com.esri.core.geometry.Point point = vertexGeom.getPoint(i);
  3. result = transform.transform(new org.osgeo.proj4j.ProjCoordinate(point.getX(), point.getY()), result);
  4. point.setXY(result.x, result.y);
  5. vertexGeom.setPoint(i, point);

代码示例来源:origin: Esri/geometry-api-java

  1. public void centerAt(Point c) {
  2. double cx = (xmax - xmin) / 2d;
  3. double cy = (ymax - ymin) / 2d;
  4. xmin = c.getX() - cx;
  5. xmax = c.getX() + cx;
  6. ymin = c.getY() - cy;
  7. ymax = c.getY() + cy;
  8. }

代码示例来源:origin: bmwcarit/barefoot

  1. @Override
  2. public double intercept(Point a, Point b, Point c) {
  3. if (a.getX() == b.getX() && a.getY() == b.getY()) {
  4. return 0;
  5. }
  6. Intercept inter = new Intercept(Geodesic.WGS84);
  7. GeodesicData ci =
  8. inter.intercept(a.getY(), a.getX(), b.getY(), b.getX(), c.getY(), c.getX());
  9. GeodesicData ai = Geodesic.WGS84.Inverse(a.getY(), a.getX(), ci.lat2, ci.lon2);
  10. GeodesicData ab = Geodesic.WGS84.Inverse(a.getY(), a.getX(), b.getY(), b.getX());
  11. return (Math.abs(ai.azi1 - ab.azi1) < 1) ? ai.s12 / ab.s12 : (-1) * ai.s12 / ab.s12;
  12. }

代码示例来源:origin: Esri/geometry-api-java

  1. static double geodesicDistanceOnWGS84Impl(Point ptFrom, Point ptTo) {
  2. double a = 6378137.0; // radius of spheroid for WGS_1984
  3. double e2 = 0.0066943799901413165; // ellipticity for WGS_1984
  4. double rpu = Math.PI / 180.0;
  5. PeDouble answer = new PeDouble();
  6. GeoDist.geodesic_distance_ngs(a, e2, ptFrom.getX() * rpu,
  7. ptFrom.getY() * rpu, ptTo.getX() * rpu, ptTo.getY()
  8. * rpu, answer, null, null);
  9. return answer.val;
  10. }

代码示例来源:origin: Esri/geometry-api-java

  1. static boolean non_empty_points_need_to_cluster(double tolerance, Point pt1, Point pt2)
  2. {
  3. double tolerance_for_clustering = InternalUtils.adjust_tolerance_for_TE_clustering(tolerance);
  4. return Clusterer.isClusterCandidate_(pt1.getX(), pt1.getY(), pt2.getX(), pt2.getY(), MathUtils.sqr(tolerance_for_clustering));
  5. }

代码示例来源:origin: bmwcarit/barefoot

  1. @Override
  2. public Envelope2D envelope(Point c, double radius) {
  3. Envelope2D env = new Envelope2D();
  4. double ymax = Geodesic.WGS84.Direct(c.getY(), c.getX(), 0, radius).lat2;
  5. double ymin = Geodesic.WGS84.Direct(c.getY(), c.getX(), -180, radius).lat2;
  6. double xmax = Geodesic.WGS84.Direct(c.getY(), c.getX(), 90, radius).lon2;
  7. double xmin = Geodesic.WGS84.Direct(c.getY(), c.getX(), -90, radius).lon2;
  8. env.setCoords(xmin, ymin, xmax, ymax);
  9. return env;
  10. }
  11. }

代码示例来源:origin: com.esri.geometry/esri-geometry-api

  1. static boolean non_empty_points_need_to_cluster(double tolerance, Point pt1, Point pt2)
  2. {
  3. double tolerance_for_clustering = InternalUtils.adjust_tolerance_for_TE_clustering(tolerance);
  4. return Clusterer.isClusterCandidate_(pt1.getX(), pt1.getY(), pt2.getX(), pt2.getY(), MathUtils.sqr(tolerance_for_clustering));
  5. }

代码示例来源:origin: com.esri.geometry/esri-geometry-api

  1. /**
  2. * Checks if this envelope contains (covers) the specified point.
  3. *
  4. * @param p
  5. * The Point to be tested for coverage.
  6. * @return TRUE if this envelope contains (covers) the specified point.
  7. */
  8. public boolean contains(Point p) {
  9. if (p.isEmpty())
  10. return false;
  11. return m_envelope.contains(p.getX(), p.getY());
  12. }

代码示例来源:origin: bmwcarit/barefoot

  1. @Override
  2. public Point interpolate(Point a, Point b, double f) {
  3. GeodesicData inv = Geodesic.WGS84.Inverse(a.getY(), a.getX(), b.getY(), b.getX());
  4. GeodesicData pos = Geodesic.WGS84.Line(inv.lat1, inv.lon1, inv.azi1).Position(inv.s12 * f);
  5. return new Point(pos.lon2, pos.lat2);
  6. }

相关文章