I think it's a Google issue.
I've read a few posts saying Google uses the projection "+init=epsg:3857" but using that projection makes Stamen match up properly but not Google.
Does anyone know if there's something special about Google Maps? Does it need a different projection?
Supposedly Google uses epsg:3857 but surely it can't be exactly that or it wouldn't be offset?
Edit: Regular web based Google Maps says the latitude of the southern end of Thirlmere (the lake in the middle) is 54.51 so the ggmap Google image above is definitely in the wrong place.

A:

Cracked it, the error was because I specified the lat long as character.
This one works properly.
map_out <- ggmap::get_map(c(-3.0232, 54.5234), zoom =12, source = "google", maptype = "terrain")



Q:

LINQ How to Remove Empty Elements at End of Collection

I have an array of strings that has a fixed size of 10. Some elements may be null. I want to use LINQ to remove the elements with the value null from the array, but only at the end.
Input:
"Hello", null, "World", null, null, null, null, null, null, null

Output:
"Hello", null, "World"

So the output array contains all elements except for the trailing ones containing null.
I thought of reversing the IEnumerable, then doing a SkipWhile and reversing it again.
This would be possible and would be not much of a performance penalty in my case, but I am curious if there's a more elegant solution.

A:

For a different LINQ variant that works for any enumerable (string[], List<string>) you can try the following which uses Reverse and SkipWhile:
using System.Linq;

string[] strings = { "Hello", null, "World", null, null, null, null, null, null };
var result = strings.Reverse()
                    .SkipWhile(c => c is null)
                    .Reverse()
                    .ToArray();

Note that this is definitely not the most performant, I'm just offering a different version than those already posted. 
Since you have an "array of strings", I assume you mean literally a string[] and not a List<string>. As an alterna