In the course of trying to integrate this as a library it has become apparent that MapView updates BaseMap coordinate and zoom via the variables prefCenterLat, prefCenterLon and prefZoom exactly once and that these variables are never updated again as the user zooms and pans the MapView. Consequently a library user has no way of persisting the state of the map and it is not really suitable to be used as a library. There are other issues in particular the private InputEvent handlers which can be worked around with EventFilters, but currently this is not suitable for my purposes.