Elijah Robison   |  elrobis [ a t ] h o t m a i l   |  Résumé (PDF)   |  LinkedIn   |  O'Reilly Media   |  GIS.SE   |  @elrobis  
Learning Flex 4 on Amazon..
(O'Reilly Media, November 2010)

Flex Blog: LearningFlex4.wordpress.com

Thursday September 29, 2011:
Google Search Application in Flex 4
Unfortunately, the Yahoo! web services, which we consumed using the ASTRA Flex library and introduced near pages 232-233, are deprecated and discontinued, devaluing the book I realize many of you bought with hard-earned money. In light of this reversal, I applied myself to replacing the YahooSearch example with something comparable. This alternative arrangement consumes the Google Search API, […]

Saturday July 02, 2011:
Load PDF Content into an AIR Application
It’s deceptively simple to load a PDF file into an AIR appliction. Basically, point an HTMLLoader at a URLRequest—which can take a local file path—add the HTMLLoader to a UIComponent, then add the UIComponent to a container. In this case, I added the UIComponent directly to the application, but it stands to reason you could […]

Sunday June 19, 2011:
Debugging in FlashDevelop: Stepping Through Code
This post discusses debugging with breakpoints in FlashDevelop 4 as well as FlashDevelop 3.3.4. My original tutorial covered FlashDevelop 3.3.4 RTM, but it fell out of date with the release of FlashDevelop 4, so I added details to accomodate that release. Debugging in FlashDevelop 4 (FlashDevelop 4 Beta2) If you want to debug your ActionScript code in FlashDevelop […]

Saturday December 11, 2010:
Primer on Byte-Level Development in AS3
http://gotoandlearn.com/play.php?id=120 Lee Brimelow posted a fantastic primer on byte-level development using ActionScript 3.  This tutorial is a 30-minute screencast where Lee demonstrates how to read a format spec and develop a solution for handling an unsupported file format with ActionScript 3.  This is a fantastic tutorial and well worth the time of anyone interested in byte-level […]

Wednesday December 08, 2010:
Create an AIR Application to Write Your XML
I keep finding myself wishing we spent more time in the book discussing Adobe AIR, so I decided to add some extra content here.  Of course, if you run into any questions or concerns, feel free to post them here. The following application demonstrates a few key uses for AIR’s File() class, particularly: 1) Open a dialog […]

