Constructing an Open Source Powerhouse

Preview:

DESCRIPTION

Jessica Fendos MN Department of Employment and Economic Development University of Minnesota, CURA. Constructing an Open Source Powerhouse. - PowerPoint PPT Presentation

Citation preview

Constructing an Open Source Powerhouse

Jessica Fendos

MN Department of Employment and Economic DevelopmentUniversity of Minnesota, CURA

2007 FOSS4G Conference Sept. 25, 2007

Sept. 25, 2007 FOSS4G Conference

Background information Data source and dynamic interface Dynamic mapping and reporting Building blocks of Open Source bundle Observations on strengths and limitations Questions

Presentation Outline

2

Sept. 25, 2007 FOSS4G Conference

Minnesota 3D Overview

A GIS and internet-based mapping application aims to narrow the spatial mismatch between affordable housing and jobs for the Twin Cities metro area.

A portal that connects the general public, planners, developers, and public policy makers to employment, housing and economic development data.

3

4

Cross-Sector Data

5

Sept. 25, 2007 FOSS4G Conference

Developed by DEED and CURA, sponsored by Technology Opportunities Program grant.

Partner with the U.S. Census Bureau, Metropolitan Council, Housing Link, MN Department of Human Services, MN Child Care Resources,…

Launched in October of 2006, visited by users worldwide.

Partnership

6

Sept. 25, 2007 FOSS4G Conference

Built on an open source bundle integrating MapServer, PostgreSQL, and Chameleon

Interactive system that automates commute shed and labor shed maps and community profile reports generation.

The Technical Side ….

7

2007 FOSS4G Conference Sept. 25, 2007 8

PostGIS Data

Chameleon Application

Developer

M3D Users

The Open Source Framework

.phtml

.map

.html (CWC2, .js, .css)

*Based on Chameleon Web Mapping Framework, Tyler Mitchell, 2005.

Sept. 25, 2007 FOSS4G Conference

3 Dynamics

9

2007 FOSS4G Conference Sept. 25, 2007 10

Sept. 25, 2007 FOSS4G Conference

Census Origin Destination Data

11

Local Employment Dynamics Data

Job counts

Work block group Work X, Y Od04_wbg w

Home block group Home X, Y

w.hbg

Sept. 25, 2007 FOSS4G Conference

Map Commute shed and Labor shed

Dynamic Mapping

12

Select by Area Rectangle City Neighborhoo

d

Display by Dot (block group) City Both

2007 FOSS4G Conference Sept. 25, 2007 13

Sept. 25, 2007 FOSS4G Conference

Dynamic Reports

14

Select by Area Rectangle City Neighborhood

Select Report Workers Workplace Housing Demographics

2007 FOSS4G Conference Sept. 25, 2007

Sept. 25, 2007 FOSS4G Conference

Methodology - Building Blocks

16

M3D.map

M3D.phtmlM3D.html

SQL Connection String

MapServerMapfile

PostgreSQL

DatabaseChameleo

nTemplates

Sept. 25, 2007 FOSS4G Conference

LAYER # Begin Laborshed

NAME "Laborshed“

STATUS OFF

DATA "the_geom FROM dummypoint"

CONNECTION "user=XXXX password=XXXX dbname=M3D host=XXXX port=XXXX"

CONNECTIONTYPE postgis

TYPE POINT

CLASSITEM "all_jobs"

CLASS NAME ">100 Commuters" EXPRESSION ([all_jobs]>100) SYMBOL "circle" SIZE

12 COLOR 0 109 44 END …

END # End of Laborshedshed layer

Dynamic Mapping - Mapfile

17

Define Display Area Type

Sept. 25, 2007 FOSS4G Conference

LAYER # Selected Block Groups

NAME "BG_SELECT"

STATUS OFF

DATA "the_geom from censusbg_attributed"

CONNECTION "user=XXXXX password=XXXX dbname=M3D

host=XXXX port=XXXX"

CONNECTIONTYPE postgis

TYPE LINE

CLASS NAME "Selected Block Groups" STYLE SIZE 2 COLOR 0 255 255

SYMBOL "circle" END END

END # Selected Block Groups

Dynamic Mapping - Mapfile

18

Define Selection Area Type

<script language="JavaScript" type="text/javascript">

function SelectTool(){

for (var i=0; i < document.forms[0].rpt.length; i++) {

if (document.forms[0].rpt[i].checked)

{

rad_val = document.forms[0].rpt[i].value; }

}

document.forms[0].SelectValue.value=(rad_val);

}

