MassGIS / morisoliver

Automatically exported from code.google.com/p/morisoliver
2 stars 2 forks source link

Add a buffer tool that can be an abutters list generator #191

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Add a buffer tool that can be an abutters list generator

Original issue reported on code.google.com by Aleda.Fr...@state.ma.us on 26 Dec 2012 at 9:06

GoogleCodeExporter commented 9 years ago
Add a specific layer buffer tool that selects features in one layer, buffers 
them, and then can be used to select features in another layer (through 
configuration this can be used as an abutter’s list tool)

MassGIS would like to provide a tool to generate an abutters notification list. 
 However, to also be able to provide a more generic buffer/select tool for 
other applications MassGIS would like to design the tool to be configurable.   
The following describes the workflow and requirements. 

- This tool would be an additional tool on the toolbar to the right of the 
Filter Builder tool (if shown).  

- The icon should be a “buffer” type of picture.  (A shape within a shape, 
with the outlines being different colors perhaps.)

- The tool should be configurable to be active on two specific datalayers.  
(Configurable by MassGIS in a config file, the user does not get to choose the 
two datalayers).  Note that the datalayers may be either SDE or shapefile 
datalayers. 

(“select datalayer”) - datalayer that the user will select features in.  
Those features will be unioned if necessary and buffered to form a select shape

(“buffer result datalayer”) - datalayer that the select shape is applied 
against to select features

Those two datalayers could be the same in the case of selecting a parcel and 
wanting to select other parcels within 300 feet.   Or they could be different 
in the case of selecting a road segment and wanting to select parcels within 50 
feet of the road segement. 

- Similar to the Filter Builder tool once the user choses the tool the the 
“select datalayer” and (“buffer result datalayer”) should be added to 
the map if they are not already there.

- Ask the user the type of unit - provide drop down with the standard list from 
the measure tool - miles, feet, meters, etc

- Ask the user the amount of unit - provide a box that only accepts numerals.  

- Just like the Identify tool the user should be able to draw a box to select 
features in the “select datalayer”.

- If the “select datalayer” is “out of scale” which would be indicated 
by the yellow exclamation point the user should be told the same message as the 
filter tool “not visible at scale”.  (same identify code)

- If the “select datalayer” is “in scale” highlight the features in 
orange as the identify tool already does

- If more than one feature (parcel) is selected let the user know if it is more 
than X where X is a number configurable by MassGIS.  Grey out a “Select” 
button which would do the union (if necessary and selection of features in the 
“buffer result datalayer”).

- Apply a filter query for the “select datalayer” (see below for more info) 
so that unacceptable features are dropped before Union

