biote



progressive design and web

we design effective communications solutions.
we develop websites and applications, including dynamic
content, e-commerce and hosting.
Read more about us or what we do.

Yes, we also blog. 

 

 

Making your logo ethical

I had this thought a number of years ago, that companies can freely use any iconography they like within their branding. For instance, they could use a kiwi or a lion in their logo or as a character. There’s little ethical consideration to this – the main concern is legal as existing trademarks. But there’s no cultural motivation to check this with anyone, which is quite different to using indigenous cultural symbolism (ok, there are no laws about this, but unconsidered use doesn’t do you any favours). So I thought, how ethical is this?

Human activity has instigated a new era of extinction and most of the world’s charismatic mega-fauna are threatened… well, it’s not just them – the world’s biodiversity is threatened. (We had the pleasure of helping DOC out with some of their Year of Biodiversity promotion.) So who pays the costs of conservation? Governments, environmental preservation agencies? So why not businesses who extract symbolic value from an animal?

This was the exact idea that motivated Save Your Logo, which set itself up to help involve companies to contribute and support actions of biodiversity. Neat! Of course, they have a general focus on key endangered species – not everything is covered.

The ideal would be for companies to be aware of – and grateful for – the cultural symbolic value that supports their business proposition. So, if you’re a business, or a designer, have a think about the ethical implications and find a way to support appropriate preservation initiatives. No doubt there are PR benefits, but the real benefit is that you are not just thinking of your own fate but acknowledging the relationship and shared fate you have with another entity in the web of life that connects us all.

Effective branding for non-profits

We’ve produced communications materials for a wide range of non-profit organisations (that’s the kind of work we do!). It always surprises me how disorganised their identities are –  often poorly supplied logo files and poor visual documentation. Sure, we understand that many non-profits have tight budgets, but a little invested in the organisation’s key visual indicator can pay off dividends. It’s not just about looking good though – it’s about communicating effectively – something that has become increasingly important for non-profits in a message-saturated mediascape.

Three key ways to support your organisation’s image through brand use are:

Keep it consistent. Inconsistency looks messy and projects an image of a disorganised organisation. Consistency is about knowing what you’re communicating and to whom, and keeping the message on-target – and the same each time. If you’re not keeping your message clear and consistent you end up diluting its impact and confusing your audience.

Use a style guide. This is simply a document that acts as a template for how your logo, fonts, colours, images and application should be used. It helps keep things looking consistent. Many clients we’ve worked for had a logo but no information on how it should – and shouldn’t – be used. The result is often a random array of application. Developing a style guide is not difficult and will help you be more effective in the long run. Download an example of a simplified style guide.

Know when to DIY and when not to.
A style guide can also include templates for basic in-house production of items. This means you can still do it yourself AND keep it consistent (great!). However, we see clients trying to produce important external communications themselves – often in Word! If it’s important, believe me, you’re better to hire an expert and get in done right – using the right tools. The end result is going to be much more effective in looking good, getting the message across – and getting the intended results.

Google maps v3 – a nice resizable draggable map canvas

http://www.wolfpil.de/v3/map-in-a-box.html

Wolfgang Pichler has made a map canvas that is draggable and resizable. Cursor movement is detected and drag or resize is implemented depending on where the click originated.

Google maps api v3 – add getBounds to polylines

In v2, polylines had a getBounds() method, but (currently – Sept 2010)  that doesn’t exist for v3 polylines. Similarly for polygons.

Fortunately there is code in the extensions library to add the method to polygons by prototyping.
see http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js

Pretty simple – it just creates a new bounds object,  gets the paths for the polygon, and iterates through those to get each path (in case its a complex polygon).  At each point in each path, it extends the bounds.

For some reason, they didn’t also write the code for polylines. Its similar, but polylines don’t have multiple paths so its easier. Here’s my adaption:

// polyline getBounds extension – adapted from: google-maps-extensions by stu sontier
// http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js

if (!google.maps.Polyline.prototype.getBounds) {
   google.maps.Polyline.prototype.getBounds = function(latLng) {
      var bounds = new google.maps.LatLngBounds();
      var path = this.getPath();
      for (var i = 0; i < path.getLength(); i++) {
         bounds.extend(path.getAt(i));
      }
      return bounds;
   }
}

Route Boxer – A way to search along a given route for points nearby?