</script>

Dynamic Mapping - M3D.html

19

<input type="hidden" name="SelectValue“ value="[$SelectValue$]">

2007 FOSS4G Conference Sept. 25, 2007 20

Dynamic Mapping - M3D_Report.html

<script language="JavaScript" type="text/javascript">

if(document.forms[0].SelectValue.value == 'LSHED')

{document.write('<input type="radio“ name="rpt“

onChange="SelectTool()" value="LSHED"

checked>Dot&nbsp;&nbsp;');}

else

{document.write('<input type="radio" name="rpt“

onChange="SelectTool()“ value="LSHED">

Dot&nbsp;&nbsp;');}

</script>

2007 FOSS4G Conference Sept. 25, 2007 21

Dynamic Mapping - M3D.html

<script language="JavaScript" type="text/javascript">function SelectRegion(){

for (var i=0; i < document.forms[0].area.length; i++) {

if (document.forms[0].area[i].checked) {

rad_val = document.forms[0].area[i].value; } }

document.forms[0].SelectType.value=(rad_val); }

</script>

<input type="hidden" name="SelectType" value="[$SelectType$]">

2007 FOSS4G Conference Sept. 25, 2007 22

Dynamic Mapping -M3D_Report.html

<script language="JavaScript" type="text/javascript"> if(document.forms[0].SelectType.value == 'RECT') {document.write('<input type="radio" name="area" onChange="SelectRegion()" value="RECT" onClick="ROIRectTool57()" checked="true">Rectangle (as drawn)<br/>');} else {document.write('<input type="radio" name="area" onChange="SelectRegion()" value="RECT" onClick="ROIRectTool57()">Rectangle (as drawn) <br/>');} </script>

<cwc2 type="ROIManager" mode="normal" onroichanged="myROIChanged()"/>

<cwc2 TYPE="ROIRectangleTool" Visible="false" Label="Select Area..." toolset="SelectArea"> </cwc2>

g

<cwc2 type="UpdateMap” IMAGEWIDTH="120" LABELALIGN="LEFT" styleresource="NavButtons" visible="true" imagetip="generate report based on selection" label="Generate Map/Report">

<image state="normal"/>

<image state="selected"/>

<image state="hover"/>

</cwc2>

Chameleon ROI Widgets

23

Dynamic Mapping- Chameleon MapDHTML Widget

24

if ($this->getVar( 'SelectValue' ) == "LSHED")

{

if ($this->getVar( 'SelectType' ) == "RECT") {

$oLayer = $poMap->getlayerbyname('Laborshed');

$oLayer->set("status", MS_ON);

$oLayer->set("data", " the_geom FROM (SELECT bg_centroid.the_geom AS the_geom, bg_centroid.objectid AS oid, w.all_jobs FROM bg_centroid right join (select w.hbg_fips, sum(w.jobs_all) as all_jobs from od04_wbg w where the_geom && SetSRID('BOX3D($rMinX $rMinY,$rMaxX $rMaxY)'::box3d,-1)

AND within(the_geom, SetSRID('BOX3D($rMinX $rMinY,$rMaxX $rMaxY)'::box3d,-1) ) GROUP BY w.hbg_fips ORDER BY all_jobs desc ) as od04_wbg w on bg_centroid.fips = w.hbg_fips) AS new_table USING UNIQUE oid USING SRID=-1");

}

}

Sept. 25, 2007 FOSS4G Conference

Strengths Free and Integrated:

Open source software bundle provides the foundation to construct spatial data powerhouse relatively quickly, e.g. MS4W package.

Support Network: Open source users’ group provides support.

Limitations Technical Consultation:

Long distance communication. Application Development Cost:

Takes efforts to integrate building blocks contributed from various sources.

Strengths and Limitations

25

Sept. 25, 2007 FOSS4G Conference

http://jessicafendos.com/FOSS07

Flash Website

26

2007 FOSS4G Conference Sept. 25, 2007 27

Acknowledgements

Oriane Casale, DEED, LMISteve Hine, DEED, LMI

Kris Nelson, University of Minnesota, CURAJeff Matson, University of Minnesota, CURA

Jessica Deegan, Metropolitan CouncilSteve Lime, Department of Natural

ResourcesJulien Samuel-Lacroix, MapGears

2007 FOSS4G Conference Sept. 25, 2007 28

The End….