allow setZoom before setView, make setView zoom optional, close #2056, close #1449