Incorrect buffers

Discussion created by dtjohnst on Mar 27, 2012
Latest reply on Apr 19, 2012 by ALocke-esristaff
Hello all,

I'm trying to write an application to create buffers, but I'm finding the results are not as desired. In particular, there attempts to be no compensation for the projection at northern latitudes (and possibly southern, I haven't tested them). I am using Google Maps as my base map. Essentially, if I draw a line between 2 location fairly far north, say Moosonee, Ontario to London, Ontario (a relatively N-S line), the buffered polygon appears, visually, to be the same width all the way along. Of course, this isn't correct as northern latitudes are much further apart, so the shape should be wider at the top. For example, I set a 150 nautical mile circle around both Moosonee and London using Google maps circle overlays. Ground-truthing these with the underlying geography, they appear to be 150 nautical miles. When I then buffer a line between them at 150NM using arcGIS services, the portion around Moosonee is closer to 95NM while the portion around London is closer to 110NM.

I assume this is an error with my buffering spatial reference, but I can't seem to find a solution. If I use 4326, a 150NM buffer covers the entire planet. If I use 102100, I get the problem above. Does anyone know how I can fix this issue?

At the moment I don't have a public-facing application, but I could probably fiddle one up if someone wanted to see the entire thing. The parameters I am using are as follows:

var params = {
  geometries: [geometry],
  bufferSpatialReference: 102100,
  distances: [150],
  unit: 9030,
  unionResults: false

Where geometry is simply a Google maps polyline between 51.287732,-80.625488 and 42.980791, -81.246983.