Beyond Mapsicle 1.0 – we need your help

Mapsicle 1.0 is live and we’re already thinking about how to make it even better. Its opensource, so we are looking to what features developers want as they look to use it to build applications.

Here is a list of enhancements we’ve been thinking about:

  • Reverse Geocoder for Mapsicle – We want to be able to “click anywhere” on Streetview and return the relative position in 2d space where that point is a lat long. This functionality would help developers to enable users to click on streetview as an easy way to add content.
    This presents a number of challenges as its difficult to be able to translate the depth of the field of view relative to the current position. Is where you are clicking in the next block or across a field or far away from your content location?

    Its hard to calculate – You could use a vector/line pointing out from the location intersecting where you clicked on the map and then geocode along that line to find a set of lat / longs to estimate the location you are looking for. Also you could use the a normal map to triangulate position in 2d space. Or could the streetview navigation polygon help to determine the lat long / position on the surface of the building?

  • Polygons and Polylines – We need to add polygons and polylines to Mapsicle. Imagine being able to create a polygon to match the shape of a building or outline a floor of a building. You would need to be able to click on the polygons like selecting a floor on a building.

    If we create polygons and align them to the surface of a building then we can transform images and create virtual billboards.

  • Height – What’s the height of a position relative to the ground. This would allow applications to figure out the height of a point on a building.
  • Advanced Info-windows – Integrate the advanced info windows as seen in the native google maps API into streetview.

We need you help, we’d love your involvement in making Mapsicle and streetview applications even better.

Introducing Mapsicle – a Street View library

Ever since Street View came out in New Zealand, we’ve been itching to play around with StreetView. As part of our Summer of Code project, Stephen built Street View prototype called Mapsicle. Since then Mapsicle became a pet R&D project at ProjectX.

Today, we’d like to announce the V1 release of Mapsicle as part of the Gmaps-util library.

What can you do with Mapsicle?

Using Mapsicle library, you can do a lot of interesting things:

disneyland

  • Create and show markers at various locations on Street View like at Disneyland Paris

mapsicle_icons

  • Show markers that are outside of the field of view like the NZ flag marker above.

info_window

  • Create info-windows at locations.

Getting started

Getting started on Mapiscle is really easy. To add Mapsicle to any page simply:

  1. Download the library from SVN for Gmaps-utils library .
  2. Include the mapsicle.js in the document header
  3. <script src="mapsicle.js" type="text/javascript"></script>
  4. Define a ‘div’ element on your page to contain the Mapsicle object
  5. <div id="mapsicle_div" style="width:600px;height:400px;"></div>
  6. On the page load event, create a new Mapsicle object, with the first param being the id of the container ‘div’ element,
    and the second being the init a GLatLng object for the inital location.
  7. function init(){
        var mapsicle = new Mapsicle("mapsicle_div", new GLatLng(-41.292579, 174.779075));
    }

Simple Example

This example shows the basics of adding a marker and location to the Mapsicle view.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>

        <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
        <title>Mapsicle</title>
        <script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_API_KEY"></script>

        <script type="text/javascript">
            google.load("maps","2");
        </script>
        <script type="text/javascript" src="mapsicle.js"></script>

        <script type="text/javascript">
            function init(){
                var mapsicle = new Mapsicle("mapsicle_div", new GLatLng(-41.292579, 174.779075));
                var marker =  new SVMarker({
                    showOffscreen:true,
                    iconURL:"images/mapsicle_marker.png",
                    width:150,
                    height:150,
                    scale:0.2
                });
                var location = new SVLocation({
                    lat:-41.29249,
                    lng:174.778889,
                    marker:marker
                });
                mapsicle.addLocation(location);
            }
        </script>
    </head>
    <body onload="init();" onunload="GUnload()">

        <div id="mapsicle_div" style="width:850px;height:400px;"></div>
    </body>
</html>

View example (simple_demo.html).

Mapiscle possibilities

We believe there are loads of possibilities in the types of mashups and map applications that you can now create with Mapsicle. Add to that  to the Street View partner program, and Mapsicle will help to launch a new generation of mashups.

Here are some ideas :

  • Annotate locations – Need to annonate a building or a place now you can like or demo – StreetTag.net
  • Advanced Store locators – Create store locators showing you exactly how to get to your store from their current location.
  • Interactive tours – Combine Street View with content to show people interactive tours of the streets of the world.
  • Interative kiosk – What about Street View as a touch screen information kiosk.
  • Digital signage – Create interactive advertising on Street View using video and images.
  • Games – Build a treasure hunt application or what a game to drive around Thunderhill raceway ?
  • Mashups – How about adding Street View to your mashup ?

Contribute

It is early days for the library, and we have a bunch of features that we are working enhance what you can do with Street View. You can contribute and enhance Street View as part of the Google Maps Utility library. We’d really love your feedback to help us improve Mapsicle and build more cool apps for the Google maps platform.

Introducing Cycling and Walking journey planner

Recently, we released the cycling and walking journeyplanner for our clients the Greater Wellington Regional Council. The journeyplanner website is an advanced map mash-up show advanced directions from different parts of the  region. What makes this site special is that we have combined a lot more data from the councils to include walkways, cycleways, tracks and extra information from all over the regional.

There are a number of unique features:

Picture 14

Routing through the Botanical Gardens

  • Suggested journeys from all over the region to highlight some of more scenic walks around the region.

Picture 21

Picture 22

  • Draggable routing over all streets, tracks and walkways around the region. We build our own custom routing engine with draggable routing front-end over google maps.
Routes are fully drag-able

Routes are fully drag-able

Picture 27

Simply select and hold the line, drag to where you would like

Picture 28

Then let go. The route and description will automatically update.



  • Elevation graph with live feedback on the map. See the little icon travel across the map as move across the elevation graph.

Picture 29a

Picture 32a

Picture 15

  • Calorie counter to figure out how much energy you could burn.

Picture 17

This has been one of the bigger projects for ProjectX and we’ve got a number of people and partners to thank.

Jill, Simon and Ian from GW. Thanks for your belief in the project and the patience to see it through to end, from wireframes to through all eight iterations until the final release. Thanks to Michael for being our physical location guru who helped connect the physical world to the data files.

Big thanks to the ProjectX team for the work on their hard work on project – Thong, Tim, Gaetan, Stephen, Cameron, Boris, Felix, Raja and Nahum. Dr Geof Leyland from Incremental for the providing our routing algorithm and advice on making it super-fast.

Our design team via Lushai user experience team- Lulu for her interaction design, and wireframes Amiria for the lead graphics, Brent and Chika for supplementary graphics.

Deployment Script Spring Cleaning – GitHub

If you are a Git user and deploying using Capistrano, you might be interested in this article from GitHub:

Deployment Script Spring Cleaning

Read the rest of this entry »

Rails 3 updates

Rails 3 is a rewrite / merger with Merb, and includes Yehuda Katz, Merb lead developer working on it full-time. Here are some posts which were published recently:

http://yehudakatz.com/2008/12/23/rails-and-merb-merge/

http://weblog.rubyonrails.org/2009/7/30/community-highlights-yehuda-katz

http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/

http://www.engineyard.com/blog/2009/6-steps-to-refactoring-rails-for-mere-mortals/

There are lots of lessons and techniques in ruby, rails and general programming to be learnt from these posts. Enjoy!