Category Archives: Uncategorized

Michael T. Jones, RIP

The driving force of Google Earth, Michael T. Jones, passed away today, January 18, 2021. I happened on the news via this post from Brian McClendon.

Simply put: This blog and its stories would never have happened were it not for Michael.

When I first encountered Keyhole Earth late in 2004, I took a violent liking to it — this was science fiction made real overnight, a stunning transformative technology that had arrived far sooner than I would have expected.

Keyhole Earth became a social phenomenon as Google Earth, not least for how it shaped our self-image as global citizens and as inhabitants of a global natural ecosystem, or how it brought geospatial power to the people.

I was fortunate enough to meet Michael on several occasions, and every time he was unfailingly generous with his time, his hospitality and his willingness to open up about his passions for technology and geography.

I was half expecting to see him again one day, so I could thank him for giving us this radical new way to see the world. R.I.P. Michael.

What does Crimea tell us about Google?

[TL;DR: Google appears to be voluntarily tampering with its maps to appease the local populations of Russia and Ukraine, rather than being forced to do so by local laws, which was the case until now.]  

What can we infer about Google’s technology, politics and business from observing its approach to mapping Crimea, a few weeks after the invasion and subsequent annexation of the region by Russia?

Technology: We’ve long known Google has the ability to serve different mapping datasets to different Google top-level domain properties. For example, different-language versions of Google Maps will show you different toponyms. However, some local versions of Maps also differ in their boundaries: In China, shows Arunachal Pradesh as being Chinese, rather than disputed; in India, shows Aksai Chin as being Indian, rather than disputed. And in South Korea, prevents you from zooming in on satellite imagery. For each of these locations, however, the default international defaults to a accurate, uncensored reference map — where the borders are shown as disputed, and where you can zoom in on the satellite imagery as much as you like.

Now we have evidence of yet two more examples where localized Google Maps differ from the global reference version in their boundaries — in Crimea, for Russian Google Maps but also, surprisingly, for Ukrainian Google Maps.

Let’s have a quick discovery phase re how Crimea looks in different versions of Google Maps:

International Google Maps: The new facts on the ground are reflected in a dark dashed line, indicating contested territory:


Russian Google Maps: The new border between Russia and Ukraine puts Crimea inside Russia. No dispute is indicated.


Ukrainian Google Maps: Crimea is part of Ukraine. The line defining Crimea light gray and dashed; it is the same kind of line demarcating other Ukrainian oblasts. No dispute is indicated.


Politics: In every documented case until now — in China, in India and in South Korea — Google’s explanation for showing a dataset that diverges from the reference map has been that is is obliged to observe local laws, and in the case of China and India, local laws dictate that locally-published maps (including Internet maps) must show borders drawn a certain way. For South Korea, the dispute with North Korea legally precludes showing high-resolution imagery.

Why does Google do this? Because it has a local presence — perhaps a sales office, or a development team — and so can be held accountable in local courts of law. In countries where Google does not have a presence, it does not care whether it observes local laws — look no further than North Korea, where the recent addition of concentration camps to the default layer of Google Maps is unlikely to pass local legal tests. Equally interesting, however, is that in countries where Google has a presence, but where there are no local laws mandating how maps shows national borders, Google has until now not adulterated its maps, because it is not legally obliged to do so. A fantastic case in point is the border between Thailand and Cambodia, most of which is in dispute. Both Thai Google Maps and Cambodian Google Maps show the two conflicting border claims side by side, in both datasets — a wonderful example of how more context on a map is always a good thing.

It is worth noting that in all cases where Google does show tainted maps, these are only shown locally. None of these defects bleed into the international map dataset shown to the rest of us. Meanwhile, citizens of India, China and South Korea who choose to type into their browser will always get an accurate map.

Business: So why does Google show Crimea as part of Russia to the Russians, and as part of Ukraine to the Ukrainians?

Let’s look at Russia first: According to NPR and Russia Today, Google has flashed the “they made us do it” card:

