API карт Google не предлагает способ доступа к данным региона / штата / страны / города. Чтобы выделить регион, вы должны создать свое собственное наложение (полигон, тип карты наложения, ...) на основе данных из других источников.
Как вы написали, часто используются неточные полигоны. Эти полигоны обычно представляют собой приближения, сделанные вручную, потому что это самый простой способ сделать это. Довольно сложно найти и обработать данные границ области, чтобы получить нужные вам полигоны.
Могут быть и другие недостатки в использовании точных полигонов области. Такой многоугольник обычно должен содержать тысячи точек (существуют исключительные случаи, такие как граница между США и Канадой или границы между некоторыми африканскими странами). Многоугольники с большим количеством точек могут быть трудны для обработки в API карт JavaScript. Поэтому пользовательский тип оверлейной карты может быть более подходящим в этом случае. К сожалению, для создания типа карты наложения требуется гораздо больше работы, чем для создания простого google.maps.Polygon
.
Множество картографических данных (координаты региона и многие другие данные) можно найти в OpenStreetMap . Вы можете экспортировать данные через их API .