Select to view content in your preferred language

Public Notification tool - buffer size not accurate/way off!

4849
10
Jump to solution
05-15-2014 08:02 AM
South_JordanCity_of
Frequent Contributor
Hi all,
I set up the public notification tool and everything works properly.
However, I just noticed that the buffer created by the application (and thus the number of output addresses) is significantly smaller compared to the same operation used in ArcMap. For example, a 300ft buffer on a parcel yields 22 addresses, a buffer with the same distance in ArcMap (using the parcel boundary) yields 30 addresses.
Does the buffer in the application use the parcel centroid instead of the parcel boundary? If so, how and where do i change it to the parcel boundary, since the boundary setting is the required setting for us.

Cheers!

Marc Seliger
0 Kudos
1 Solution

Accepted Solutions
LuciHawkins
Frequent Contributor
In the locator.js file, I added code because my parcel map is in a different projection and it cleared up the buffer error.

//Fetch parameters to buffer 
function BufferParameters() { 
isSpanClicked = false; 
HideMapTip(); 
dojo.disconnect(mouseMoveHandle); 

var params = new esri.tasks.BufferParameters(); 
if (map.getLayer(queryGraphicLayer).graphics) { 
var polygon = new esri.geometry.Polygon(map.spatialReference); 
for (var i = 0; i < map.getLayer(queryGraphicLayer).graphics.length; i++) { 
polygon.addRing(map.getLayer(queryGraphicLayer).graphics.geometry.rings[0]); 


params.geometries = [polygon]; 

else { 
alert(messages.getElementsByTagName("createBuffer")[0].childNodes[0].nodeValue); 

params.distances = [dist.value]; 
params.unit = esri.tasks.GeometryService.UNIT_FOOT; 
   params.bufferSpatialReference = new esri.SpatialReference({
wkid: 2238
});
  
params.outSpatialReference = map.spatialReference; 
esri.config.defaults.io.alwaysUseProxy = true; 
geometryService.buffer(params, ShowBuffer, function (err) { HideLoadingMessage(); alert("Query " + err); }); //querying geometry service for buffered geometry 
esri.config.defaults.io.alwaysUseProxy = false; 
selectedPoint = null; 
displayInfo = null; 
map.infoWindow.hide(); 
if (findTasksGraphicClicked) { 
findTasksGraphicClicked = false; 
graphicLayerClicked = false; 

ShowLoadingMessage('Buffering'); 
}


The code in red is what I added.

Hope this helps,

Luci

View solution in original post

0 Kudos
10 Replies
MichaelVolz
Esteemed Contributor
SJ City:

Is this public notification tool available to be added to a Javascript/HTML5 app?  If so, do you know of any documentation that would describe this process.

Also, where on the ESRI website would I find this tool?
0 Kudos
South_JordanCity_of
Frequent Contributor
SJ City:

Is this public notification tool available to be added to a Javascript/HTML5 app?  If so, do you know of any documentation that would describe this process.

Also, where on the ESRI website would I find this tool?


Michael,
the tool I'm using is the Land Use Public Notification tool available under
http://solutions.arcgis.com/local-government/help/land-use-public-notification/

The page describes a step-by-step process on how to implement it and additional links for further help.
I had to do quite a few modifications to the python script behind the tool in order to filter out duplicates and certain addresses though.

Cheers!

Marc Seliger
0 Kudos
South_JordanCity_of
Frequent Contributor
So after looking at this issue more closely, the buffer generated by the Notification Application is consistently ~75 feet smaller than the same buffer created in ArcMap. In other words, a buffer of 300 foot around a parcel is actually a ~225 foot buffer when i try to duplicate the results in ArcMap.

Any idea why this is? Our parcel layer is not in WebMercator (unlike the basemaps from ESRI), would that have anything to do with it?
Any help would be greatly appreciated!!!

Thanks.

Marc
0 Kudos
South_JordanCity_of
Frequent Contributor
So I created a map in Webmercator projection, and ran a buffer on one of the parcels from the Public Notification sample. Turns out that the buffer from the sample is also off by about 72 feet. I went through the source code and couldn't find out why the buffer doesn't draw with 300 feet, but about 228 feet instead.
ESRI, are you aware of this, or am I doing something wrong here?
We would really like to implement this tool, but until this issue (or my problem) is resolved, I have hold off with it.

Any feedback would be greatly appreciated!

Thanks!

Marc
0 Kudos
LuciHawkins
Frequent Contributor
In the locator.js file, I added code because my parcel map is in a different projection and it cleared up the buffer error.

//Fetch parameters to buffer 
function BufferParameters() { 
isSpanClicked = false; 
HideMapTip(); 
dojo.disconnect(mouseMoveHandle); 

var params = new esri.tasks.BufferParameters(); 
if (map.getLayer(queryGraphicLayer).graphics) { 
var polygon = new esri.geometry.Polygon(map.spatialReference); 
for (var i = 0; i < map.getLayer(queryGraphicLayer).graphics.length; i++) { 
polygon.addRing(map.getLayer(queryGraphicLayer).graphics.geometry.rings[0]); 


params.geometries = [polygon]; 

else { 
alert(messages.getElementsByTagName("createBuffer")[0].childNodes[0].nodeValue); 

params.distances = [dist.value]; 
params.unit = esri.tasks.GeometryService.UNIT_FOOT; 
   params.bufferSpatialReference = new esri.SpatialReference({
wkid: 2238
});
  
params.outSpatialReference = map.spatialReference; 
esri.config.defaults.io.alwaysUseProxy = true; 
geometryService.buffer(params, ShowBuffer, function (err) { HideLoadingMessage(); alert("Query " + err); }); //querying geometry service for buffered geometry 
esri.config.defaults.io.alwaysUseProxy = false; 
selectedPoint = null; 
displayInfo = null; 
map.infoWindow.hide(); 
if (findTasksGraphicClicked) { 
findTasksGraphicClicked = false; 
graphicLayerClicked = false; 

ShowLoadingMessage('Buffering'); 
}


The code in red is what I added.

Hope this helps,

Luci
0 Kudos
MarkVarner
New Contributor

Hi @Luci Hawkins,

I think I am seeing this exact same error. I'm trying to figure out where to plug in your fix but I'm not seeing anything similar to your posted code in the locator.js file that I have. Also, your note says "The code in red is what I added" but there isn't any red that I can see. Maybe any styling got stripped out when it got sent to this site.

Thanks,

Mark

0 Kudos
LuciHawkins
Frequent Contributor

This was for version 10.2 of the Public Notification tool.  The line of code that was in red was:

params.bufferSpatialReference = new esri.SpatialReference({ 

wkid: 2238 

});

If you are using the same version, search for the BufferParameters function and add that line to the params.  Be sure and change the wkid: to the same one your map is using.

Hope it helps!

Luci 

0 Kudos
South_JordanCity_of
Frequent Contributor
In the locator.js file, I added code because my parcel map is in a different projection and it cleared up the buffer error. 



The code in red is what I added.

Hope this helps,

Luci


Luci,
you are my HERO!!! I figured it had something to do with the WKID's but I had no idea how to fix it.

Thanks you verrrrrrrrrrrrrrry much!!!

Marc
0 Kudos
LuciHawkins
Frequent Contributor
Hey Marc,

You are most welcome!

Luci
0 Kudos