“The Google Maps team is doing its best to objectively mark disputed regions and landmarks. In relevant cases the borders of disputed areas are marked in a special way. In countries where we have a localized version of our service, we follow local laws on representing borders and use of landmark names,” Svetlana Anurova of Google Russia told ITAR-TASS.

Unfortunately, while this statement is true in the narrowest reading, it is also wholly disingenuous, because it does not apply to Russia, where there is no law that compels local map publishers to show Russia’s borders in a certain way. Unlike in India and China, The Economist does not get censored in Russia when it maps a relevant area as disputed. And for what it’s worth, Article 29 of Russia’s constitution explicitly protects the freedom of ideas and speech:

Everyone shall be guaranteed the freedom of ideas and speech. […] No one may be forced to express his views and convictions or to reject them. […] Everyone shall have the right to freely look for, receive, transmit, produce and distribute information by any legal way. […] The freedom of mass communication shall be guaranteed. Censorship shall be banned.

So on what possible grounds could Google argue that it must show Crimea as indisputably Russian, as opposed to being subject to a dispute, which is what every reasonable observer agrees on — including Putin’s envoy to the UN Security Council, merely by showing up?

One possibility: The Lugovoi law. According to the Moscow Times, this law, which came into effect February 1, 2014, allows Russia’s Federal Mass Media Inspection Service to block websites that “contain calls for unsanctioned acts of protest”. In the opinion of the Moscow Times, this new law clearly violates the Russian Constitution. But the same Article 29 of that constitution limits speech in the following ways:

The propaganda or agitation instigating social, racial, national or religious hatred and strife shall not be allowed. The propaganda of social, racial, national, religious or linguistic supremacy shall be banned. […] The list of data comprising state secrets shall be determined by a federal law.

It would admittedly be a stretch to argue that disputed areas are a state secret. But in the strange new world of Putin’s Russia, I can almost fathom somebody arguing that showing the “wrong” borders instigates national hatred to the extent that it amounts to a call for “unsanctioned protest”. And apparently, that is exactly what one Russian Deputy intends to do.

Google has clearly decided not to test whether this bizarre interpretation of a bizarre law would stand in court. I suspect Google might even win were it to stand its ground.

Instead, I think the real reason why Russian Google Maps shows Crimea as undisputedly Russian is that the annexation is popular inside Russia. Showing Crimea as disputed territory would likely lead to calls for boycotts of Google’s services in Russia. Quite possibly, local Googlers also feel it is just and right for Google Maps to show Crimea as undisputedly Russian. More charitably, Google HQ might fear for the safety of its local employees. But these are not the reasons Google has given for its caving in to Russia’s increasingly dogmatic world view. Perhaps Sergei Brin, whose early experiences of persecution in Russia ultimately led him to take the moral high ground in China and pull the plug on in 2010, has yet to tackle this issue.

And then there is Ukraine: Another major hint that these maps were tampered with not due to legal coercion but in order to protect Google’s existing business in an environment of charged nationalism is the fact that the Ukrainian Google Maps also differs from the international version. To the best of my knowledge (and no little Googling), Ukraine also has no law constraining the depiction of its borders on maps. And yet in Ukraine too, Google’s map aligns with the prevailing popular sentiment.

Google should take a stand for accuracy in every situation it is not compelled to do otherwise. Acknowledging that Crimea is disputed territory must not be made tantamount to taking sides in this conflict. Surely the Ukrainians and Russians can agree that they fundamentally disagree on who should own Crimea. That truth should be reflected on the map.

MH370: Google adds satellite search imagery to Google Earth; black box heard?

Two new pieces of information today relevant to the ongoing search for Malaysian Airlines MH370: There is a potential location for the black box, and Google Earth now shows recent satellite imagery of the search area in its default layer.