Monday November 08, 2010:
The Book’s Source Code by Chapter
Just in case people come here looking for the book’s example code: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 Elijah [Update: It seems the Yahoo searching service has gone offline. I modified the code […]

Friday August 27, 2010:
Drag From a List, Drop in a TextInput
Today I wanted to drag an item from a List and drop it into a TextInput. I had never used the DragManager in this manner, but Kumar Gandhi’s post exposed the task for its simplicity. Check it out here: http://flexonblog.wordpress.com/2009/03/02/drag-and-drop-from-list-control-to-textinputnon-list-control-control-in-flex/

Saturday August 21, 2010:
Flex Audio Player code available
If you want to create a Flex 4 Audio Player, feel free to get started using the code on my homepage (opens in a new window).  I’ve enabled “View Source” on the release build, so you only have to load the site, right-click on the audio player, select “View Source”, and then in the lower-left, choose […]

Wednesday July 28, 2010:
Going Commando: Compiling Flex 4 projects in Linux using Free SDK Tools
This post demonstrates how to setup a Linux (Ubuntu 9+) system to compile Flex 4 projects using Adobe’s Flex 4 SDK. My assumption is you already know a little something about Flex 4.  That, or you’re in the process of learning it now.  These instructions focus on the steps necessary to configure Linux for command line compiling.  However, I […]

GIS Blog: Cartometric.com/blog

Tuesday November 25, 2014:
ArcPy CalculateField_management Complex Python Expression to Return a String
My coworker was having some trouble implementing a CalculateField expression in Python so I wanted to document the solution for anyone with a similar issue. (Note: If you  just want the answer, see the What ultimately worked.. heading, below.) Being unfamiliar with ArcPy, I was intrigued by this idea of defining a function as a [...]

Friday September 26, 2014:
Create UTFGrid Tiles from PostGIS Tables
I assume you’re where I was about a week ago. That is, you’ve heard of UTFGrid, and now you want to render your own UTFGrid tiles. Perhaps you found yourself looking at this thread over at GIS.SE, but you don’t want to jump into TileStache just now. Anyway if you’ve got a working installation of [...]

Wednesday September 24, 2014:
OGR VRT: Connect to PostGIS DataSource
I needed an OGR VRT for something and didn’t find a clear example on the web all in one place, so here goes. Somewhere on your system, create a new file with a .ovf extension. Inside that file, add some XML like the following to define your PostgreSQL connection: That name=”WKTGrid” is semantically unrelated here. [...]

Monday September 22, 2014:
MySQL Implementation of Google’s Encoded Polyline Algorithm
I just noticed someone created a MySQL implementation of Google’s Encoded Polyline Algorithm incorporating some elements of my PostgreSQL/PostGIS approach, specifically, support for multi-part, multi-ring polygon geometries. And this is exciting, at the bottom of his post, Fabien says he’s working on a solution for consuming the Google encoded geometries in Leaflet. Nice! I love [...]

Friday June 06, 2014:
Convert Google Maps Polygon (API V3) to Well Known Text (WKT) Geometry Expression
There’s dozens of reasons why you might want the Well Known Text (WKT) geometry expression for a Google Maps Polygon object. Assuming you’re using the Google Maps API V3, and you’ve got a variable referencing your Polygon, I’ll suggest two approaches you can take to iterate over the paths and vertices in your Google Maps [...]

Monday January 27, 2014:
PostGREsql/PostGIS Implementation of Google’s Encoded Polyline Algorithm
[Edit 30 Jan, 2014] I added an additional PostGREsql method to perform Polygon encoding by concatenating polygon geometries (delimiter: †) and their inner rings (delimiter: ‡) together into one massive encoded block of ring features. I also provided an example JavaScript method demonstrating how to bring the amalgamated polygon feature encodings into your Google Map. [...]

Friday November 08, 2013:
PostGIS: query all multipolygon parcels with at least one hole
I was writing some code to iterate over Well Known Text expressions for polygon features, and I decided I needed to test the most complex edge-case I could think of–multipolygon geometries where at least one of the bound polygons has a hole (i.e. an interior ring). I ended up with the following query. This seems [...]

Monday August 05, 2013:
Install httplib2 to your Preferred Python Runtime after ArcGIS Unceremoniously Hijacks the First Attempt
We’re going to use Google Maps Engine for some stuff, and so I thought I’d throw my first codes at it using Python. Well.. Google’s Python example requires the httplib2 library, so I needed to install that. When I did—following the library’s download/instructions—for some reason, the library went into service against ArcGIS’s embedded Python runtime, [...]

Friday December 28, 2012:
osm2pgsql help and usage
I wanted a more convenient place to read the osm2pgsql help output, so this seemed as good a place as any for it. /E ----------------------------------------------------------------- osm2pgsql -h osm2pgsql SVN version 0.80.0 (32bit id space) Usage:         osm2pgsql [options] planet.osm         osm2pgsql [options] planet.osm.{gz,bz2}         osm2pgsql [options] file1.osm file2.osm file3.osm This will import the data from [...]

Friday December 21, 2012:
Resident “lunatic” of LinkedIn
Just updated my LinkedIn profile.. This is just TOO FUNNY right now! I totally had to save this for posterity. Unfortunately it will probably disappear before you can say “Jack Robinson”.

Answers at gis.stackexchange.com

October 13, 2014, 2:48 pm:
How to rename PostgreSQL/PostGIS columns while importing Shapefiles?
To expand on David Bitner's answer, here's an example ogr2ogr instruction demonstrating an optional OGR SQL clause to rename fields from a source dataset (shapefile in this case) before they are broug[...]

September 24, 2014, 3:23 pm:
Best Practice for HTML5 Geolocation with ArcGIS for Javascript API
I think your first solution, to project the Lat/Long coordinates to your preferred state plane is the right way to go. However, I'm not sure what you mean by "a Geometry Service". Do you mean you're u[...]

September 19, 2014, 7:38 pm:
Leaflet WMS Google Maps Engine
For anyone else who comes through here researching this, it seems Google Maps Engine (GME) doesn't expose individual layers as WMS assets. If I'm wrong, I hope someone will correct me in the comments.[...]

January 1, 1970, 12:00 am:
How to view locally generated XYZ map tiles?
Your browser can load your local XYZ tiles. Check this tutorial at BostonGIS which shows how to do this relative to OpenLayers. The thinking should transfer to Leaflet or whatever else you want to use[...]

January 1, 1970, 12:00 am:
Automate import of multiple rasters as layers into tilemill
Could you use the GDAL utility, gdalbuildvrt, to create a mosaicked VRT as a raster input to TileMill? It seems to be a recommended approach.

January 1, 1970, 12:00 am:
Looking for dissolve algorithm for Javascript
Stumbled across this and thought I'd provide an example.. 1) First download the JSTS library, unzip it, browse into the lib folder, and include the two lib files (javascript.util.js, and jsts.js) in [...]

April 10, 2014, 2:23 pm:
How to export a shape polygon to a file
If you're comfortable with GDAL/OGR (or willing to level up), you can use ogr2ogr along with OGR SQL to quickly and easily export a single feature from any of the OGR supported vector formats into a s[...]

April 7, 2014, 6:35 pm:
Best source for high-resolution satellite images free/low-cost?
You might want to checkout the MapBox Satellite layer. It's available under their Basic Plan, which is $5 a month. I believe the layer is distributed as TMS tiles, and you can review the granularity a[...]

March 18, 2014, 7:25 pm:
How to convert NAD 27 to WebMercator in using the ESRI Silverlight API? (C#)
I'd recommend you try the Proj.NET library (a Proj4 implementation for .Net) in your application and let Proj.NET do the coordinate transformations for you. It should be compatible with Silverlight by[...]

January 1, 1970, 12:00 am:
GoogleMaps URL string to display unique marker
Check out the Google Maps Static API, specifically the section on markers. Using the static maps API, I can create a URL with the marker setup you requested like so:
http://maps.googleapis.com/maps/[...]

January 1, 1970, 12:00 am:
Why is it not advisable to perform spatial analysis on layers with source datasets having same datum but different projections?
As for what could go wrong--data in different projections may not share the same origin; therefore, mathematical calculations between such layers could be permitted without the software first interrog[...]