protocol-agnostic google maps library