Edward has commented on the following diary entries

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

Congratulations on getting married.

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

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

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

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

More braided streets about 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 over 9 years ago

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

Lots of bits in County Tipperary over 9 years ago

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


Big red postboxes over 9 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 over 9 years ago

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

Main braided street list done almost 10 years ago

Well done, keep up the good work.

Working on "unbraid tool" almost 10 years ago

Actually, just take a look at

Working on "unbraid tool" almost 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 about 10 years ago

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