Wednesday, 26 December 2018

coordinate system - Projecting single pointGeometry object with ArcPy?


In an attempt to create a python add-in for ArcMap that will pass x and y coordinates to another application via a mouse click on the map, I have written the following code. I need the output coordinates to be in WGS_1984 and therefore have to project a geometry object. The problem I'm running into is that whenever the script executes the projectAs() method I get the following error. Code at bottom


enter image description here



import arcpy
import pythonaddins
import webbrowser
import os, sys
from arcpy import env

arcpy.env.overwriteOutput = True

class ToolClass2(object):
"""Implementation for StreetView_addin.tool (Tool)"""

def __init__(self):
self.enabled = True
self.shape = "NONE" # Can set to "Line", "Circle" or "Rectangle" for interactive shape drawing and to activate the onLine/Polygon/Circle event sinks.

def onMouseDownMap(self, x, y, button, shift):
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
sr_df = df.spatialReference
xValue = x
yValue = y

pointList = [[xValue, yValue]]
point = arcpy.Point()
for pt in pointList:
point.X = pt[0]
point.Y = pt[1]

pointGeometry = arcpy.PointGeometry(point, sr_df)
pointGeometry.projectAs("WGS 1984")

centroid = str(pointGeometry.centroid)

centList = centroid.split(" ")
xValue2 = centList[0]
yValue2 = centList[1]

I have tried adding the optional transformation for the projectAs() method as well without success. What am I missing here?



Answer



@GeoJohn: I don't know if you've solved this, but the result of the pointGeometry.projectAs("WGS 1984") needs to be assigned to a result variable (e.g., projectedPointGeometry = pointGeometry.projectAs("WGS 1984")). The original pointGeometry is unchanged by the projectAs method. The result variable should have the location in decimal degrees. I need to do a similar thing, and was able to figure it out based on your code, so thank you for posting this question.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...