Используйте PostGIS и GeoServer.
Вы можете написать простые сервлеты для вызова в PostGIS, чтобы ответить на ваши пространственные вопросы
Вы можете использовать GeoServer для отображения карт из ваших источников данных postgis.
Шейп-файлы легко загружать как в PostGIS, так и в Geoserver
Не используйте MySQL, большинство его пространственных функций не реализовано. Они есть в документе, но они не реализованы в коде.
Вы можете использовать API GMaps JS или взглянуть на OpenLayers, библиотеку сопоставления JS с открытым исходным кодом.