1. Black box heard? A Chinese patrol ship has picked up pings that match those of a black box, both on Friday and again on Saturday, according to China’s CCTV. The approximate location is 25°S, 101°E, which is further north than where the bulk of search efforts have been expended so far, but uncannily close to the circumference of the original “ping arc” generated from the Inmarsat-3 F1 satellite, which shows a possible range of locations for MH370 when it last made contact on an hourly basis.

I’ve now added that rough location to existing data for past searches, and appended the original ping arc and projected reach of MH370. Here is the resulting file, to download and open in Google Earth.

2. Search imagery added: Starting up Google Earth today, I was surprised to find the region of the search displaying very recent satellite imagery, taken taken between March 18 and 31, 2014 as part of the search for MH370. The dates are displayed in the status bar at the bottom of the app, and the imagery is credited to CNES/Astrium, which manages the SPOT satellite program. I don’t know how long this imagery has been there, but since there hasn’t (yet) been an announcement on Google Lat Long blog, I’m assuming this is a quite recent addition. To see the imagery at its best, turn off the water surface layer. The images are quite contrasty, so you may want to turn up the brightness of your screen.

One thing to keep in mind: The search locations far to the south may still be relevant for finding floating debris, even if the bulk of the wreck has sunk much further north, due to prevailing currents.

MH370: Amateur hour at the Malaysian Remote Sensing Agency?

The Malaysian Remote Sensing Agency (MRSA) today released an annotated satellite image purporting to show a debris field in the Southern Indian Ocean, near the area where the plane is believed to have perished.

Unfortunately, using only the information contained by the image, it can easily be proven to be self-contradicory, and hence useless.

I’ve been collecting satellite imagery of possible debris sightings in a Google Earth file as they are shared with the press, using the coordinates displayed on the image to georeference them as accurately as possible.

The image released today by Malaysia superimposes three areas in high-resolution from breaks in the cloud in a mostly cloudy image, accompanied by their coordinates.

Click to enlarge

On the image, these three areas form a long and narrow obtuse triangle (which I’ve highlighted in orange). When I plotted their associated coordinates on Google Earth, it quickly became clear that they do not at all correspond to the same shape. The triangle on Google Earth is completely different.

A subsequent quick casual inspection of the coordinates in the image shows their arrangement to be geographically impossible. Here is the view in Google Earth of the same points, their coordinates accurately georeferenced.

Click to enlarge

With their placement known to be wrong, I took a closer look at the high-resolution areas in the image and compared them to their adjacent smaller counterparts. The do not in fact seem to be related. The cloud layers bear no similarity.

This image is either a fabrication — a piece of fiction cynically concocted to feed the journalists and families of the victims — or it is an honest mistake by somebody who perhaps should step aside for the greater good of this recovery mission.

MH370: Updated route, final radar plot (Updated)

UPDATE March 22: Keith Ledgerwood, who devised the theory that MH370 may have shadowed another plane, argues (convincingly) that the track shown to the media and families in the photo below is not of MH370 but of either UAE343 or SIA68, both of which were in the area at the time. If this is true (which it appears to be), then it is an astonishing piece of misdirection by the Malaysian military representative to the families of the victims and the press. The following post now needs to be treated as possibly based on misinformation, alas.

UPDATE March 23: The New York Times, however, still treats the plot in the image below as coming from MH370. So at the very least, there are two conflicting official accounts of the path MH370 took.

ORIGINAL POST: We now have one more official source of information to go on: Via Twitter, a photo, shown to Chinese media in Beijing on March 21, of a Malaysian military radar image showing MH370, pinpointing its last plot at 02:22 MYT (UTC+8):


To analyse the image properly, I took a screenshot of the same area from SkyVector‘s amazing aeronautical charts, overlaid and aligned that SkyVector screenshot onto Google Earth, then overlaid and aligned the photo of the radar image onto the SkyVector screenshot, then annotated the SkyVector screenshot as precisely as possible, in order to position the last known plot accurately in Google Earth.

Here is the resulting KMZ file for you to use. (Open it in Google Earth, then select individual elements and play with the opacity slider in the sidebar to compare alignments.)

