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?
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