Очень в общем, насколько понял.
1) Javascript + API карт (гугла или яндекса, возможно какую то библиотеку, типа leaflet) + бэкэнд система для серверной части (php/ruby/python с какой то БД, например, PostgreSQL или MySql).
2) Читать АПИ + взаимодействие с бэкэндом.
3) И то, и то, читаем доки по апи :)
4) Тоже в доках есть, можно запросить разрешение на опредление текущего местоположения пользователя.