Ну если строки гарантированно будут формата a op b = c то можно регуляркой распарсить. Если нет - то либо eval ( но этот вариант стоит очень аккуратно использовать, и только в случае, если в источнике вы уверены) либо написать простенький калькулятор.
Вариантов довольно много, зависит от того, как выхотите это видеть: если так, чтобы контейнер с картой сжимался - можно вешать класс и на контейнер с картой, который будет задавать например маржин слева. Если вы хотите показывать меню сверху - надо задать блоку position: absolute или position:fixed. Это вопрос верстки и css по большей части.
Ну если много - то тогда конечно нужно подумать о серверном языке. Вообще, необязательно нужен php. Можете попробовать nodejs, или там python. Это уже по вашему желанию.
Для ангуляра - $location.url( %newUrl) при клике на li. Ну и вообще - странно, изучаете вы angular, а задача связана с css большей частью. От angular тут мало чего. Вообще - у ангуляра есть довольно хороший обучающий проект https://docs.angularjs.org/tutorial. Там основные особенности и возможности фреймворка демонстрируются.
Я бы сделал через $location. Есть ещё грязный способ поставить тегу a стиль: position:absolute, height:100%, width: 100%, но он мне не очень нравится. Вызывать a по клику на li вообще не очень хорошо, т.к. по сути мы делаем то, чего пользователь не делал. То есть он кликнул на блок - а мы ему ссылку засунули.