Saturday, June 27, 2009

Flash Transitions

Came across a couple of really useful sites for transitions in Flash. The first allows you to try each of the transitions in CS3. The second, I have come across many times before. It is a more general site but gives some great Flash tutorials. Hopefully more AS3 examples will be added.

Friday, June 26, 2009

Flash Map Convert lat/long to x,y

I need to add pins to the flash map I'm working on. They are geo-located based on lat/long stored in a loaded XML. I was wondering how to do the conversion from lat/long to screen x,y. Found this thread. I'll give feedback on the solution I finally implemented in due course.

Flash CS3 Map Zoom

I've been building a Flash CS3 map mentioned earlier in the blog. The next thing to be done was zoom. From past experience this is always a tricky business. I wondered if anybody might have shared their solution. Eureka! Peter Organa to the rescue. He has written just the best zoom and pan tool. Scroll wheel even works. Best of all its in AS3 and Peter has shared the source. Made my day!

Thursday, June 25, 2009

HTML 5

I came across this discussion on James Fees blog about HTML 5. So is there a future for Flash and Silverlight? I'm inclined to think so. The great thing is more ways to develop RIA. Here is a link to the article.

Flash Builder 4

The full release of Flash Builder 4 is scheduled sometime in July, replacing Flex Builder 3. I thought I'd take a look at what is different. Using the Modest Maps API I built a demo mapping application. I thought I'd post a brief snippet of that code. The first is the code in Flex 3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
minWidth="1024" minHeight="768" creationComplete="init()">
<mx:Script>
<![CDATA[

import mx.core.UIComponent;
import com.modestmaps.TweenMap;
import com.modestmaps.mapproviders.OpenStreetMapProvider;
import com.modestmaps.geo.Location;

private function init():void
{
}
]]>
</mx:Script>
<mx:Canvas id="mappanel" width="100%" height="97%"/>

</mx:Application>

This second is the same code using Flash Builder 4:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768" creationComplete="init()">
<fx:Script>
<![CDATA[

import mx.core.UIComponent;
import com.modestmaps.TweenMap;
import com.modestmaps.mapproviders.OpenStreetMapProvider;
import com.modestmaps.geo.Location;

private function init():void
{
}
]]>
</fx:Script>

<mx:Canvas id="mappanel" width="100%" height="97%"/>

</s:Application>

There are some interesting differences. I had expected to be able simply to extend my existing Flex 3 apps. Not so. I'll blog more on this when I have more time to poke around.

MapSherpa

I've been sharing emails with Dave McIlhagga at DMSolutions. The are about the launch MapSherpa. An easy way to generate stunning maps. The beta test should begin soon. Worth signing up for me thinks. Full release will be sometime in July. I'm looking forward to testing it out.

Geo-Spatial Solutions in Challenging Economic Times

Introduction

The landscape of the geo-spatial industry is undergoing rapid changes. Some suggest a geo-revolution is underway. The range of products and platforms is broadening. Existing boundaries are blurring. In parallel, the world is experiencing an unprecedented economic downturn. Start-ups and established businesses are increasingly looking for low cost solutions. This article will look at the current state of the geo-spatial industry. It will discuss some of the software and base map sources given tightening budgets.

Is Google Maps GIS?