Route boxer is a class in Googles utility library, that “generates a set of LatLngBounds objects that are guaranteed to cover every point within a specified distance of a path”.

The documentation includes a good example and a great overview of the way it works.

The source code is well documented too.

For a current project, I need to take a journey, plotted with DirectionsResult, and find out if any parts of that journey intersect with one or more (previously inputted and stored) routes.
Detecting this intersection may be a job for RouteBoxer, or for parts of it. RouteBoxer starts by creating a grid of cells across the bounds of the given polyline, and then determines which cell each vertex is in. This gives a cell mapping of the polyline. RouteBoxer goes on to further analyse the cells, ending up with a series of boxes outlining the line by up to ~3x the given distance.
Using the example, but changing the ‘box within’ distance from the default 20 miles, to 0.1 miles, RouteBoxer took a pretty long time to complete. But on the short journeys that I’ll be analysing, RouteBoxer handled 0.01 miles (16 metres) fairly well.

But in my project, it may be enough to do the first steps, create an array of cells of a given size that contain the journey, and compare that array against a similarly derived array for the stored routes. Any cells that appear in both arrays are indications of intersection (as long as the given distance is small enough for the result to be a good approximation.)
Will report back after experimentation.

Navigating the directionsService results – route; leg; step; path

http://www.geocodezip.com/v3_directions_custom_iconsC.html

Larrys example shows how to iterate through the DirectionsResult legs and steps. He does this so that he can go through what is returned from a DirectionsRequest, and use his own start and end markers. If he went with the default google markers he could get away with using DirectionsRenderer to show the route and the instructions.

This code is a good intro to understanding the inner contents of the DirectionsResult, right down to the points in the path of a step.

Point within circle detection in api v3

maps api v3 has introduced circle and rectangle overlay objects which make it easy to create circle and simple polygons.
Detecting a point within a standard google.maps.Polygon can be done by analysing the points with the Ray Cast Algorithm (see blog item Point in Polygon checking … ), but there doesn’t seem to be any way to access points directly with the overlay objects, so detecting a point within circle and rectangle overlays doesn’t seem to be possible.

As far as I can see, the best way to have a circle drawn on the map and then do point detection within, is to fake a circle with google.maps.Polygon so that matt williamsons containsLatLng method can be used.
And the following page shows how to draw a circle with 100 points and google.maps.Polygon

http://www.subtlysimple.com/projects/circleoverlay/

Editing polylines/polygons in maps api v3

In maps api v2 we had the ability to enable editing on polylines and polygons. This allowed points on the object to be dragged, deleted etc, and also put draggable mid-points on the line, allowing entry of additional midpoints (and dragging of these).

The best simple example of this [v2] was the mymapstoolbar (emulating mymaps functionality)
http://gmaps-samples.googlecode.com/svn/trunk/poly/mymapstoolbar.html

So far, api v3 does not have enable editing method on any objects, but several people have had a go at replicating the functionality:

http://www.shanetomlinson.com/static/gmapV3EditablePolys/html/test.html
By Shane Tomlinson. Simple v3 version that allows markers on an existing polyline to be dragged, new points to be added, and line colour changed. Code posted in github

http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.html
This one is for polygons only and allows point-drag and new points to be added, removed. It works by using an MVCarray to hold each point, and creates marker click listeners for click (remove point) and dragend (at point at this position), and map click listener to add a point.

http://nettique.free.fr/gmap/toolbar.html
An api v3 implementation of mymapstoolbar giving very similar look and usage

http://nettique.free.fr/maps/OpenLayersEditingToolbar.html
Similar edit toolbar for OpenLayers

http://ekelschot.eu/maps/enableEditing.html
And another, from peckham. code posted in snipplr

Point in Polygon Checking With Google Maps

http://appdelegateinc.com/blog/2010/05/16/point-in-polygon-checking/

App Delegate ( mattwilliamson) adds the method containsLatLng to polygon object. Properly done, with Ray Cast Algorithm.

Note that this will not work on the Circle and Rectangle objects, only if circles/rectangles are drawn as polygon objects

Google Maps API v3 Drawing Tool / digitiser

http://www.birdtheme.org/useful/v3tool.html

Implements drawing of polylines, polygons, polygons with holes etc on the map. Coordinates are given so they can be used to draw the shapes on other maps. Also will output javascript or Bing code

Borrows/implements an ‘edit polyline’ for API v3 (as this is not available directly in v3 as it was in v2)