- If more than one feature (parcel) is selected union the features using a 
union operation (possibly in-browser, possibly using the GeoServer WPS server 
at https://wiki.state.ma.us/confluence/display/massgis/GeoServer+-+WPS+-+Union)

- Buffer the selected feature (or geometry results of the unioned features) 
using a buffer opreation (possibly in-browser, possibly using the GeoServer WPS 
Buffer request 
https://wiki.state.ma.us/confluence/display/massgis/GeoServer+-+WPS+-+Buffer+-+P
olygon+-+Quadrant+Segments)

- Display the buffered shape symbolized by a thin red outline with light red 
shading (same as the select box that shows during a regular Identify)

- Submit a WFS query to calculate how many features would return. If > 500 
features would return inform the user that there are > 500 features selected 
which is too many to continue with the buffered selection process.

- If < 500 features would return, submit a WFS request using that buffered 
geometry to select features in the “buffer result datalayer”, only 
requesting the attributes in the configurable attribute list.  

- Filter features in the output set based on the filter query for the “buffer 
result datalayer”

- If the  “buffer result datalayer” is the same datalayer as the “select 
datalayer”, drop the original selected feature from the “select 
datalayer”.  (An abutter’s list of parcels within a distance from parcel A 
does not need to contain parcel A). 

Things that should be configurable in a toolConfig_buffer.js or other config 
files:

- whether the tool is visible (show/hide)

- datalayer (“select datalayer”) - datalayer that the user will select 
features in.  Those features will be unioned if necessary and buffered to form 
a select shape

- datalayer (“buffer result datalayer”) - datalayer that the select shape 
is applied against to select features
Those two datalayers could be the same in the case of selecting a parcel and 
wanting to select other parcels within 300 feet.   Or they could be different 
in the case of selecting a road segment and wanting to select parcels within 50 
feet of the road segement. 

- max features allowed to be selected in the “select datalayer”  
(We do not want to let the user select unlimited features in the select 
datalayer.)

- filter query for the “select datalayer” 
In the case of parcels we don’t want the user to be be able to select and 
then buffer on parcels that are POLY_FEE=”ROW”.  (We want the user to 
select parcels that are POLY_FEE <> “ROW”.)  The datalayer will necessarily 
contain some of these types and the datalayer will not be symbolized to show 
the types so it will be difficult for the user to customize their selection by 
being instructed to unselect.  We would prefer to do this programmatically.  
MassGIS     will explain in documentation what is happening but does not want to 
force the user to customize their selection.  If the user has any 
POLY_FEE=”ROW” in   their set of parcels to buffer, drop them out before 
doing the union.  If the only parcel the user select is POLY_FEE=”ROW” 
inform them that their selection “does not meet the criteria”. 

MassGIS is using a spatial view called GISDATA.L3_TAXPAR_POLY_ASSESS which 
drops out the majority of the water, road and rail features but some are still 
included.  

Original comment by Aleda.Fr...@state.ma.us on 22 Apr 2013 at 1:04

GoogleCodeExporter commented 9 years ago
This corresponds to Task Order 5 enhancement 4

Original comment by Aleda.Fr...@state.ma.us on 22 Apr 2013 at 1:04

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
With r460 I have made a 1st cut at this.  I know you'll have comments and 
feedback for me.  You are welcome to poke around on your own or ping me for a 
screen share test drive.  I am doing all the unioning and filtering client-side.

Original comment by cpl...@gmail.com on 1 May 2013 at 4:27

GoogleCodeExporter commented 9 years ago
Aleda, I don't think you copied over a new subdir that is necessary for this to 
work.

js/jsts/

Original comment by cpl...@gmail.com on 10 May 2013 at 8:47

GoogleCodeExporter commented 9 years ago
You're right, I had it at the wrong level.... 

Original comment by Aleda.Fr...@state.ma.us on 10 May 2013 at 8:48

GoogleCodeExporter commented 9 years ago
Keeping it for now on how you set it up with school districts and schools. 
I see the 500 limit, that works (it won't let me get > 500 schools as a result).
However, after I hit that then I can't seem to get the tool to work again.
Here's how:
1) open http://maps.massgis.state.ma.us/map_ol_to5/oliver.php
2) click the tool (2 layers are added)
3) choose 300 and miles
4) click somewhere in the middle of the state
5) get message "This data layer has over 500 features..." 
6) click OK
7) close the identify results window 
8) change 300 to 3
9) click somewhere in the middle of the state 
10) get message "This data layer has zero features..."

Shouldn't it redo it OK? Because if I don't hit the 500 I can do one distance 
after another in this manner and it recalculates fine.

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 5:57

GoogleCodeExporter commented 9 years ago
Aleda, I promise I followed those instructions 100%.  But I am getting the 
desired results, not the zero features business.

Original comment by cpl...@gmail.com on 13 May 2013 at 6:11

GoogleCodeExporter commented 9 years ago
I'm using FF 20.0.1 BTW.
Maybe I didn't write down everything correctly.  I did it 2 or 3 times though 
with the same result. Want to watch me do it through joinme? 

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 6:14

