Indiemapper made…

Posted by ben on January 29th, 2010.   1 Comment    

…a map of Hurricane Gustav showing its path and wind speed, 25 August – 2 September 2008. The reference map data, including bathymetry, is from Natural Earth.

Indiemapper + Typebrewer

Posted by ben on January 5th, 2010.   No Comments    

We’re featuring template-based map typography in indiemapper, an idea borrowed from TypeBrewer that should make the process of choosing fonts and font styles for indiemapper-made maps quick and easy. We never like having to manually dig through long lists of fonts to find those that work best on maps, so decided to extend some additional typographic selection guidance that will hopefully benefit mapmakers.

Each typographic template in indiemapper consists of a set of “Web-safe” or freely-available fonts and font styles (e.g., colors, sizes, and letter spacing values), chosen by us in light of good cartographic design conventions and principles. Of course, all of your own fonts will be available to use as well, for when you feel the need to go out on your own! Using templates in indiemapper will also prevent those annoying missing font problems — wherever you make maps with indiemapper, template fonts will be there.

Special thanks to the typographers and type foundries who produced all of the great-looking, professional-quality, free fonts used in indiemapper:

Jos Buivenga’s exljbris Font Foundry:

1) Fontin

2) Fontin Sans

3) Delicious

http://www.josbuivenga.demon.nl/index.html

Steve Matteson at Ascender Corporation:

1) Liberation Serif

2) Liberation Sans

http://www.ascendercorp.com/fonts/liberation/

https://www.redhat.com/promo/fonts/

3) Droid Serif

4) Droid Sans

http://www.droidfonts.com/

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;f=data/fonts;hb=HEAD

Jim Lyles at Bitstream, Inc.

1) Bitstream Vera Serif

2) Bitstream Vera Sans

http://www.gnome.org/fonts/

Victor Gaultney at SIL International

1) Gentium

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium

Indiemapper made…

Posted by Andy on November 16th, 2009.   2 Comments    

US and Mexico 30-day precipitation map, made with indiemapper

…a map of 30-day precipitation totals in the United States and Mexico with city, country, and ocean labels.

Indiemapper made…

Posted by Andy on November 3rd, 2009.   No Comments    

Europe at Night by indiemapper

…a map of Europe at night using built-in Natural Earth Vector data.

Indiemapper made…

Posted by dave on October 20th, 2009.   No Comments    

election2008

…a bivariate proportional symbol map showing 2008 election results by county.

Visualizing indieprojector

Posted by Andy on August 18th, 2009.   3 Comments    

After a few months of indieprojector, we thought it’d be interesting to see how it’s being used. Two questions sounded particularly fun to visualize: what geographic areas being mapped with indieprojector, and what projections are the most/least popular? So I grabbed some data and generated some maps, which Mark turned into snazzy visualizations.

Geographic extents of all layers loaded into indieprojector

click to see full-size (lots of detail)

You’ll want to click that image to see it at its full size and glory. The map shows the bounding boxes of all geographic data uploaded to indieprojector (it excludes layers loaded from the shapefile library we provide). The US is pretty clearly the most popular region for data in indieprojector, but the map shows some interesting variety.

We also made a map for each individual projection available in indieprojector in order to see how the patterns differ. Some projections are appropriate for continent-sized areas, some are appropriate for global data, etc. For the most part, it looks like the projections are being used the way you’d expect: Robinson and cylidrical equal area are popular with global data sets, Albers equal area conic is very popular in the US, and so on. It’s a little hard to discern any significant patterns in the maps, but here they are for each projection. Click the image for a larger size.

Layers in each indieprojector projection

It’s worth noting, by the way, that indieprojector was used to export these maps about itself!

The most popular projection is Winkel Tripel, which is not surprising as it is perhaps the best projection for global data. A somewhat surprising second place is orthographic, the “Earth from space” view. The least popular is the sinusoidal projection, which is useful in that it is equal-area, but is not especially attractive. Winkel Tripel has been used about six times more often than sinusoidal.

Stay tuned for some indiemapper upates and a couple of new projections to enter the mix soon!

How indieprojector shaped the world

Posted by Andy on May 26th, 2009.   1 Comment    