This allows us to draw some interesting inferences. But first, the data: Here is the SkyVector screenshot of the same area (annotated by me, click to enlarge):


Some analysis:
The radar image is not unambiguous, at least not without additional official context. But it does label a specific place at a specific time: MH370, at 02:22 MYT, at or even beyond the MEKAR waypoint. The green trace “line” to the left of the annotated circle connects the VAMPI waypoint (previously named as a waypoint for MH370) to MEKAR. A route from IGARI on the other side of the Malaysian peninsula to VAMPI and then on to MEKAR would be a straighter route than the previously mooted one, which had MH370 turn a sharp right at VAMPI to GIVAL — a turn of more than 90 degrees — which always looked somewhat odd. (If these waypoints sound confusing to you, do read this post for context.)

One thing that aligning the photo with the SkyVector screenshot lets us do is notice that the green “line” and the annotation arrow extends slightly beyond MEKAR. If so, MH370 was on its way to NILAM — where its path would have crossed route P627, which skirts past the northern edge of Sumatra and into the Indian Ocean in a WSW direction. The last known bearing of MH370 is thus far less suggestive of a northerly route.

If we now connect the dots, from the position at 01:02 MYT as plotted by FlightAware, to IGARI, to VAMPI and then on to just past MEKAR at 02:22 MYT, we get a distance of roughly 1090km (see the KMZ file to check), flown in 80 minutes. That’s a speed of 820km/h, approximately, which is feasible.

What about that circle annotation in the photograph and the green “line” to the right? Absent an official account from the press conference, here’s my take: The circle is meant to highlight empty space, and thus show that the two green lines are two separate tracks from 2 separate planes. That would also explain the second arrow annotation on the right, which presumably leads to a label for another plane. Note too that these two green “lines” have slightly different bearings. But if anyone has an official clarification, I would love to hear it.

UPDATE: Keith Ledgerwood was able to convince me, with images not in the public domain, that the second arrow notation referred to the same track. So there are no two planes.

UPDATE March 22 22:37 UTC: I’ve found the original image on a Chinese media website. I’ve edited the post above to reflect this. Unfortunately, the caption doesn’t provide much in additional context. Here it is via Google Translate.

MH370 – Airports in flight range on Google Earth

Over the weekend, several initiatives mapped airports that could serve as potential landing spots for missing Malaysian Airlines flight MH370. WNYC first mapped large airports within MH370’s flight range onto Google Maps; then David Strip used data from OurAirports to cast a wider net of potential landing spots and put that in Google Maps.

That’s a good idea, but Google Earth is perhaps the more versatile tool for doing some proper research, especially as it has historical data with which to compare new satellite data as it arrives.

So I also made a KML file for Google Earth with potential airports, from the same OurAirports data, but casting an even wider net — over 3500 potential landing spots. Here it is. (Use it in conjunction with the suggested search location KMZ file published in the previous post.)


What does this file contain? All Asian airports, minus Russian airports, plus Western Australian airports. I’ve taken out seaplane bases and heliports, but left in closed airports. I cleaned up the data for two Western Australian airports with faulty coordinates.

Why keep small and closed airports? Because in a search,  this file should essentially be used to rule out potential airports. If MH370 landed somewhere (as opposed to crashing) then that airport will most likely turn out not to be on this list, or else be a small or closed airport that has recently undergone expansion. (However: Keep in mind when scouring Google Earth that satellite data may be a few years old).

I used Google Outreach’s Spreadsheet Mapper to convert the orignal data to KML. At just over 3500 data points, I was definitely pushing the limits of that technology. Here is the spreadsheet I used for this KML file.

Flight MH370 — search data in Google Earth

[Update April 5: New post: Google adds satellite imagery to Google Earth; Black box heard?]

[UPDATE March 22: I have updated the KMZ file for Google Earth to show the latest imagery released by China, pinpointing another possible peace of debris from MH370. I’ve now also added the imagery itself to the placemark’s info box.]

