Подтвердить что ты не робот

Географические границы штатов/провинций → Google Maps Polygon

Я создаю веб-приложение, которое будет динамически выделять определенные штаты США и канадские провинции на карте Google на основе кнопок и событий click.

План A) Многоугольники

Моя основная идея - рисовать полигоны. Для этого мне нужны списки координат (широта + долгота) всех контуров штатов и провинций (по часовой стрелке или против часовой стрелки). На правительственных веб-сайтах я нашел всевозможные разные форматы (т.е. E00), но мне трудно преобразовать эти форматы в простой список координат, который я мог бы использовать для создания маркеров или многоугольника на карте. У вас есть какие-либо подсказки, где можно получить эти координаты?

План B) Наложения

AFAIK, если вы используете оверлеи на Картах Google, они становятся неровными по мере увеличения (или вы можете накладывать SVG?). В моем случае мне понадобится 50 + 11 наложений в худшем случае (все штаты и все провинции). Возможно ли это с помощью Google Maps или будет ли он слишком медленным?

Я немного удивлен, что нет прямого способа выделить государство или провинцию, так как я думаю, что это очень распространенные задачи для людей, использующих API для карт.

Заранее спасибо

4b9b3361

Ответ 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",
);