Вам потребуется создать список всех точек, определяющих многоугольник, заключающий в себе каждое состояние, затем используйте imagepolygon , чтобы заполнить соответствующие многоугольники на изображении карты некоторым цветом.
Реально вы, вероятно, захотите найти стороннюю библиотеку / компонент (например, Flash-фильм, карту JavaScript и библиотеку или класс PHP, предназначенный для этого), а не писать ее самостоятельно с нуля. Выделение карты не является новой проблемой, и ее решение с нуля снова утомительно.