[UPDATE March 20: Here is the KMZ file for Google Earth showing the exact location of those two artifacts (BBC News) noticed on satellite imagery taken by DigitalGlobe on March 16.  (On casual inspection, they look to me to be sun reflections off slightly bigger-than-average waves.) If this is indeed the missing MH370, they are  further south than the final ping arc and estimated range circle — and that would be because MH370 could have kept on flying for up to another hour after the final ping, because of the currents, as these images were taken 8 days after when MH370 would have crashed, and perhaps because the fuel reserves lasted longer than thought.]


[UPDATE March 17: New post: MH370 – Airports in flight range on Google Earth with over 3500 Asian and australian airports]

[March 17, 17:45 UTC: Updated at end of this post with added context re the reason for the two arcs.]

The disappearance of Malaysian Airlines flight MH370 has had me glued to the Internet. Now over a week into the mystery, more specific data has begun to emerge regarding MH370’s apparent flight path and possible last locations, from two distinct sources. I felt I could contribute by adding these as accurately as possible to Google Earth, for others to use. Here’s the resulting KMZ file for Google Earth. Read on for the context.

The most recent source of data was released on March 15, from an Inmarsat satellite in geostationary orbit above the Indian Ocean, which tracked a final ping from MH370 to an arc of possible locations on Earth. The information, released by the Malaysian government, did the rounds of Twitter (and the NYT) in this form:


(According to the experts on the Professional Pilots’ Rumour Network, the degree lines shown in the diagram depict how high above the horizon the satellite is when viewed from that location. That’s why right below the satellite the angle is 90°.)

Looking up possible Inmarsat satellites on Wikipedia led to one exact match: Inmarsat-3 F1, which sits 35,700km above the equator at E64.5°. This is the exact view that satellite has of Earth:


Using this KML circle generator, I then recreated the circle from the diagram (in orange in Google Earth), which turns out to have a radius of 4,750km.  I also added the points demarcating the start and end of the two arc lengths, as depicted on the diagram.

On March 14, sources described to Reuters the details of Malaysian military radar data, which saw MH370 follow specific waypoints as it veered across the Malaysian peninsula and then set course for the Andaman and Nicobar Islands, before going out of radar range.

The coordinates for these waypoints (and some amazing maps to go with them) can be found on SkyVector:

IGARI: N6°56.20′ E103°35.10′
VAMPI: N6°10.92′ E97°35.14′
GIVAL: N6°59.99′ E97°59.99′
IGREX: N9°43.47′ E94°24.99′

I then converted these to decimal degrees before adding them to Google Earth.

To these coordinates, we can of course add the coordinates of KUL, Kuala Lumpur International Airport (N2.73° E101.71°) and also the last recorded position of MH370 on Flight Aware, a public flight tracking service, which placed the plane almost exactly half-way between KUL and IGARI. These six points together allow us to reconstruct the flight path for the first two hours or so, depicted as a path in Google Earth.

Finally, I’ve added a second circle (in white on Google Earth): This circle has the IGREX waypoint as its center, and it bisect the two furthest points on the two Inmarsat arcs depicted in the diagram. That circle’s radius turns out to be 4,400km. Given the cruising speed of a Boeing 777-200 at 905km/h, that circle depicts the distance MH370 would have flown in just under 5 hours from there (assuming a straight line).

As new information becomes available, I will try to update this post as well as the KML file.

UPDATE March 17, 17:45 UTC: As per this blog post on TMF associates, the interruption in the arc near the Gulf of Thailand is due to the Malaysian government’s own calculations that MH370 flying at its slowest possible speed in a straight line would not be in this region. This, however, assumes that MH370 would henceforth fly in a straight line, which it obviously had not been doing. So in practice, the entire orange ping arc inside the white range circle is a valid search location.


(It had previously been mooted that the interruption in the arcs was because another Inmarsat satellite would have picked up MH370’s ping had the plane been that far east. But in fact the interruption is not centered on the equator, as it would have had to be had it been due to a bisection from another geostationary satellite).