Big Ideas

AngularJS for a responsive web app

One doesn’t need to look far to realize that smartphones have quickly become the defacto way that many people access the Internet. For a growing number of people, it’s the only way that they interact with the web.
The growth is astounding.

The problem is, most web sites, designed before the (latest) explosion in mobile (like, say, 18-months ago!), look fine on a desktop but do not present in an optimal way on a mobile device. While many sites have a “mobile version” available, they tend only to be accessible to visitors who are willing to squint and jab at miniscule hyperlinks and, once-accessed, they often lack much of the content and functionality of the main sites.

Most of the application development projects that we have been involved in over the past year have had a requirement that the application run on a mobile device. The native apps tend to be easier with regard the predictability of how the interface will appear and function when deployed to a mobile device.

Applications that need to run equally as well on both desktop and mobile browsers can provide a few more puzzles concerning their predictability.

angular-jsOne way we’ve met this challenge is through the use of AngularJS, an open-source Javasript MVC framework. Angular allows us to create rich and responsive internet applications for both desktop and mobile environments with the same codebase.

One of our lead developers, Alex, has been a huge proponent of Angular.  When asked to share some of the biggest reasons why he likes to use it, Alex says: “AngularJS allows us to essentially create rich applications that run in the browser. Similar to a smart phone application, once the application is loaded in the browser, the user interactions are very fluid and responsive. The quality of applications are similar to what we used to create with Silverlight or Flash, except that Angular applications can be run in any HTML5 compliant browser, including mobile browsers.”

Some other notes about Angular —

  • It’s open-source, but it is also maintained and backed by Google, suggesting a certain degree of support, community size and activity, which are important considerations for selecting open source frameworks.
  • The MVC framework allows us to easily unit test the business logic of the application by writing tests against the controllers and models. Having unit test allows us to have shorter release cycles with higher quality code.

As a result of our use of AngularJS, we have been able to deliver high-quality web applications to our clients that meet the needs of an ever-increasing mobile audience.

If your company has a web presence, you need to ensure that you can reach the large number of users out there who are surfing the web on their mobile devices. Contact us. We can help!

Using the URISA GIS Capability Maturity Model

At the Gartrell Group, we are all about helping organizations make the most of locational information. Our work can be organized into three major categories:

  • Strategy - helping organizations assess needs and develop or refine their strategies for effectively serving the geospatial needs of their customers.
  • Development - designing, developing, and supporting clients in the roll out of web and mobile software tools tailored to their unique requirements and workflows.
  • Hosting - our cloud-hosting options are home to many organizations’ geospatial data and apps.

A recent strategy consulting engagement has been with Hennepin County, Minnesota.  We are working on a multi-faceted project that is focused on increasing executive sponsorship for the County’s GIS program and on helping to enhance collaboration among the many lines of business served by the County’s GIS office.

Introducing the URISA GISCMM

One tool that we’ve utilized in this effort is a brand new assessment survey by the folks at Urban and Regional Information Systems Association (URISA) called the GIS Capability Maturity Model (GISCMM). The GISCMM is a comprehensive survey that aims to provide metrics to “enable GIS managers and organizations to gain understanding and insights about how GIS is implemented and operated in their organization.” It is made up of two parts; the Execution Ability Assessment and the Enabling Capability Assessment.

Enabling Capability Assessment Results Chart2The Enabling Capability Assessment focuses on assessing the status of an organization’s data, technology, and geospatial infrastructure, while the Execution Ability Assessment focuses on the ability of an organization’s staff to leverage data and technical resources to serve particular goals and functions.

The URISA GISCMM was developed by some of the most influential and experienced members of the GIS Community. The result is an extremely comprehensive look at an organization’s geospatial capabilities informed by metrics that range across topics of personnel, technology, data, governance, and coordination among stakeholders. The survey is designed to facilitate easy comparison with a developing industry standard in each major category of measurement.

One of the interesting elements of the assessment is a radar chart infographic that is used to depict the relative “maturity level” of an organization for each metric. A chart with circular results will show a fully robust organization without any need for improvement (let’s be clear, a fully robust organization without any need for improvement is purely theoretical), while a chart with valleys cut into it will identify areas in need of improvement.

Establishing a Baseline Metric

If used properly, the results of the survey can help an organization identify areas in need of improvement, and can be used as a metric going forward. Not only can the survey be used as a tool to measure individual organizations, but once many organizations have participated, their results can be combined to give a decent picture of the current state of GIS.

The URISA GISCMM is a brand new tool and the folks at Hennepin County are among the very first in the nation to participate in the process. The results will help their (already healthy) GIS program zero in on the areas that need improvement, and will give them a metric on which to measure that improvement.

We are excited to add this tool to our quiver!

Give us a shout if you’d be interested in having us assess – and assist in strengthening – your organization’s location intelligence.

Implementing a GIS-based Safe Routes To School Route-Finding Methodology: Part 2

This is Part 2 of a 2-Part Series. In Part 1, we introduced the project and went over the steps we took to build the GIS-based Safe Routes To School route-finding methodology. Read Part 1 here.

Cooking Up a Usable Network

Prep the Data

To start, we create a new file geodatabase and add multiple datasets from a variety of sources. The datasets are used in preparing the centerline as a network dataset source. For our centerline, we use Oregon Metro‘s BikeNetwork Centerline as the source, which was derived from the City of Portland’s street centerline and includes the City’s trails.