Our recent release of indieprojector is a fitting first step toward indiemapper, as it was the experiments with web-based map projection that sparked the idea for indiemapper a year and a half ago. Control of map projections, we found, is sorely lacking in the explosively popular and powerful world of web cartography. So we began working in Flash on a tool that would read shapefiles and re-project them for display and eventual export, and at least that goal has now been realized with indieprojector. Here we thought we’d pass on some of what we’ve learned along the way about working with map projections in ActionScript 3.

Projecting geo-data: the basics

To simply draw geo-data to a certain map projection is a pretty easy process. The data are loaded from SHP or KML files and stored as a series of latitude/longitude coordinates. (KML parsing takes advantage of AS3’s native XML capabilities, and our SHP loading and parsing are based on Edwin van Rijkom’s libraries.) Then, re-projecting the data is just a matter of plugging the lat/long values (in radians) into a projection’s transformation equation, incorporating applicable centering coordinates and standard parallels. Generally the math is straightforward. Here are the equations for a Mercator projection, for example (from Wikipedia):

Mercator equations

We found lots of help in Wikipedia, Wolfram MathWorld, and the PROJ.4 library, or more specifically this Java spinoff, which is easy to translate to AS3.

A Challenge

Warning: read no further if you don’t want to be immersed in the filthy details of how indieprojector works. Otherwise, what follows may serve as a useful lesson; it certainly did for us.

The most notable challenge of implementing the map projections in indieprojector was correctly re-centering maps on longitudes other than the default 0 degrees. As you can see below in the images below, with North America, re-centering the map can split polygons (and lines) in two.

World map centered at 0 longitude

World map with split polygons

The data as imported and stored, of course, define single polygons as… well, single polygons (with a very few exceptions). If we were to simply project all the points in a polygon and try to draw the shape, where drawing should stop at one edge of the map and pick up again at the other, it would instead draw a segment clear across the map from one end to the other, like this:

Draw from one point to the next (ignoring lots of actual points on this polygon for demonstration purposes)…
Drawing between points on the same side

But the next point is on the other side of the map! It draws all the way over to that point, and then continues from there.
Drawing between points across the map

This means that every time the projection settings are altered, we need to split polygons and lines on the fly as needed. Polygon and line data are already stored as sets of rings, which are the individual pieces of a single feature. (Consider, for instance, the state of Hawaii as a polygon feature. It is just one “polygon” but each of its islands is a separate ring.) So, when needed, we further divide polygons into more rings. For anyone interested, here is a simplified version of the steps we’re taking:

Look at the longitudes of the first two points. The first (right) is farther east (i.e. higher longitude) than the second, and is also closer to the right edge of the map than the second. This indicates that the two points are not divided by the map edge, so they belong in the same ring.
Drawing between points on the same side

Now look at the next pair of points. The first point (second point above, left image below) has a higher longitude, but is farther from the right edge of the map than the second point (inner point on the right image). This indicates that the two points are divided by the map edge. So, interpolate a point in between them on the map edge, and then add it to the original ring as well as to a new ring that will contain points on the other side of the map. Finally, add that second point to the new ring.
Drawing points on different sides of the map

Look at the next pair of points. Again the first point has a higher longitude and is closer to the right edge of the map, so the points belong in the same ring.
Drawing points on one side of the map

Between map edge crossings on a ring, we add a series of additional points on the edge so that the ring can approximately follow the curved edge of some projections.
Extra edge points

Our algorithms will continue to evolve, eventually into proper clipping routines, but we think we’ve made a good start toward bringing projections into web-based mapping for the common cartographer. It’s a virtual globe and Mercator world out there, and those are fine for a lot of purposes, but our training and experience has taught us that a Greenland-on-steroids projection and an obscuring, variable-perspective 3D globe are probably not the best for thematic maps. Our math and drawing hurdles here don’t address the much larger challenges of bringing map projections fully into mainstream web cartography, but we hope that indiemapper (and indieprojector) will serve as a good introduction.

Announcing: indieprojector

Posted by dave on May 12th, 2009.   2 Comments    

Today, we are pleased to announce the release of our free geographic projection and data conversion tool: indieprojector.

For indieprojector, we took three core indiemapper features:

  1. SHP / KML import
  2. Geographic projections
  3. SVG export

