US president Donald Trump has confirmed he will not travel to the UK to open the new American embassy next month, blaming the decision to relocate the building to an "off location".

Hitting out at former US leader Barack Obama, Mr Trump wrote on Twitter early on Friday that he thought the embassy's move from Grosvenor Square in the prestigious Mayfair district of central London to Nine Elms, south of the Thames, in a 1.2 billion dollar (£886 million) project was a "bad deal".

He wrote: "Reason I cancelled my trip to London is that I am not a big fan of the Obama Administration having sold perhaps the best located and finest embassy in London for 'peanuts', only to build a new one in an off location for 1.2 billion dollars. Bad deal. Wanted me to cut ribbon-NO!"

Sadiq Khan, the Labour Mayor of London, welcomed the decision and claimed it showed Mr Trump had "got the message" that he would not be welcome in the capital.

But Boris Johnson, the Foreign Secretary, attacked Mr Khan's response and accused him and Jeremy Corbyn, the Labour leader, of putting the special relationship "at risk".

Mr Johnson described Mr Khan as a "puffed up pompous popinjay”.