I have a GIS Information Architecture question that has a few of us runing in circles in our shop of late.
How does one apply a projection transformation within an MXD? I have data from an SDE database in NAD83 but need
it transformed into WGS84 Web Mercator in the MXD so it can be published as Web Mercator to web services to
avoid the "projection o n the fly" performance penalty when said web services are consumed over the internet. I
have been approached with maintaining redundant copies of the data in SDE, in each projection synched with database
triggers but my team feels that this is an inefficient solution that may be quite brittle.
The examples I have found apply the transformation in a layer in an MXD but have found no layer "XY Coordinates" layer
projection property to apply the tranformation on. Only source which will transform the base SDE data, which is not what we want to do!
Our data is edited in NAD83 via Desktop but needs to be consumed over the web in Web Mercator (ideally in an
If I save off the layer into a .lry file, there is a projection transformation function but again it will override the source
data and not transform it in the layer only. Would this transformation be better done at the publish web service level? I
see lots of discussion on web service caching but not on these types of transformation doing in the web service itself
(Hopefully I am missing something here?)
I am sure this has been resolved elsewhere in large GIS shops, any thoughts?
As far as I know, the only way to avoid the on-the-fly projection penalty is to maintain a Web Merc copy of your data source either in SDE or file GDB. A client (such as an ArcGIS Online web map) accessing a dynamic map service requests data from your server, stored either in a file system or RDBMS. The coordinate system of the data frame in your published map document determines the coordinate system of the service, but that map still points to your data source.
A cached map service doesn't suffer from an on-the-fly projection performance hit, however, because the tiles are pre-rendered and shipped to the client as is. No reading of source data required.
The enterprise GIS shops I have worked for have either accepted with the performance pernalty or maintained a "web publishing" environment where publishers can author their map documents using data sources projected to Web Mercator.
Hope this helps. Good luck!
Use the same coordinate system for your data and map—When your source data and your map document have differing coordinate systems, your data has to be projected on the fly, thereby slowing performance. For optimal performance, use the same coordinate system for both your data and your map document. If this is not possible, make sure appropriate geographic transformations are applied to the layers that need to be projected on the fly.
Considering the last line of the aboe quote is appropriate for you:
You can open a new map, change the coordinate system of the data frame to Web Mercator. When adding a new layer of a different datum, it would ask for a geographic transformation with possible methods. You could use the best one of them. You could also change the coordinate system of the existing data frame and applying the appropriate geographic transformation.
You could refer the following document in the install directory of ArcGIS Desktop
<ArcGIS Install Directory>\Desktop10.3\Documentation\Geographic_Transformations.pdf