… and combined them into a single stand-alone web application. Indieprojector lets you load multiple SHP or KML files, reproject them to one of 11 geographic projections and export them to SVG for use in a vector graphics editing program. We’ve also included lots of information on each projection plus filtering tools to help you select the best projection for your individual project.

We’re very excited to be offering a preview of indiemapper before it’s release at the end of the summer and we hope indieprojector is useful for your day-to-day mapping work. Check out the indieprojector screencast and please take some time to give us some feedback and let us know what you think. We look forward to hearing from you.

Enjoy indieprojector!

UPDATE: A new version of indieprojector has been released which includes support for NetworkLink tags in KML, layer re-ordering and various minor UI and bug fixes.

indieprojector




This is the talk I gave at the Association of American Geographers annual meeting last week in Las Vegas. It introduces web-services as a replacement for desktop applications and discusses what that trend has meant for spatial data. I talk briefly about our work on Geocommons Maker and then give a full preview of Indiemapper.

I’m really glad I got a chance to bring this to AAG’s this year. I got to talk with and hear from lots of professional cartographers who are going to be our end users. It’s great to hear that people are just as dissatisfied with their current tools as we are and see the benefits to moving towards a web-based system for producing maps. We’ve still got a long way to go and I hope we keep hearing from you. Thanks to everyone who attended the talk and I hope to see you all again next time for a full Indiemapper demo.

Abstract:

The proliferation of cloud-computing and web-based services has resulted in a massive increase in the amount of data available to be mapped and the number of people making and sharing maps. However, two issues remain: how to find useable data and how to make the best possible maps quickly, even if users have no formal training. While data are plentiful, they are often hard to import. Worse, while free mapping tools exist, they offer no guidance on how (and why) to map those data well and provide only “push-pin” cartography.

Axis Maps and FortiousOne have partnered to create Maker, an online map-making service that allows the public to easily create thematic and reference maps, drawing from the vast, user-created GeoCommons data repository, and to share and publish those maps anywhere on the web. Our motto was ‘great looking maps, fast.’ Building on the Map Brewer concept of guided mapping systems, Maker brings powerful mapping tools to a wide audience, sets higher design standards for web-based maps, and improves cartographic education and literacy.

IndieMapper builds on the strengths and accessibility of Maker but adds the flexibility of a commercial GIS package. Where Maker hides key cartographic decisions (i.e. projections) to create a “no-fail” approach to mapmaking, IndieMapper allows for control over the entire map production process. Previously cartographers have gone to great lengths to integrate their workflow into GIS software. IndieMapper streamlines this process, allowing users to go from data to data-rich map faster and easier than ever before.

About indiemapper.com

Posted by dave on February 17th, 2009.   1 Comment    

Welcome to indiemapper.com! We’re very excited that you’ve taken the time to learn about our project. Put your email address in the subscription box below so we can tell you about indiemapper developments and most importantly… the launch!

A little about indiemapper:

  1. It’s big. We’re not satisfied with the current tools available for making maps. They’re too expensive and their cartographic functionality doesn’t always give us everything we need. We’re building indiemapper to replace those tools. It takes in shapefiles and spits out a vector file to Illustrator, just like GIS. It supports multiple projections, just like GIS. Labeling, map layout, data classification, just like GIS. If you need it to make a map, it’s in there.
  2. It’s focused. The problem with the existing tools for making maps is that they aren’t designed exclusively for making maps. You’re only using about 10% of the software to make your map (but paying for all 100%). We built indiemapper for only one purpose: making maps.
  3. It’s visual. If I want to reclassify my data, why do I need to go into the map properties dialog box, select the symbology tab, click on the data classification button that opens up a new window, move the tabs around in that new window, click OK in the new window, click OK in the first window I opened and then wait for my map to redraw to see if the classification looks good? With indiemapper, every update is live and every control is easily accessible. No more hunting. No more waiting.
  4. It’s online. Updates are available as soon as they’re released. No more waiting for service packs or paying for upgrades. And Mac users: Get ready… we are 100% platform independent. Use it on a Mac, use it on Windows, even try out Linux (you might like it!)

I could go on and on, and I will, right here on this blog. Check back here for a discussion on functionality, coding, design, cartography, all things indiemapper. We’ll be releasing some free tools along the way that we’ll want to tell you about too. Most importantly, we want your feedback so let us have it!

Glad you’re here with us,

The indiemapper team