Географические границы штатов/провинций → Google Maps Polygon
Я создаю веб-приложение, которое будет динамически выделять определенные штаты США и канадские провинции на карте Google на основе кнопок и событий click.
План A) Многоугольники
Моя основная идея - рисовать полигоны. Для этого мне нужны списки координат (широта + долгота) всех контуров штатов и провинций (по часовой стрелке или против часовой стрелки). На правительственных веб-сайтах я нашел всевозможные разные форматы (т.е. E00), но мне трудно преобразовать эти форматы в простой список координат, который я мог бы использовать для создания маркеров или многоугольника на карте. У вас есть какие-либо подсказки, где можно получить эти координаты?
План B) Наложения
AFAIK, если вы используете оверлеи на Картах Google, они становятся неровными по мере увеличения (или вы можете накладывать SVG?). В моем случае мне понадобится 50 + 11 наложений в худшем случае (все штаты и все провинции). Возможно ли это с помощью Google Maps или будет ли он слишком медленным?
Я немного удивлен, что нет прямого способа выделить государство или провинцию, так как я думаю, что это очень распространенные задачи для людей, использующих API для карт.
Заранее спасибо
Ответы
Ответ 1
У меня есть XML для государственных полигонов США здесь. Я использую их как this.
Я намеренно сохранил детали достаточно светлыми, чтобы уменьшить время загрузки и в итоге получить карту, которая разумно реагирует на медленные браузеры.
У меня нет ничего для Канады.
Ответ 2
Используя предоставленный XML, я создал JSON файл со словарем, который включает в себя 50 штатов, Вашингтон, округ Колумбия, и грубую схему канадских провинций, чтобы рассмотреть комментарий SaltyNuts, а также заметку Майка Уильямса о том, что у него нет ничего для Канады json.
Этот удобный онлайн-инструмент от BirdTheme был тем, что я использовал для рисования полигонов для провинций для всех, кому нужны разные уровни детализации или создать свой собственный набор координат.
Ответ 3
Здесь информация для канадских провинций.
Я скопировал только первую координату GPS из ссылки Google Map.
/**
* Searched for Alberta, Canada and copied the first thing after the @ sign
* @see https://www.google.bg/maps/place/Yukon+Territory,+Canada/@64.5610006,-141.332713,5z/data=!3m1!4b1!4m5!3m4!1s0x51178198b4528b89:0x2e149cd561cc96ea!8m2!3d64.2823274!4d-135?hl=en
* @var array
*/
$provinces_gps = array(
"AB" => "54.1784838,-123.9541477",
"BC" => "53.8348151,-135.5103986",
"MB" => "54.1798816,-104.4465713",
"NB" => "46.2679312,-68.6551949",
"NL" => "53.1668149,-69.1783083",
"NT" => "68.4817407,-136.7732486",
"NS" => "45.2906308,-65.2759181",
"NU" => "63.5954344,-124.1555502",
"ON" => "48.9347914,-93.7155729",
"PE" => "46.5031512,-63.7525627",
"QC" => "53.4650568,-77.3895206",
"SK" => "54.1797758,-114.6389862",
"YT" => "64.5610006,-141.332713",
);