Edward has commented on the following diary entries

Post When Comment
Thailand Mapping + London Mapping TONIGHT over 4 years ago

Congratulations on getting married.

Last Tuesday's meet-up. Рыбинск. Boris bikes. etc. almost 8 years ago

I started building a browse interface for Google to crawl. I didn't finish it:

Nike Grid - maps secretly based on OSM over 8 years ago

Wikipedia maintains a wiki page that records unauthorized use of their data. We could do the same.

More braided streets over 9 years ago

Where are they? I thought we'd fixed all the braided streets.

UK Rail Network over 9 years ago

Looks nice. Can you change it to include the River Thames?

Cambridge restaurants almost 10 years ago

Well done, that's excellent work. What's next, pubs and hotels?

Lots of bits in County Tipperary about 10 years ago

Hi Andrew, if you find yourself in Tipperary again can you get a photograph for


Big red postboxes about 10 years ago

If adding postboxes can you include the reference number on the postbox? They look like "N1 157" and are entered like "ref=N1 157".


Moving Forwards about 10 years ago

I put in some postboxes, they are in green in these lists: and

Main braided street list done over 10 years ago

Well done, keep up the good work.

Working on "unbraid tool" over 10 years ago

Actually, just take a look at

Working on "unbraid tool" over 10 years ago

Excellent, this is been on my todo list. Here is some Perl to find braided streets in a OSM data dump:


use strict;
use warnings;

open my $fh, "data.osm" or die $!;
my $state = 1;
my $way_id;
my %node_way;
my %way_node;
my %way_tag;
my %node_loc;
while (<$fh>) {
if ($state == 1) {
if (/ $2, lon => $3 };
/^ !) {
$state = 2; next;
close $fh;

my %look_at;
while (my ($k, $v) = each %node_way) {
@$v > 1 or next;
$way_tag{$_}{highway} and $look_at{$_} = 1 for @$v;

my %seen;
$seen{$_} or linked_ways($_) for keys %look_at;

sub api {
my $way = shift;
return "$way_tag{$way}{name} ([$way $way])";

sub linked_ways {
my $way = shift;
my $name = $way_tag{$way}{name} or return;
$way_node{$way} or die $way;
my %cross_way;
foreach my $node (@{$way_node{$way}}) {
my @ways = grep { $way_tag{$_}{name} } @{$node_way{$node}};
@ways or next;
$cross_way{$_}++ for @ways;
while (my ($k, $v) = each %cross_way) {
$v < 3 and delete $cross_way{$k}
%cross_way or return;
my $loc = $node_loc{$way_node{$way}[0]};
print "# [$loc->{lat}&lon=$loc->{lon}&zoom=17 map]: ";
$seen{$_} = 1 for keys %cross_way;
print join (", ", map api($_), $way, keys %cross_way);
print "\n";

JOSM Yahoo tracing over 10 years ago

There is no way to get JOSM to remember the Yahoo imagery between sessions.