Select to view content in your preferred language

Caluculate Centroid in WGS (DD) from Polygon Feature ((NAD_1983_UTM_Zone_15N)

1632
10
10-16-2023 06:23 AM
vijaybadugu
Frequent Contributor

I was wondering, Is there any tool/ script to calculate the centroid point in  WGS (Latitude and Longitude) of the each polygon which are in  NAD_1983_UTM_Zone_15N projection system ?

 

Suppose the point has below x,y and needs to convert in to Decimal degrees. 

X =1057502.154938

Y =11252250.240797

0 Kudos
10 Replies
JuanManuelCruzHerrera
Occasional Contributor

Claro porque yo no te di uno exactamente para el tuyo sino que tenemos nosotros para para sacarlo con las coordenadas en texto tú necesitas uno que haga el resultado en números y que no diga ni N ni W ni e ni S el tuyo debe ser más sencillo si tengo un rato y puedo te busco uno que te pueda ayudar y te lo comparto pero de todas formas debes añadir además  Centroid($feature) para que te devuelva el punto del polígono o por lo menos las coordenadas del centroide y así poder tener una capa de puntos.

var centroid = Centroid($feature);

https://developers.arcgis.com/arcade/function-reference/geometry_functions/#:~:text=Centroid

y luego es cuando hay que colocar la X e Y en WGS84 en grados decimales

luego puedes mirar esto que lo resuelve como lo deseas tú 

https://community.esri.com/t5/arcgis-online-questions/converting-geometry-feature-coordinates-in-a-p...

que te dará :

1 function MetersToLatLon(x, y) {

2  // Converts XY point from Spherical Mercator EPSG:900913 to lat/lon in WGS84 Datum

3  // Source: http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

4  var originShift = 2.0 * PI * 6378137.0 / 2.0;

5 var lon = (x / originShift) * 180.0;

6 var lat = (y / originShift) * 180.0;

7 lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);

8 return [lat, lon];

9 }

10

11 // use functions to get the desired output

12 var latlon = MetersToLatLon(Geometry($feature).X, Geometry($feature).Y);

13 return Round(latlon[0],6) + TextFormatting.NewLine + Round(latlon[1], 6);

 

recuerda en EPSG: cambiarlo por 26915 que es el tuyo 

https://epsg.io/26915

espero que esto te sirva saludos

0 Kudos