Google maps was launched in November 2005. Thus began the rapid expansion of the geo-industry. Yahoo and Microsoft soon entered the market. Mapquest extended its offering and ESRI broadened their business. All made public their mapping API’s. Slippy tiled base maps became easy to add to any web sites. But are these consumer maps, often described as mash ups, GIS? This has been much discussed on the Web (http://highearthorbit.com/is-googlemaps-gis/). Though there are many differing opinions, the general agreement is that the boundaries are rapidly blurring. It might be worth for this discussion, to include these new, currently free tools.

The GIS Stack

The classic GIS stack is usually discussed in terms of the client, server and database. We will add an additional category, that of tools for tiling and caching.

Client
Increasingly geo-companies are focused on building rich Internet mapping applications (RIA). That is, applications which more closely resemble those running on the desktop. Two technologies dominate; those applications which run in the Flash player, and those built using AJAX. The Flash player is an Adobe product, which runs on over 90% of all Web browsers. Applications which run in the player can be written in Adobe Flash or Flex using the Actionscript programming language. Actionscript 3.0 (AS3) is the current version, and the one discussed here. The Flash and Flex SDK’s are free, though their respective IDE’s will need purchasing. AJAX is built on Javascript. It is completely open source, and supported by a large user community. One more RIA technology is worth mentioning. Microsoft recently released Silverlight, in direct competition with Flex. Like Flex, the SDK is free, but not the Visual Studio IDE.



Figure 1 – Some of the wide array of options for building an open source GIS stack

The first two options in the client layer we will discuss are pure open source. They are both the most accessible and flexible solutions. OpenLayers (http://openlayers.org) was developed by MetaCarta (http://www.metacarta.com/) and is a Javascript library. Modest Maps is an AS3 mapping library. Developed in part by Stamen Design (http://stamen.com/), Modest Maps has a sizeable user community, which provides excellent support. Both of these solutions provide full access to the base code. This allows developers to customize at their own discretion. In each case, these clients can access a wide range of different base maps.



Figure 2 – FlakeFinder a ski resort mash up using Modest Maps

Less open but still free are the mapping API’s from Google, Microsoft (MSN), Yahoo, Mapquest and ESRI. They break down as follows:

Google API’s – (http://code.google.com/apis/maps/documentation/index.html) - AS3, Javascript

MSN API’s – AJAX, .NET

Mapquest API’s (http://developer.mapquest.com/) – AS3, Javascript, C++, Java, .NET

Yahoo API’s (http://developer.yahoo.com/maps/) – AJAX, AS3

ESRI API’s (http://resources.esri.com/arcgisserver/index.cfm?fa=applications) – AS3, Silverlight, .NET, Java

The use of each API requires a free key. They provide a range of services including marker overlay, routing, styling and geocoding, The ESRI API’s provide the broadest range of GIS tools. They can also access many different map services including Google, MSN and the GeoWebCache/Geoserver and TileCache/MapServer combinations. Recently added to the ESRI offering is an API for Silverlight.

Tiling and Caching
Geoserver will generate tiles for maps automatically, or use seeding to pre-generate tiles, Mapserver relies on ka-Map for tile generation and viewing.

There are two main caching solutions. Each dramatically improves the performance of any mapping application. TileCache (http://tilecache.org/) is another MetaCarta open source product. It is Python based and supports multiple different rendering backends, most notably MapServer. GeoWebCache (http://geowebcache.org/trac) is written in Java. It caches map tiles as they are requested, in effect acting as a proxy between client and server. Based on the request, if no pre-rendered tiles are found, it calls the server to render new tiles. GeoWebCache works with GeoServer, or any WMS-compliant server.

Map Servers
There are many map server solutions. But, two low cost solutions stand out. First there is MapServer (http://mapserver.org/). This is a very popular open source solution. It runs under the Apache Web Server and is supported by an excellent PHP based scripting language called Mapscript. MapServer is a Web map rendering engine. GeoServer (http://geoserver.org) is the second open source spatial server. Built in Java, it is a complete spatial Web environment, often classified both as a rendering engine and application framework.

MapServer and Geoserver can be integrated easily with maps from Google, MSN and Yahoo. They both compare favorably in terms of performance. Geoserver comes with a management interface, this makes set up and configuration somewhat easier than for MapServer. But the lack of need for an application server and the excellent Mapscript, are among the many attractions of MapServer.



Figure 3 – MarineMap is an RIA which uses OpenLayers and Google base maps.

Databases
Arguably, the most robust spatial open source database solution is the PostGIS/Postgres combination. PostGIS was developed by Paul Ramsey. He provides excellent documentation and support via his blog (http://blog.cleverelephant.ca/). PostGIS is an extension of Postgres. Like ESRI’s ArcSDE is allows relational databases to work with spatial data. Technically though they are quite different, PostGIS is part of the database while ArcSDE is spatial middleware, running as a separate process.

Mobile Platform

The majority of mobile mapping applications currently run on the IPhone. Most have been built using the Google maps Javascript (version 3) API. Maps have been much the focus in the mobile space recently. Nokia have just launched OVI Maps and are in the process of exposing the Javascript API to developers. The AS2 version of Modest Maps allows Flash Lite development, which will run on any handset with the Flash player installed.

Summary

There are many low cost solutions available for building geo-spatial applications. This article walked through the GIS stack, discussing some of these options. Increasingly, as budgets tighten, companies are turning to these open source development tools. Often they are surprised by what they find.

References
http://geoserver.org/display/GEOSDOC/Google+Maps - Geoserver and Google maps integration
http://www.rvaidya.com/blog/gis/2009/02/12/mapserver-using-google-maps-with-php-mapscript/ - MapServer and Google maps integration
http://kelsocartography.com/blog/?p=2257 - Marine Maps discussion
http://spatialhorizons.com/2007/11/14/using-mapserver-2-generating-map-tiles/ - generating map tiles for MapServer using ka-Map.

MarineMap Decision Support Tool


I came across the Marine maps application while looking at the Farallon Geographics Web site. Dennis Wuthrich CEO of Farallon, was at Where 2.0, so I had a chance to ask him about it. You can link to it at MarineMap Viewer
This is a classic example of a Web 2.0 mapping application. It is so well designed, with transitions, drag and drop and combines metadata and the interactive map in such a well designed manner. I'm a huge fan. I'm writing another article, this one for gisdevelopment.net (see next post). While researching the article I came upon an interview on the development of MarineMap at the following link MarineMap Discussion. It is well worth a read.

Flash CS3 Actionscript 3 and Maps

It has been a long while since I worked with the Flash IDE. Going back to Flash MX in fact. I'm approached quite often about Flash jobs. Often they ask for Actionscript 2.0 which I often find a little odd. Must be a good reason. Anyway, I enjoy working with AS3 in Flex so thought it time to return to Flash. I mentioned in an earlier post that I was using both the Flash CS3 IDE and Flex Builder. It took a little getting used to but I'm beginning to get comfortable. I've been building a vector based Flash map application:

Flash CS3 AS3 Map

I'll admit to being rather wrapped up in it. The continents/countries/states are individual movieclips. Metadata is loaded from XML. Flex is being used to tie the main 'all continents' swf to individual continents. There are 8 swf's in all. Its a cool little app I think. Rather than building one honking big swf, break everything into smaller pieces and use Flex as the glue. I have a list of things to do. Adding zoom to the right pane, and overlaying pins (from a lat/long conversion) using loaded XML will make it a really functional application.
I've avoided mentioning animation. I'll admit i'm very interested. In AS2 I avoided it like the plague. In CS3 AS3 it seems easier. I've played somewhat and found it all pretty straighforward. I plan to add a little cool animation to this app...

Tuesday, June 23, 2009

Using FlexBuilder 3 to Debug Flash C3 Projects

So I have finally, after a long hiatus, ventured back to Flash. Flash MX started me on this RIA map adventure. Then onto Flex 2, now Flex 3 and soon Flash Builder (Flex 4!?).
In the day I had little need for animation, so all interactive AS2 development. Flash CS3 is quite different to the MX IDE. Had a yikes moment when I opened it. Slowly it is becoming familiar. I have become so used to the Flex IDE, tips and all that. That editing .as files in Flash seems very awkward. It has taken a minute to get the two working together nicely. One thing which has caused me consternation is the inability to debug a flash .as file in flex. Finally found the solution:
Debug Flash CS3
Joy!

Screen Capture and Resolution

I've been recently both capturing and uploading images to my website. Only just realised the benefits of file-> save for web menu item in Photoshop. The tweeks you can make to an image before saving as an optimised web image are wonderful.
For image capture I use SnagIt 8. A great tool. But the resolution of captured images, DPI and ppi, has always confused me. This terrific article helped to lift the fog:
Resolution DeMystified
It also shows how Photoshop can be used to alter images captured from the Web to be published in print.

Google Maps and GIS

I've been busy writing articles for a number of online and offline geospatial publications. In doing the research for a GIS article, I came across the following interesting debate:

Andrew Turner - Is GoogleMaps GIS?

Sean Gorman - Comment

A good discussion. For those of us who remember the pre-Google 90's. A world dominated by desktop GIS. Things have dramatically changed. Its refreshing. The landscape is so different and, as these articles discuss, the boundaries have blurred between gis mapping and consumer mapping (GeoWeb). At the end of the day, I have always regarded myself as an interactive map developer, regardless of labels.

Tuesday, June 16, 2009

So you want to start a Geo-Business - Demystifying the Landscape


The foundations of some articles I am currently working on:


Introduction



It starts with a good idea, moves forward with research, a business plan, maybe financing. Then coding, testing, sales and marketing. Bingo success!


Not so fast. Let's look a little closer.


Historically, the geo-spatial industry has been dominated by a few large companies. The majority focused on geographic information systems (GIS). With the launch of Google maps, back in November 2005, all that changed. The sleeping geo giant awoke. Suddenly slippy tiled base maps were all the rage. Clever programmers learned how to extend Googles map offering, which encouraged Google to make their API's public. Suddenly, we could all easily add maps to our web sites. Customising these maps to include markers for our favorite restaurants, places of business. Overlaying our running, cycling, hiking routes. Yahoo and Microsoft also entered the market. Mapquest extended its offering. ESRI dusted itself off and broadened its business. A revolution was under way. New geo-spatial companies suddenly started appearing. Geo-communities and conferences were enthusiastically launched. Great things were written about the future of the geo-spatial industry; growth, potential avenues of development, the expanding geo-workforce.


Geographers finally felt vindicated. No longer perceived as only 'knowers of capitals of the world'. We had made our mark. Our importance could be demonstrated.


So the geo-revolution is here. Back to our geo-spatial business. Let's plan it here and now. See what we find.


The Idea


So what is our idea? Maybe we should choose something from the current hot topics and refine from there; local search, mobile, data mining.


Let’s consider the current state of play. The common consensus is that, in terms of revenue, GIS amounts to 20% of the market. Consumer mapping applications now dominate.


Let’s presume we have a really great idea (we’ll have one or two later in the article fear not). So have others had the same idea? Time for a little research.


The Research


We need to look at what others are doing. Maybe we can learn from them. Certainly we can see if others are doing what we propose. Define what makes us, or could make us, unique over our competition. Much of this will feed into the business plan. It may also drive us back to the drawing board. Dig deep here. Much can be learned. Time and money saved.


The Business Plan


No need not dwell for too long here. You’ll find a multitude of resources. We will discuss two of the more important sections later. Writing a good business plan is the single most important part of building our geo-spatial business. It is the blueprint. This will guide all work as we move forward. Get advice, don’t rush, be thorough, refine where needed. A poor business plan often leads to a poor business. Start with this:


“Can you describe the business in one sentence and have others understand?”


Making Money


Hmm, making money. Why worry about this now? The ‘build it and they will come’ approach is so much easier. Leading usually to business failure!


This topic should take pride of place in the business plan. In the geo-space, it is a particularly well visited topic. Reviewing opinions and looking at how our (successful) competitors are making money, might prove rewarding.


Three of the most common revenue models are; advertising, charging licensing fees and payment for services.


The Application


Fantastic. We have done our due diligence. A thorough pan is in place. No stone has been left unturned. At last its time to code.


But wait! The geo-technology landscape has broadened. Many choices are now available to us. We need to base our technical decisions on both requirements and cost. Development will be our most expensive pre-launch expense. So think carefully before jumping.


Let’s discuss some of the areas we need to consider.


Rich internet applications (RIA) – Much referenced, but not well understood. Think about the difference between applications which run on a desktop and those which have traditionally run in a browser. Browsers can be thought of as an operating systems, far more limited and limiting than that running your PC. RIA’s bridge this gap. They extend what can be done by browser applications. From asynchronous calls to drag and drop. So what technologies are we talking about here? Best known are those which run in the Flash player - developed in Flash or Flex - and AJAX (a web standard supported by Javascript). So do we wish to build an RIA mapping client?


Open source verses proprietary – We’ve all probably read about the pros and cons. Certainly both have their benefits and drawbacks. Usually discussions center around cost, documentation and support. We need to consider our options carefully, not only in terms of client and server technology, but data. For GIS do we go with the ESRI ArcGIS stack or maybe look for a pure open source option? Maybe even a combination. Consumer maps could be built using the Google, Microsoft, Mapquest or Yahoo API’s or possibly Modest Maps.


The Data – We have no application without good data. But what form does that data take, where is it stored and what is the source? GIS applications usually rely on shapefiles and geodatabases. Mash ups will use a variety of sources RSS/GeoRSS, maybe RESTful calls to Flickr or Trulia. Is the data free? Do we need to gather and generate it? Where will we get our base map?


Mobile verses Web – with the launch of the IPhone, mobile application development has taken off. Most mobiles now have built in GPS. Thus the potential for mapping applications is considerable. Should we also be considering mobile as a potential platform for our application? Will our mobile application mirror our web application, or be complementary?


At this point we could look in more depth at the many options possible from the above discussion. To avoid this potentially long laundry list, see the following web page:


http://www.flexmappers.com/mapstutorial/


This walks you through some of the options.



Getting Noticed


We have arrived. Under budget and proud of our, oh so useful mapping application. Now for the exciting launch and promotion. Back to our business plan, under promotion an empty space! One hopes not. Without great marketing good ideas die and great products disappear. Let’s cover briefly some of the options. Traditional promotion remains important, but here we will focus mostly on online advertising. We can break things down as follows:


Search Engine Optimization (SEO)


“your goal is to rank for free within the organic search results for target keywords related to your Web site”


Ranking means we appear high up in a search engines listings, after a relevant keyword search. Put simply SEO is about business relevant web page content, good metadata and back links. Time need be spent generating not only a memorable business web site, but one that is optimized. Choosing appropriate keywords is a critical part of this process. There are a range of good tools to measure SEO. Google provide analytics and a toolbar, which includes the all important PageRank. There are also a variety of useful browser plug- ins including SEO for Firefox. Many write their own tools, tracking for example server and database statistics.

Social Media Optimization (SMO)


a form of marketing that focuses on generating traffic and buzz by participation in various social media Web sites”


SMO is really an extension of SEO. It involves joining social networking communities. The most popular sites are as follows:


Facebook - interact with current and prospective business associates.


MySpace – a vehicle to manage reputation, build brand recognition and promote products.


StumbleUpon – includes a toolbar to discover and rate web pages, videos, photos. Getting your Web assets submitted to StumbleUpon is an effective way to generate traffic, and build backlinks.


MyBlogLog - installed on your blog or content Web site. Shows your visitors the most recent MyBlogLog members who have accessed your Web site.


Twitter – micro-blogging or ubiquitous text messaging.


LinkedIn – business-oriented social networking


Del.icio.us - a popular social bookmarking Web site. Allowing users to browse the bookmarks of other people with similar tastes


YouTube – Video posting service. Uploading interesting videos here can help share company information and generate interest.


Digg – news stories are submitted, then voted on, and maybe promoted to the front page.


Phinn – similar to Digg but aimed at interactive marketing professionals.


Search Engine Marketing (SEM)


“your goal is to pay for placement by competing with other advertisers for ranking within the sponsored results section of search results.”


SEM includes pay per click (PPC) campaigns. Many suggest this is a vital part of any online promotional effort. Google AdWords is the largest and most popular PPC advertising platform. How it works is that you bid on a group of carefully chosen words. If you are successful you then generate an ad, which is carefully worded using your keywords. When a user conducts a search using any of these keywords, your ad appears on the page. Each time a user clicks the ad you pay Google the fee agreed in the bid. You can target your ads in various ways. The most common form is geo-targeting, which relates nicely to our discussion. One more point. Make sure the landing page from an ad click is well constructed, contains our keywords and the text relates to the ad copy.


Other areas to consider under SEM are indexed images in Google Images and optimizing your site for the EBay and Craiglist search engines.


Additional Promotional Tools


Blogs

Blogs are a great way to share announcements, technical information, thoughts and news. Most popular blogging tools are Googles Blogger and WordPress. The goal of our company blog is to generate content that is so interesting and useful that others link to our Web site. Remember to always write search engine optimized posts.

Technorati is a popular search engine for searching blogs. If you can get your blog to rank well on Technorati, you can gain considerable exposure and traffic.


Conferences

There are an increasing number of international geo-spatial conferences. Where relevant, you should attend as many as possible. They are great way to network, stay up to date on new developments and assess the competition. Maybe present, set up a booth, sponsor an event.


Other

We touched on only a few key promotional tools. There are many others; starting online forums, writing articles, to name but a few.


Pulling It all Together


Let’s be bold. From our discussion let’s discuss starting that geo-business. For the sake of our discussion we will talk about two potential businesses; GeoCommunities, a local data consumer mapping offering and the GIS based MapMyWalk. In each case we will presume a very limited budget.


GeoCommunities

Our focus; the consumer market. We are thinking in terms of a local data mash up.

Our competition includes Mapquest, Google, Yahoo on a big scale. And smaller companies like Everyblock. So how are they making money and what makes our offering unqiue?


Everyblock is in an interesting position. They have built a hyperlocal search site providing news and other relevant local data. Their revenue model is still be decided, but likely to be ad based. Their code base will open sourced in June 2009. A potentially challenging event. The search based companies use purely ad driven revenue models. They include ads within their search page. Thus opening local search in Mapquest will show ads intermingled with search content. Increasingly these companies are looking to make ads relevant to a users search. Thus a restaurant search in San Jose will also show ads for local ATMs and movie theaters. Maybe we should look more closely here.


Let’s focus on our own local market. The place we know best. Can we provide data that will be useful to the local community? Maybe data we gather, or that out of the reach of the big search engines. We might encourage our growing user base to provide data on local events, recommendations, concerns. Let’s go with an ad based revenue model for our business. But focus on local ads combined with local content. Thus a search for preschools, will map all in the defined area, and include ads for select paid preschool advertisers.


We want the application to be as user friendly as possible. A rich Internet mapping application is our first choice. Thus we will be using Adobe Flex 4 to build our user interface, purely based on familiarity. Given our budget we favor open source. The Flex SDK is open source, though the IDE is not. Modest Maps will be our Flex mapping library. For our base maps we will use roads data provided by Open StreetMap.


It’s worth mentioning the API’s provided by the likes of Google. These provide excellent tools, making development quick and easy. There are two problems though. Their API is locked. Meaning customization is impossible. Also, and of greater significance, their (free) data may at some future date carry advertising. Thus zooming to a point of interest may also reveal markers for ‘the best pizza joint in town’! Potentially a big turn off for users.


Much of our overlay data will be pulled from RSS/GeoRSS feeds and RESTful calls. But we will need to store and update data in a database. Again turning to open source, we will use MySQL. There are other options, notably Postgres. Since we will be using PHP in the server layer, running on Apache, this integrates well with MySQL. PHP will both help overcome some of the security issues we encounter with the Flash player, and will interact with the database.


So the coding begins. A test application is built:


http://www.flexmappers.com/myadvancedmodestmap/


Note, a tutorial on how to start building a mapping application using the architecture proposed here is available via the Adobe Flex Developers Center or the flexmappers blog.


MapMyWalk

Our second company will be built using GIS. The company specializes in route mapping, but aimed at pedestrians. For example, a tourist visiting an unfamiliar city, wishing to see some of the historical city buildings. Our service will allow users to either map a route themselves or select from a list. Points of interest (POI) on routes will be included. Routes stored in our web application will also be available via a mobile device.


How will we make money? We will use a subscription model. Thus, when visiting our Web site, users will be able to create routes and view a subset of predefined routes for free. A subscription will give them every predefined route for available cities and, most importantly, the ability to save ‘myroutes’. Accessing these routes via their mobiles.


Let’s look at our competition. Schmap are doing something similar to what we are proposing. So how will we be unique? In a number of ways. First we will actually map (shortest) routes and not just simply add map markers. Second, our UI will be richer and more interactive. Third, we will use a highly detailed base map.


Let’s jump ahead. So we’ve written our comprehensive business plan. Included a thorough promotional campaign. It’s time to think about the application. The ESRI ArcGIS stack is certainly an option we should seriously consider. ESRI have written excellent RIA API’s and ArcGIS can handle all our routing needs. But, since we are tight on budget, we will first look at our open source options. One of the more popular open source GIS stacks has been constructed using Openlayers, Geoserver, GeoWebCache, PostGIS and Postgres. Data is a key consideration. One of the factors which makes us stand out is our detailed base maps. It’s likely we will need to buy this data. Companies like UnitedMaps provide data with this level of detail. We will need to budget for this expense.


There is a very active community using the various open source components in this stack. A number of the core developers for GeoServer and PostGIS work for a group called OpenGeo, and provide excellent support. We will need to work a little harder to get our stack capable of providing our routing needs. For example, the use of the pg_routing extension for Postgres.


We would need another article to walk through these development steps in more detail. One last thing to add. Mapping options on mobiles remain somewhat limited. Phonegap is an open source project of potential use. The Actionscript 2.0 library of Modest Maps can be developed in Flash Lite and runs on any phone which has the Flash player installed. Lastly, Nokia are about to release a mapping component within OVI. This may also prove useful, as long as we can access our server components.


Promotion, of course, will be crucial to the success of both companies. After all, we won’t have a highly paid sales team. A key component will be attracting visitors to out web site. That’s where our carefully planned SEO, SMO and SEM campaigns will be essential.


Summary


This article has walked you through setting up a geo-business. The market has broadened. Offering opportunity and increased complexity. Hopefully, this discussion has helped demystify the current landscape.


References


http://www.flexmappers.com/mapstutorial

Wednesday, June 10, 2009

Interesting API's


I came across a couple of interesting pieces of work today. The first is by those great folks at DMSolutions. They are the core maintainers of MapServer, do some great work in their own right and have the coolest CEO in Dave McIlhagga. They are about to launch MapSherpa, a nice new way to create custom maps online. They are opening the API to developers.

AMEE, a British based company, also have an open API. Their aim:

"to map, measure and track all the carbon and energy data on Earth"

I will be taking a look at each. Maybe hooking a Flex client on the front end. Some interesting possibilities ..

US Govt and Geospatial

Pulled the following from Ed Parson blog:

From the FAQ of the Obama administrations new website data.gov launched today..

“What are some resources for viewing geospatial datasets?

The geospatial datasets available on Data.gov are provided in up to three open file formats: Keyhole Markup Language (KML), Compressed Keyhole Markup Language (KMZ) and ESRI Shapefile. These datasets are all viewable in many commercial and freely available applications. More information about Geographic Information System (GIS) software can be found by doing a web search.”

Tuesday, June 9, 2009

Making Money from Map Mash Ups

Oh, the so often discussed Where 2.0 topic. I found an interesting article on this subject on CNet. Its a little dated, but worth reading:

Mashups for fun and profit

Stand out quotes:

"they're fairly easy to create, and it's not that difficult for someone to duplicate the more successful ones ... You are in fact a reseller of that (mashed up) content."

"visualizing houses or jobs on an online map is merely a feature. But if a Web site shows home values in low-crime areas within a certain price range and with high-scoring elementary schools within 30 minutes of a workplace, then that is an application that could conceivably be monetized"

"The challenge with a mashup is it may not fully hold its own destiny. They are somewhat at the mercy of the open components that the Googles, Yahoos and Microsofts have provided"

Hmmm, worth mulling over me thinks...

Modest Maps and ArcGIS


I've been looking into hooking the Modest maps Flex client to ArcGIS. Just finished a basic demo for United maps.

I edited a dataprovider.as posted on the modest maps discussion board. Here is the code:

package com.modestmaps.mapproviders
{
import com.modestmaps.core.Coordinate;
import com.modestmaps.mapproviders.AbstractMapProvider;
import com.modestmaps.mapproviders.IMapProvider;
import com.modestmaps.geo.LinearProjection;
import com.modestmaps.geo.Transformation;

public class EsriMapProvider extends AbstractMapProvider implements IMapProvider
{
public function EsriMapProvider(minZoom:int=MIN_ZOOM, maxZoom:int=MAX_ZOOM)
{
super(minZoom, Math.min(20, maxZoom));

var t:Transformation = new Transformation(0.3183098861837907, 0, 1, 0, -0.3183098861837907, 0.5);
__projection = new LinearProjection(0, t);

}

override public function sourceCoordinate(coord:Coordinate):Coordinate
{
var tilesWide:int = Math.pow(2, coord.zoom+1);

var wrappedColumn:Number = coord.column % tilesWide;

while (wrappedColumn < 0)
{
wrappedColumn += tilesWide;
}

return new Coordinate(coord.row, wrappedColumn, coord.zoom);
}

public function toString():String
{
return "ESRI";
}

public function getTileUrls(coord:Coordinate):Array
{
//return [ "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer/tile/" + getZoomString(sourceCoordinate(coord)) ];
return [ "http://..../ArcGIS/rest/services/MUC_Basemap/MapServer/tile/" + getZoomString(sourceCoordinate(coord)) ];
//return [ "http://..../umapserver/mapdijits/config/proxy.ashx?http://..../ArcGIS/rest/services/MUC_Basemap/MapServer/tile/" + getZoomString(sourceCoordinate(coord)) ];
}

protected function getZoomString( coord : Coordinate ) : String
{
var sourceCoord:Coordinate = sourceCoordinate(coord)
return (sourceCoord.zoom) + "/" + (sourceCoord.row) + "/" +(sourceCoord.column) ;
}

}
}

Where 2.0 Thoughts 2

Still mulling over the conference. Local search and mobile stick in my mind most. As Paul Ramsey (see earlier entry) mentioned, money and maps remains foremost in peoples minds. It still feels as though people are scratching around for good ideas. The big boys continue to lead the way. With but a few upstarts joining the exclusives party. For me chatting with attendees was my highlight. Half the expected number attended this year (500 I believe), which made for easier conversations and a more personal atmosphere.

I was surprised by the number of non-geo people there. There is certainly a wide appeal to mapping and the recognised growth potential.

3-D was much mentioned also at the conference. I still have mixed feelings about 3-D. Seems like eye candy to me. Like VRML. I think real apps will come out of this. But I care little about seeing a distorted map of my neighbourhood. Nothing I saw at Where made me change my opinion. Let's make useful apps which are also just cool looking.

Mapping Presentation


I've just finished work on a presentation on 'Internet mapping application development options'. So open source and proprietary tools currently available. It is an ever more confusing landscape.

The presentation hopefully helps to demystify things somewhat. See:

http://www.flexmappers.com/mapstutorial

Stamen at it Again

Mike and the Stamen team are showing us all the way again. They have updated their crime spotting site. It is just brilliant I think; design, interactivity, the lot.
Take a look at:

http://oakland.crimespotting.org/

Wednesday, June 3, 2009

Where 2.0 Reflections 1

Just read an interesting article by Paul Ramsey on the Where conference at:

http://www.directionsmag.com/article.php?article_id=3167

I'll give my thoughts in another post. Paul's themes:

much chatter on monetize and mobile ... twitter ... so many geolocation API's ... data mining ... many predictable and dull applications

The quote I most liked was from IRC. Paul paraphrases:

"location based social networking start-ups are all solving a problem (keeping in touch with, and meeting up with, a diverse network of friends in a big urban area) that is of greatest importance to a fairly narrow cultural niche. Why are we devoting so much venture capital to solving the social problems of young white collar professionals who have recently moved to a new city?"

Tuesday, June 2, 2009

FlakeFinder

I'm so behind on blog updates. Today is a multiple entry day. I've been working with Leif at Arkade Magazine; its a free snowboarding magazine distributed in the Western US:

http://www.arkademag.com

Leif wanted to add an interactive map to his site; one which shows ski resort locations and links in resort specific weather, webcams, video, trail maps, up to date snow conditions and depths. The site was launched in January see:

http://www.flakefinder.com

It's work in progress. But this is an open source mash up. It would be very cool done on an international scale ...

Adobe Flex Developer Center

I'm about to be published. No not a book. But an article. Adobe are assessing a first draft of an article I wrote using the soon to be released Flex 4 framework. Its an introduction to developing a rich internet mapping application using Modest Maps. The release date is mid July. I'll provide a link closer to this date. The article links to running versions of the applications, the code can be also downloaded from here. Take a sneak peek at:

http://www.flexmappers.com/mymodestmap

http://www.flexmappers.com/myadvancedmodestmap

Where 2.0

I'm just back from the Where 2.0 conference. Its been over 2 years since I have attended. This years was particularly excellent. It is still relatively small. And attended by some of the key people in the industry. They are all very approachable. So its a great chance to chat. The videos of presentations are all available on the web site at:

http://en.oreilly.com/where2009

The videos give a feel for trends. I'll give more thoughts on the conference and some of these trends in subsequent posts.