ArrayList newArrayList = (ArrayList) oldArrayList.clone();
Я бы рекомендовал взглянуть на Marble .
Он включен в KDE-edu, но, если я правильно помню, библиотека Marble не поддерживает имеет какие-либо зависимости помимо Qt, он также находится под LGPL и кроссплатформенный. У вас должна быть возможность размещать виджеты и различные другие предметы на поверхности.
Для OpenStreetMap написан редактор карт, использующий Qt. http://www.merkaartor.org/
Для рендеринга карт они используют Webkit, я думаю, но не совсем уверен. Попробуйте связаться с автором или прочитать источник.