GoogleCodeExporter commented 9 years ago
When the select data layer and the buffer result data layer are the same layer 
the results should exclude the features in the select data layer used to 
buffer.  Maybe you haven't implemented that part yet?  I set the result data 
layer to also be Elementary School Districts, choose 1 mile and clicked in 
Truro.  I correctly get the neighboring districts selected but I also get 
Truro.  The task order says "If the  “buffer result datalayer” is the same 
datalayer as the “select datalayer”, drop the original selected feature 
from the “select datalayer”.  (An abutter’s list of parcels within a 
distance from parcel A does not need to contain parcel A"  

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 6:28

GoogleCodeExporter commented 9 years ago
It should actually read _original selected features_ plural in case I select 
more than one...

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 6:29

GoogleCodeExporter commented 9 years ago
Right, not implemented yet.  If you shoot me a joinme link, I'll watch you 
reproduce your comment 7.

Original comment by cpl...@gmail.com on 13 May 2013 at 6:32

GoogleCodeExporter commented 9 years ago
Aleda, would you mind testing r467?  And also include an out-of-scale layer 
just to be safe since it should trip the same wire as the > 500 features.

Original comment by cpl...@gmail.com on 13 May 2013 at 7:35

GoogleCodeExporter commented 9 years ago
A small thing... when I click on the Buffer Identify tool it adds the 2 layers 
(select data layer and buffer result data layer).  This is great.  However, if 
I eventually delete either layer from my Active Data Layers in a session and I 
click the Buffer Identify tool again it doesn't add them back.

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 7:35

GoogleCodeExporter commented 9 years ago
r467 seems to fix the issue of "zero features" after > 500 features attempt. I 
also tried with an out-of-scale layer as the select data layer or an 
out-of-scale layer a the buffer result data layer and those got the appropriate 
error messages still as well. 

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 7:43

GoogleCodeExporter commented 9 years ago
How would I make a more complicated filter for the select data layer? (or is 
that not implemented yet?).  Excluding Weston works fine.  

        toolSettings.identifyBuffer.selectDataLayerFilter     = function(attrs) {
          return attrs['DISTNAME'] != 'Weston';
        };

But how could I exclude Weston and Wayland? I've tried various options with no 
luck:

          return attrs['DISTNAME'] != 'Weston' or 'Wayland';

          return attrs['DISTNAME'] != 'Weston' || 'Wayland';

          return attrs['DISTNAME'] != 'Weston';
          return attrs['DISTNAME'] != 'Wayland';

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:04

GoogleCodeExporter commented 9 years ago
Tried 

        toolSettings.identifyBuffer.bufferResultDataLayerFilter     = function(attrs) {
          return attrs['TOWN'] != 'BEDFORD';
        };

to filter school buildings result but it doesn't work yet, I'm probably getting 
ahead... 

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:08

GoogleCodeExporter commented 9 years ago
How to exclude Weston and Wayland?

return attrs['DISTNAME'] != 'Weston' &&  attrs['DISTNAME'] != 'Wayland';

Original comment by cpl...@gmail.com on 13 May 2013 at 8:33

GoogleCodeExporter commented 9 years ago
One quirk - after I use the Buffer Identify the regular draw a box identify 
tries to buffer as well (the draw a polygon identify behaves like normal though 
and so does the right-click simple identify).

For example.
Open http://maps.massgis.state.ma.us/map_ol_to5/oliver.php
Add a vector layer and do a regular box identify - it works fine.
Click the Buffer Identify tool and do a 1 mile buffer for example of schools by 
district - works fine
Now go back to trying to use the regular box identify - it does step 1 
(counting features OK) but then when you pick one of the vector layers (any one 
I think) it does a buffer ...

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:34

GoogleCodeExporter commented 9 years ago
r468 for filtering out the original geom

Original comment by cpl...@gmail.com on 13 May 2013 at 8:35

GoogleCodeExporter commented 9 years ago
Yes! #18 works great

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:35

GoogleCodeExporter commented 9 years ago
#18 even mixing 2 attributes works 
return attrs['DISTNAME'] != 'Weston' &&  attrs['ENDGRADE'] != '12';

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:39

GoogleCodeExporter commented 9 years ago
r469 to address 14

Original comment by cpl...@gmail.com on 13 May 2013 at 8:43

GoogleCodeExporter commented 9 years ago
#19 should also be fixed . . . twas a bug I introduced :(

Original comment by cpl...@gmail.com on 13 May 2013 at 8:44

GoogleCodeExporter commented 9 years ago
r468 works - filtering out the original geom (when select data layer and buffer 
result data layer are the same)

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:47

GoogleCodeExporter commented 9 years ago
#14 fixed - 2 layers added whenever button is clicked if either is missing

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:47

GoogleCodeExporter commented 9 years ago
#19 seems fixed now (busted regular identify after buffer identify used)

Original comment by Aleda.Fr...@state.ma.us on 13 May 2013 at 8:49

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
See comments for r470 for improvements.  Especially the changes to 
toolConfig_oliver.js.

Original comment by cpl...@gmail.com on 14 May 2013 at 7:46

GoogleCodeExporter commented 9 years ago
A save as Excel or CSV WFS request fails at the Gateway when it validates 
against the XSD.

Here's what a normal request looks like in regular OLIVER to download 3 school 
district features:

<wfs:GetFeature outputFormat="excel2007" xmlns:wfs="http://www.opengis.net/wfs" 
service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="massgis:GISDATA.SCHOOLDISTELEM_POLY" srsName="EPSG:26986" 
xmlns:massgis="http://massgis.state.ma.us/featuretype">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.239"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.101"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.267"></ogc:FeatureId>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

Here's what the request looks like after the BufferIdentify:

<wfs:GetFeature outputFormat="excel2007" xmlns:wfs="http://www.opengis.net/wfs" 
service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="massgis:GISDATA.SCHOOLDISTELEM_POLY" srsName="EPSG:26986" 
xmlns:massgis="http://massgis.state.ma.us/featuretype">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:FeatureId></ogc:FeatureId>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

and I get this message from the Gateway:

<gis-service xmlns:date="http://exslt.org/dates-and-times"><error>***86235122 
http://170.63.98.116:8083/geoserver/wfs: cvc-complex-type 4: required attribute 
fid is missing in element {http://www.opengis.net/ogc}FeatureId of type 
{http://www.opengis.net/ogc}FeatureIdType***</error></gis-service>

Original comment by Aleda.Fr...@state.ma.us on 14 May 2013 at 8:39

GoogleCodeExporter commented 9 years ago
I can see the effect changing quadrant segments has.
I can see the filter for buffer result datalayer working.
I can see the subset of fields for buffer result datalayer working.
I wonder if to fix #30 I need to add in another field?  I tried adding in 
"SHAPE" but that did not help. 

Original comment by Aleda.Fr...@state.ma.us on 14 May 2013 at 8:40

GoogleCodeExporter commented 9 years ago
#30 was a bit hairy.  Please see if r471 does the trick.

Original comment by cpl...@gmail.com on 15 May 2013 at 12:39

GoogleCodeExporter commented 9 years ago
Getting there!  The download to .xls, .xlsx and .csv works now, but the 
download should respect the same column/field subset that the identify table 
does.  In our real life example, Mr. Assessor needs to make a mailing list for 
abutters of parcel X.  He just wants the name and mailing address in his 
spreadsheet of the parcels.

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 1:29

GoogleCodeExporter commented 9 years ago
Hmm.  I'll poke around to see if GeoServer has an easy answer for this one.  As 
it is now, I simply pass along the WFS query and specify the output format.

If GeoServer doesn't have an easy answer, I don't see this listed in the spec, 
and we might need to bubble it to its own issue.

<wfs:GetFeature outputFormat="excel2007" xmlns:wfs="http://www.opengis.net/wfs" 
service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="massgis:GISDATA.SCHOOLDISTELEM_POLY" srsName="EPSG:900913" 
xmlns:massgis="http://massgis.state.ma.us/featuretype">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.263"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.224"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.256"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.271"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.109"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.266"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.33"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.107"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.253"></ogc:FeatureId>
<ogc:FeatureId fid="GISDATA.SCHOOLDISTELEM_POLY.40"></ogc:FeatureId>
</ogc:Filter>
</wfs:Query>

Original comment by cpl...@gmail.com on 15 May 2013 at 1:38

GoogleCodeExporter commented 9 years ago
When you make a WFS request you should be able to specify which fields you 
want.  We should be able to figure out the syntax.  I need to use Firebug - 
when you make the table you should also be able to only ask for the fields you 
want - you're not getting everything and then throwing fields away are you? 

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 1:42

GoogleCodeExporter commented 9 years ago
https://wiki.state.ma.us/confluence/display/massgis/GeoServer+-+WFS+-+Get+Subset
+of+Attribute+Values+for+a+Feature

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 1:44

GoogleCodeExporter commented 9 years ago
Yeah, you're getting too big a response, I'd modify the request to only ask for 
the field subset.  So turn this request which is used to create the table:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" 
version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="massgis:GISDATA.SCHOOLDISTELEM_POLY" srsName="EPSG:900913">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:Intersects>
<ogc:PropertyName>SHAPE</ogc:PropertyName>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:900913">
<gml:exterior>
<gml:LinearRing>
<gml:posList>-7823479.48688253 5113566.399044915 -7823488.303015438 
5113398.17720784 -7823514.654822765 5113231.7984444145 -7823558.253588595 
5113069.085635188 -7823618.621635728 5112911.821495747 -7823695.097559203 
5112761.729044915 -7823786.843472803 5112620.452726991 -7823892.854189096 
5112489.540394877 -7824011.968232492 5112370.426351481 -7824142.880564606 
5112264.415635188 -7824284.15688253 5112172.6697215885 -7824434.249333362 
5112096.193798113 -7824591.513472803 5112035.8257509805 -7824754.226282029 
5111992.22698515 -7824920.605045455 5111965.875177823 -7825088.82688253 
5111957.059044915 -7825257.048719605 5111965.875177823 -7825423.427483031 
5111992.22698515 -7825586.140292257 5112035.8257509805 -7825743.404431698 
5112096.193798113 -7825893.49688253 5112172.6697215885 -7826034.773200454 
5112264.415635188 -7826165.685532568 5112370.426351481 -7826284.799575964 
5112489.540394877 -7826390.810292257 5112620.452726991 -7826482.556205857 
5112761.729044915 -7826559.032129332 5112911.821495747 -7826619.400176465 
5113069.085635188 -7826662.998942295 5113231.7984444145 -7826689.350749622 
5113398.17720784 -7826698.16688253 5113566.399044915 -7826689.350749622 
5113734.6208819905 -7826662.998942295 5113900.999645416 -7826619.400176465 
5114063.712454642 -7826559.032129332 5114220.976594083 -7826482.556205857 
5114371.069044915 -7826390.810292257 5114512.345362839 -7826284.799575964 
5114643.257694953 -7826165.685532568 5114762.371738349 -7826034.773200454 
5114868.382454642 -7825893.49688253 5114960.128368242 -7825743.404431698 
5115036.6042917175 -7825586.140292257 5115096.97233885 -7825423.427483031 
5115140.57110468 -7825257.048719605 5115166.922912007 -7825088.82688253 
5115175.739044915 -7824920.605045455 5115166.922912007 -7824754.226282029 
5115140.57110468 -7824591.513472803 5115096.97233885 -7824434.249333362 
5115036.6042917175 -7824284.15688253 5114960.128368242 -7824142.880564606 
5114868.382454642 -7824011.968232492 5114762.371738349 -7823892.854189096 
5114643.257694953 -7823786.843472803 5114512.345362839 -7823695.097559203 
5114371.069044915 -7823618.621635728 5114220.976594083 -7823558.253588595 
5114063.712454642 -7823514.654822765 5113900.999645416 -7823488.303015438 
5113734.6208819905 -7823479.48688253 5113566.399044915</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

into this:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" 
version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="massgis:GISDATA.SCHOOLDISTELEM_POLY" srsName="EPSG:900913">
<ogc:PropertyName>DISTRICTID</ogc:PropertyName>
<ogc:PropertyName>DISTNAME</ogc:PropertyName>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:Intersects>
<ogc:PropertyName>SHAPE</ogc:PropertyName>
<gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:900913">
<gml:exterior>
<gml:LinearRing>
<gml:posList>-7823479.48688253 5113566.399044915 -7823488.303015438 
5113398.17720784 -7823514.654822765 5113231.7984444145 -7823558.253588595 
5113069.085635188 -7823618.621635728 5112911.821495747 -7823695.097559203 
5112761.729044915 -7823786.843472803 5112620.452726991 -7823892.854189096 
5112489.540394877 -7824011.968232492 5112370.426351481 -7824142.880564606 
5112264.415635188 -7824284.15688253 5112172.6697215885 -7824434.249333362 
5112096.193798113 -7824591.513472803 5112035.8257509805 -7824754.226282029 
5111992.22698515 -7824920.605045455 5111965.875177823 -7825088.82688253 
5111957.059044915 -7825257.048719605 5111965.875177823 -7825423.427483031 
5111992.22698515 -7825586.140292257 5112035.8257509805 -7825743.404431698 
5112096.193798113 -7825893.49688253 5112172.6697215885 -7826034.773200454 
5112264.415635188 -7826165.685532568 5112370.426351481 -7826284.799575964 
5112489.540394877 -7826390.810292257 5112620.452726991 -7826482.556205857 
5112761.729044915 -7826559.032129332 5112911.821495747 -7826619.400176465 
5113069.085635188 -7826662.998942295 5113231.7984444145 -7826689.350749622 
5113398.17720784 -7826698.16688253 5113566.399044915 -7826689.350749622 
5113734.6208819905 -7826662.998942295 5113900.999645416 -7826619.400176465 
5114063.712454642 -7826559.032129332 5114220.976594083 -7826482.556205857 
5114371.069044915 -7826390.810292257 5114512.345362839 -7826284.799575964 
5114643.257694953 -7826165.685532568 5114762.371738349 -7826034.773200454 
5114868.382454642 -7825893.49688253 5114960.128368242 -7825743.404431698 
5115036.6042917175 -7825586.140292257 5115096.97233885 -7825423.427483031 
5115140.57110468 -7825257.048719605 5115166.922912007 -7825088.82688253 
5115175.739044915 -7824920.605045455 5115166.922912007 -7824754.226282029 
5115140.57110468 -7824591.513472803 5115096.97233885 -7824434.249333362 
5115036.6042917175 -7824284.15688253 5114960.128368242 -7824142.880564606 
5114868.382454642 -7824011.968232492 5114762.371738349 -7823892.854189096 
5114643.257694953 -7823786.843472803 5114512.345362839 -7823695.097559203 
5114371.069044915 -7823618.621635728 5114220.976594083 -7823558.253588595 
5114063.712454642 -7823514.654822765 5113900.999645416 -7823488.303015438 
5113734.6208819905 -7823479.48688253 5113566.399044915</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 1:47

GoogleCodeExporter commented 9 years ago
I'll see if I can apply the lines like
        <ogc:PropertyName>NAME</ogc:PropertyName>
        <ogc:PropertyName>ADDRESS</ogc:PropertyName>
to the export request.

I don't want to apply this anywhere else, though, since it could have some 
tricky side effects.

Original comment by cpl...@gmail.com on 15 May 2013 at 1:51

GoogleCodeExporter commented 9 years ago
OK, at the extract would be good.

Not sure why at the identify would be problematic, wouldn't you just get back 
fewer fields to put into the table? 

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 1:57

GoogleCodeExporter commented 9 years ago
Please try r472.  I don't think there is a way for the FID to not appear in the 
result.

To answer comment 39, by applying the column filter on the interface level, I 
get to stay away from GeoExt intricacies.  Keeping hands-off of GeoExt is 
generally a good idea.

Original comment by cpl...@gmail.com on 15 May 2013 at 2:07

GoogleCodeExporter commented 9 years ago
OK, that extract is good now.  I don't think there's any way to avoid getting 
FID in the response since we're filtering by it so they'll just have to ignore 
it.

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 2:13

GoogleCodeExporter commented 9 years ago
For the identify to make the table, just be aware you're just going to be 
getting a bigger response than you need to - The parcel layer has 45 attributes 
but I'm only going to be needing 4 or 5.  But maybe that's less of a negative 
than GeoExt.

At this point I think I should finish mocking up my abutters list example 
becket_abutters.php and show it to our assistant director Neil MacGaffey who 
drafted most of the spec and make sure this is what he needs... 

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 2:20

GoogleCodeExporter commented 9 years ago
For completeness I'm going through the case studies in Task Order 5 and now I'm 
concerned about the buffer distance calculation.  The attachment 
buffer_distance_300_feet_grand_view_dr_deerfield_arcmap.png shows what a 300 
foot buffer (from the outside of the lollipop street) looks like in ArcMap.  
The attachment buffer_distance_300_feet_grand_view_dr_deerfield_oliver.png 
shows OLIVER and it doesn't look the same, it looks smaller. Is OLIVER's 
distance being calculated somehow from a center line in the polygon or 
something? That would account for it. 

You can play with it here... I click the BufferIdentify tool, choose 300 feets 
then I select the snaky lollipop street shape. 

http://maps.massgis.state.ma.us/map_ol_to5/oliver.php?lyrs=Detailed%20Features~B
asemaps_MassGISBasemapWithLabels2~|Parcels%20Level%203%20SDE~massgis:GISDATA.L3_
TAXPAR_POLY_ASSESS~GISDATA.L3_TAXPAR_POLY_ASSESS::Default&bbox=-72.6502470390636
8,42.5055244125167,-72.64158350394753,42.509451320555165&coordUnit=m&measureUnit
=ft&base=MassGIS_Basemap¢er=-8086906.2962353,5237304.4287918&zoom=18&opacity=1,
1&baseO=1&filt=undefined|undefined

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 3:28

Attachments:

GoogleCodeExporter commented 9 years ago
I'm having trouble NOT specifying a filter for the select data layer.

I tried commenting out or deleting these lines:
        toolSettings.identifyBuffer.selectDataLayerFilter        = function(attrs) {
          return attrs['POLY_TYPE'] != 'ROW';
        };

Only to get TypeError: toolSettings.identifyBuffer.selectDataLayerFilter is not 
a function

tried commenting out the return line, but that didn't work either (I think it 
drops everything).  

How can I say for either select data layer or buffer result data layer that I 
don't want to filter? Can I see return attrs ALL somehow?  

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 3:50

GoogleCodeExporter commented 9 years ago
Try this:

        toolSettings.identifyBuffer.selectDataLayerFilter        = function(attrs) {
          return true;
        };

Original comment by cpl...@gmail.com on 15 May 2013 at 3:57

GoogleCodeExporter commented 9 years ago
#45 worked!  Cases 1-3 in task order 5 are good except for the buffer distance 
for poly... 

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 4:03

GoogleCodeExporter commented 9 years ago
I was freaking out in response to comment 43.  I thought the underlying JS lib 
I was using for the buffer was croaking.  It turns out it's a projection issue. 
 If you do the buffer in the custom basemap, it is exact.  Let me see how to 
fix it . . .

Original comment by cpl...@gmail.com on 15 May 2013 at 4:11

GoogleCodeExporter commented 9 years ago
Ah.. I should have thought of trying it there of course.

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 4:12

GoogleCodeExporter commented 9 years ago
Yes, in Custom projection the distance looks just the same as ArcMap.

Original comment by Aleda.Fr...@state.ma.us on 15 May 2013 at 4:19

GoogleCodeExporter commented 9 years ago
r473 please.  It may not be 100% exact, but see if it is OK.

Original comment by cpl...@gmail.com on 15 May 2013 at 5:10