Fix OpenStreetMap provider creation issues

The OpenStreetMap provider only works properly on the first instance.
I don't fully understand why but it seems this becuase the constructor
was overwritten during creation. I've fixed this to match the way
this is done in other providers which seems to work.