This being a Safe Routes To School project for Portland Public Schools, the first thing we do is to clip to the City of Portland Boundary. Once that is done, we clean up the data by deleting and adding fields in the new feature class so we’ve got attribute fields without unneeded bulk. Some fields are added to capture specific criteria that are used in Portland Public Schools’ Supplemental Plan field evaluation of student walk areas. Among those fields are shoulder widths and conditions, motorist visibility, and other conditions that may exist that creates a risk (data not available in existing data sources). After this information is collected in the field, they will be added to the network dataset, and can be used in route analysis.

The next step is to edit the centerline feature class, to add routing specific attributes. There is considerable amount of manual editing to prepare the centerline for use in a network dataset. The information comes from various sources, and the data do not always align well with the centerline. The focus of this project is student walk areas 1-mile from elementary schools (K-6, K-8) and 1.5 miles from middle schools (6-8, MS), therefore the editing can be prioritized for those areas. The routing analysis will be performed within the walk area boundaries.

Following are some of the major editing steps

A street hierarchy rating, from 1 to 3, based on the street TYPE values is calculated. We use two sources of sidewalk data (one from the City and the other from Metro) to add sidewalk information. We need to use both sources of data as there is no complete sidewalk dataset for the entire City. The data from the City consists of a polygon layer offset from the street centerline. We need to split the centerline where there are sidewalk polygons, and add field values for right side, left side or both sides sidewalks. The Metro data has left side/right side attributes, is aligned with the centerline, and has a unique ID that can be used to join with the centerline data to calculated field values for sidewalks.

After the sidewalk attributes are in place, we affix the speed limit attributes.The number of lanes is an important consideration in determining safe routes. Again, we need to do a considerable amount of manual editing to prepare the data.

The next step is to convert the crosswalk line feature class to a point feature class, and then merge it with the traffic signals point layer. We then strip many of the fields, except for the ones we need, and save the two merged layer as one intersection layer in our new Pedestrian feature dataset. Sinuosity – curviness – is calculated on the centerline, and values added to a field in the centerline feature class.

The final step in preparing the data is a manual check to confirm that we have retained necessary fields and deleted extraneous ones.

Create the Network Dataset

To start, we create a new feature dataset in the file geodatabase that we created when preparing the data. The projected coordinate system that we use is the Oregon State Plane North, NAD 83 HARN. We then copy the prepared feature class to the feature dataset, and use a network dataset tool to create a new network dataset. Using the tool, we specify the attributes for shoulder, speed, road hierarchy, lanes, sinuosity, traffic signals and crosswalks. As you can imagine, we are looking for roads with wide shoulders, low speeds, low traffic and minimal lanes.

Generate walking routes

In this phase, we start to build the route maps; both the specific routes to individual students’ homes as well as more generalized, “catchment” routes that groups of students can use. Using a network analyst tool, the closest facility analysis will be used to map individual student walk routes from their homes to their school. Students will be used as the “incidents” in the analysis, and the specific school site will be the “facility.” This phase consists of a good deal of trial and error as we tweak the attributes and their impact on the route. Additionally, we add analysis of barrier layers. Barrier layers are not part of the network dataset; they are comprised of individual points, lines, or polygon feature classes that can be added to restrict or alter impedances of the network routing. We use land use, slope, crash and crime data for our barrier layers. They can easily be added or removed from the analysis, as can the network dataset attributes. Field tests will aid in refining the use of attributes and barriers, as well as highlight data gaps that exists.

Lessons Learned

Despite all of the great data available in the City of Portland, we still had a good deal of manual work to do. While the initial data cleanup and prep is time consuming, we anticipate that as data is maintained and properly curated, the process will become far more automated.

A Framework for GIS and Safe Routes to School

Last year, a group of experts convened in Austin, TX to discuss existing datasets and what is not being collected, how the general public can create and access data, existing tools and technology and what is needed to improve data connectivity and mapping, how GIS could be better utilized in Safe Routes to School and other active transportation initiatives. The result of the meeting was a paper titled, A Framework for GIS and Safe Routes to School which we used as a starting point in determining our methodology. In the paper, the authors came up with the Top Ten GIS Datasets for Safe Routes to School. Those ten datasets are listed below, followed by an explanation of how (or if) we used them.

Standard level of comfort - A fairly subjective measurement, but one that is clearly important. This dataset is not something that is immediately available, but will become available as field data-collection efforts get under way. Our initial field testing involved a good deal of discussion about the best ways to collect and quantify this type of data.

  • Presence of a Sidewalk - This is an important attribute. We also took into consideration, and feel that it’s an extremely important consideration; the presence and width of a shoulder.

  • Intersection - This is an important attribute. We weighed our routes taking into consideration attributes such as marked crosswalks and signals.

  • Bicycle Facilities - We did not take this into consideration as walkability was the primary focus of this Proof-of-Concept project. We look forward to working on SRTS bike maps!

  • School Location and Student Catchment Areas - Of course this was taken into consideration. How to determine catchment areas is a whole other discussion!

  • Speed - We added in an additional factor of sinuosity after going out in the field and seeing first-hand how curvy roads (without sidewalks) can be a safety issue.

  • Collision Data - This was a primary barrier attribute.

  • Health Indicators - We did not use this data.

  • Existing patterns - We did not use this data as there is no current existing walking pattern data.

  • Crime data - This was a barrier, but not ranked as high as crash or slope data.

Don’t Miss Part 1

Did you miss the first post in this series? Fear not, you can read it here.