2

I am new to ArcObjects and I have been creating an application which will (among other things) be reading data in from a sister program and plotting it on the map.I have found out that I can enter the coordinates as both decimal long/lat, or by using a pair of numbers close to a billion. Both of these methods will draw a point somewhere on the map. My question is: why? How is it possible that this works, and which one is correct?

3

You should check out the Esri white paper, Understanding Coordinate Management in the Geodatabase.

Summary for your questions: A geometry (feature) has a spatial reference. A spatial reference includes the coordinate reference system like WGS84 or ETRS89 UTM zone 33 North plus some storage and processing parameters. These other parameters include xy / z / measure tolerance values (used when processing or comparing data), xy / z / measure resolution (how close two vertices can be before they're considered equivalent), and xy / z / measure domain (aka extent). The resolution and extents are related through the maximum integer range supported (2e53 - 1) so that if you have a reasonable resolution value, and maximum xy / z / m domain values will be huge.

You should also look at the topics in Working with spatial references of the ArcObjects SDK help especially:

  • Constructing a high- or low-precision spatial reference
  • Using the SpatialReferenceEnvironment
  • Understanding projectio horizons
  • I took some time to read those references, and I understand that ArcGIS will translate between coordinate systems, but I still don't get how it knows which one I am using. Is it just guessing based on the range of my input? – dykeag Jun 27 '13 at 13:16
  • 1
    That's a separate issue! The data has to have a spatial reference associated with it. The spatial reference (and its coordinate system) will dictate what range of values can be accepted, but the way it's set up you can easily put in valid values that make no sense in the coordinate system itself. Like entering a 0,0 for a UTM zone. It's allowed, but it's outside the usual area of use. – mkennedy Jun 27 '13 at 18:08
  • Ah, I see! Thanks! To confirm: I need to manually specify my spatial reference for each layer (not each point), and every point on that layer will use that spatial reference. – dykeag Jun 27 '13 at 19:52
  • Yep, that's right. – mkennedy Jun 27 '13 at 21:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.