|
POST
|
Hi Konstantin, This has been fixed and will be included in an upcoming patch. Thank you for reporting it. Annette
... View more
10-11-2022
08:18 AM
|
1
|
2
|
1315
|
|
POST
|
Hi Kris, The domain extent is different than the valid area of a coordinate system. The domain extent is an arbitrary square used to delimit valid coordinates for a spatial reference system and determine their resolution. It is possible that the domain extent is larger than the usable area of a coordinate system (a UTM zone, for example). I suspect that what you are looking for is the horizon. We plan to add a method to get the horizon in a near-term release. In the meantime, you can take a look at https://community.esri.com/message/935357-re-how-to-get-the-spatialreference-horizon-polygon for a possible workaround. I hope that helps. Thanks, Annette
... View more
06-24-2020
11:08 AM
|
0
|
0
|
1476
|
|
POST
|
Alan, It might just be a copy/paste issue, but your formula for the circumference has a typo. 3 * (+b) should be 3 * (a + b). Another issue is that the (0, 0) may not be in the horizon of the projected coordinate system, so you can't use it as the center point if you are creating the geodesic ellipse in the projected coordinate system. However, you might be able use (0, 0) as the center point if you create the geodesic ellipse in the geographic coordinate system and then project it to the projected coordinate system. I tested this for a few of the spatial references that were failing, and it seems okay. double a = sr.Datum.SpheroidSemiMajorAxis;
double b = sr.Datum.SpheroidSemiMinorAxis;
double circumference = Math.PI * (3 * (a + b) - Math.Sqrt((3 * a + b) * (a + 3 * b)));
GeodesicEllipseParameter param = new GeodesicEllipseParameter();
param.LinearUnit = sr.Unit as LinearUnit;
param.SemiAxis1Length = circumference / sr.Unit.ConversionFactor;
param.SemiAxis2Length = circumference / sr.Unit.ConversionFactor;
param.AxisDirection = 0;
param.Center = new Coordinate2D(0, 0);
param.VertexCount = 1000;
param.OutGeometryType = GeometryType.Polygon;
SpatialReference gcs = sr.Gcs;
Polygon gcsPoly = GeometryEngine.Instance.GeodesicEllipse(param, gcs) as Polygon;
Polygon pcsPoly = GeometryEngine.Instance.Project(gcsPoly, sr) as Polygon;
... View more
06-16-2020
01:13 PM
|
0
|
1
|
2600
|
|
POST
|
Alan, You are right. This won't work for the reason that you stated. We will add a method to get the horizon from the spatial reference in a near-term release. Thank you, Annette
... View more
06-12-2020
12:17 PM
|
1
|
0
|
2600
|
|
POST
|
Hi Alan, I will take a look and get back to you. Thanks, Annette
... View more
06-11-2020
03:36 PM
|
0
|
0
|
2600
|
|
POST
|
I forwarded your question to our 3D team. Here is their answer: It looks like they want to see where ‘view frustums’ from airborne imaging devices intersect the ground. We don’t have a ‘IntersectMultipatchWithSurface’ tool but we do have ‘Intersect3DLineWithSurface’. If the user models the 4 corners of a view frustum, or its center, as 3D polyline features, they can get back the points of intersection between the lines and the surface.
... View more
04-24-2020
02:29 PM
|
0
|
6
|
2075
|
|
POST
|
The easiest way is to check the well-known id. if (sr.Wkid == SpatialReferences.WGS84.Wkid) IsWGS84 = true; or you could use the hard-coded wkid = 4326. if (sr.Wkid == 4326) ... but occasionally these wkids are changed by EPSG so the first way is safer.
... View more
03-30-2020
01:38 PM
|
0
|
0
|
1450
|
|
POST
|
Hi, The documentation should say what the input and output units are. GeodesicArea always returns square meters. You don't need to project your data. ArGIS Pro 2.4 API Reference Guide - GeodesicArea GeodesicBuffer assumes the distance passed in is in meters. ArcGIS Pro 2.4 API Reference Guide - GeodesicBuffer If you need different units, use the LinearUnit class to convert them. For example, if you want to buffer in kilometers instead of meters, convert the distance from kilometers to meters and then pass that to the GeodesicBuffer method. LinearUnit kilometers = LinearUnit.Kilometers;
double meters = kilometers.ConvertTo(100, LinearUnit.Kilometers);
Geometry buffer = GeometryEngine.Instance.GeodesicBuffer(polygon, meters); That being said, we can add methods with a LinearUnit parameter in a future release. Thanks for the suggestion. Annette
... View more
01-30-2020
10:52 AM
|
0
|
1
|
1853
|
|
POST
|
If the geometries are disjoint, then an empty geometry will be returned. Can you share your data?
... View more
01-16-2020
11:59 AM
|
0
|
0
|
817
|
|
POST
|
Hi Sai, A spatial reference is not required for most of the GeometryEngine methods. For the Project and geodesic methods, you must have a spatial reference defined. The other methods use the tolerance of the spatial reference to determine if points that are close to each other should be considered equal. If you don't have a spatial reference defined, then a default tolerance is used. When you say that you tried GeometryEngine.Intersection with geometries that don't have a spatial reference, what do you mean that it yielded no results? Did it return an empty geometry, a null geometry, or throw an exception? It should work. Annette
... View more
01-08-2020
11:27 AM
|
0
|
0
|
817
|
|
POST
|
Hi, When you say it returns a GCS instead of a transformation, how are you trying to retrieve it? Annette
... View more
10-21-2019
10:21 AM
|
0
|
0
|
677
|
|
POST
|
Hi Fayu, We will add a setter for the Domain property in the next release. In the meantime, you can change the xy-scale which will change the domain. Here is an example: const long suLimit = 9007199254740990;
// Default domain for Web Mercator is xmin = -20037700,
// ymin = -30241100, xmax = 900699887774.099, ymax = 900689684374.099
// with xyScale = 10000
// To change the domain change the xyScale. This will keep the same false origin,
// but xmax and ymax will change.
// Make the xyScale smaller => xmax, ymax are bigger.
// xyScale bigger => xmax, ymax are smaller.
SpatialReferenceBuilder builder = new SpatialReferenceBuilder(SpatialReferences.WebMercator);
// Suppose I know what I want my domain to be, then I have to figure out the scale.
// xyScale = suLimit / (xmax - xmin)
// assuming that xmax - xmin = ymax - ymin i.e. domain is a square.
// If xmax - xmin != ymax - ymin, take the larger of the two.
// Expand the default domain
double xMin = -20037700;
double xMax = 9007179217040.99;
double yMin = -30241100;
double yMax = 9007169013640.99;
double xyScale = suLimit / Math.Max(xMax - xMin, yMax - yMin); // xyScale = 1000
builder.XYScale = xyScale;
Envelope domain = builder.Domain;
Console.Out.WriteLine($"xMin = {domain.XMin}");
Console.Out.WriteLine($"xMax = {domain.XMax}");
Console.Out.WriteLine($"yMin = {domain.YMin}");
Console.Out.WriteLine($"yMax = {domain.YMax}"); Let me know if you have any questions. Annette
... View more
07-17-2019
01:56 PM
|
0
|
0
|
554
|
|
POST
|
Hi Mike, For the 2.4 release, we only have get methods to access texture material. Set methods will be added in a future release. As you may know, you can set texture material to a multipatch using the ArcGIS Pro application. Thank you for your interest, Annette
... View more
05-17-2019
10:25 AM
|
0
|
0
|
1103
|
|
POST
|
Hi Michael, The equivalent does not exist in the ArcGIS Pro SDK at this time. We will add it in the 2.4 release. Thank you for the feedback. Annette
... View more
12-19-2018
10:19 AM
|
1
|
0
|
1103
|
|
POST
|
You can use GeometryEngine.DensifyByLength or GeometryEngine.DensifyByDeviation ArcGIS Pro 2.2 API Reference Guide - DensifyByLength ArcGIS Pro 2.2 API Reference Guide - DensifyByDeviation
... View more
11-26-2018
02:52 PM
|
1
|
2
|
1210
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 10-30-2025 01:40 PM | |
| 1 | 02-21-2025 11:20 AM | |
| 2 | 11-29-2022 02:02 PM | |
| 1 | 11-08-2022 09:14 AM | |
| 1 | 10-11-2022 08:18 AM |
| Online Status |
Offline
|
| Date Last Visited |
Thursday
|