30
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

Embed Size (px)

Citation preview

Page 1: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

Dean Anderson Polk County, Oregon

GIS in Action 2014

Modifying Open Source Software (A Case Study)

Page 2: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose

• GeoMOOSE is a Web Client JavaScript Framework for displaying distributed cartographic data.

• The GeoMOOSE core is written using JavaScript and HTML. It is entirely possible to run GeoMOOSE with nothing more than a basic web server (Nginx, Apache, IIS). But besides the basic client core, GeoMOOSE also comes prepackaged with a number of built in services written in PHP.

Page 3: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose Components• GeoMoose.html – starts it all • Mapbook.xml – basic configuration for

GeoMoose • Services – PHP based “services” that provide

functionality • Extensions – JavaScript that provides added client

side capabilities • Maps/Templates – mapserver controls for how

maps and data are displayed

Page 4: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/Oregon – Print

The current version of GeoMoose provides a mechanism to print mailing labels for selected property features.

CSV or PDF

Page 5: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/Oregon – Print

Good •Easy to implement •Works Well •Easy to use Bad •Only one layer can print per application•Can only print as a “mailing label”

Page 6: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

What is needed•A simple way to print the contents of the “results tab” for ANY feature layer. •A simple way to implement the tool

Surv

eys

I want to print this stuff!

Page 7: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

How to make it happen….

1. JavaScript – to print contents of a “div”. (A willingness to hack code)

2. A way to register it so GeoMoose knows what to do.

3. A way to call it from GeoMoose. 4. The willingness to DOCUMENT and SHARE

your results.

Page 8: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

1. JavaScript – PrintTab.js

Page 9: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

2. Register – geomoose.html

“Registered”

Page 10: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

3. Template – Select_header.html

<img src='images/toolbar/printer.png' style="cursor:pointer;" title="PrintList" alt="PrintList" onclick='GeoMOOSE.printInfoLst("parcel_holder");'/>

<img src='images/toolbar/printer.png' style="cursor:pointer;" title="PrintTable" alt="PrintPrintTable" onclick='GeoMOOSE.printInfoTab("parcel_holder");'/>

“Reference to our registered javascript function”

Page 11: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

Page 12: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

4. Document and Share!

Everyone I know….

Page 13: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

How it happened

Polk Wrote Original Code – OR 2.4

Houston Engineering Expanded It – OR 2.6

Polk County Expanded Code – OR 2.61

Page 14: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Print Extension

1. It worked! 2. GeoMoose has good architecture that supports

client extensions. 3. GeoMoose has a good community for sharing.4. When you get an upgrade you have to “re-install”.

Summary

Page 15: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/Oregon – Query

The current version of GeoMoose includes a powerful tool to manage queries for features.

• Referenced as a service in the Mapbook.xml

• Results are displayed using a template html.

Page 16: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/Oregon – Query

Good •Powerful •Easy to implement Bad •We need a SIMPLE way to search for property with few clicks •Users can NOT remember all the field names used for searching (ie. to find a property owner you have to search BOTH owner and agent).•Users can NOT remember the format of the data in our fields for searching (ie. does street direction come after or before the street name and is owner stored by first name first or last name first). •Users can not remember how to implement wild cards (ie. is a * of a %).•Users CAN NOT remember the proper order for ands/or etc to put the needed queries together.

Page 17: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonModified Service

What is needed

A new service that is more intuitive to use that does not require the user to enter in fields, values, and comparators….

Something my Mom could use.

Page 18: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

How to make it happen….

1. Design a new way to query.2. Modify existing PHP service. 3. Modify Mapbook.xml so the service can be called

from GeoMoose.4. The willingness to DOCUMENT and SHARE your

results.

Page 19: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

1. Design – How do you make a Search Similar to GOOGLE ?

• INALL (Match All Entered Words) - the values entered must be in all occurrences of a field(s) - this is a "shorthand" way of entering the repetitive "AND“.

• INANY (Match Any Entered Words) - the values entered could be in any occurrence of the value in a field(s) - this is a "shorthand" way of entering the repetitive "OR“.

• Search Field Collections - Add the ability to collect fields into search "collections" before doing the search. Instead of explicitly selecting each field and the condition for searching.

Page 20: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

1. Design – How do you make a Search Similar to GOOGLE ?

• INALL (Match All Entered Words)

• INANY (Match Any Entered Words)

• Search Field Collections

(([OWNER] LIKE "ANDERSON") AND ([OWNER] LIKE "DEAN")) OR (([AGENT] LIKE "ANDERSON") AND ([AGENT] LIKE "DEAN"))

Dean Russell Anderson Where ‘Dean’ AND ‘Russell’ AND ‘Anderson’

Dean Russell Anderson Where ‘Dean’ OR ‘Russell’ OR ‘Anderson’

Page 21: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

2. Code – Change Query Services htdocs/php/query.php

Page 22: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

3. Mapbook.xml – Make a new service

Page 23: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

Page 24: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

Find property owned by Dean Anderson.

Page 25: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

Find property at 15840 Guthrie.

Page 26: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

4. Document and Share

• Add Code back to “Oregon 2.61 Demo and Test”. • Add code back to “GeoMoose 2.61 Demo and

Test”. • Share Oregon 2.61 Demo with Oregon Users. • Submit New Query Service as a “enhancement

request” back to GeoMoose.• Send out e-mails to all that this works!

Page 27: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

How it happened

Houston Engineering Wrote Original Code – OR 2.4

Houston Engineering Expanded It – OR 2.6

Polk County Expanded Code – OR 2.61

GeoMoose Core Wrote Original Code – 2.4

Page 28: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

GeoMoose 2.61/OregonNew Query Service

Summary

1. It worked! 2. GeoMoose has good architecture that supports

services.3. GeoMoose has a good community for sharing.4. GeoMoose is NOT very good at updating core

(is this different from ANY developer?)

Page 29: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

Open Source Case Study

1. It is “relatively” easy to enhance open source software. 2. The “shared” development model is VERY enabling and

powerful.3. The “extension design” is a very cool part of GeoMoose. 4. It is EASY NOT to share, but you should! 5. It is frustrating to work with core programmers who do

not share your sense of urgency to get what you need done.

6. Doing your thing and sharing with others works.

Summary

Page 30: Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)

How ‘You Too’ Can Play

1. Download Software http://www.geomoose.org/download.html

2. Install and Test GeoMoose 2.6 3. Download Oregon 2.62 -

ftp://ftp.co.polk.or.us/Login: generalPassword: generalFile: GeoMoose2.62Oregon.zip

4. Install as in Readme