Географические границы штатов / провинций -> Google Maps Polygon - PullRequest
34 голосов
/ 29 ноября 2009

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

План А) Полигоны

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

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

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

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

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

Ответы [ 4 ]

75 голосов
/ 29 ноября 2009

У меня есть XML для полигонов штатов США здесь . Я использую их как это .

Я сознательно держал детали достаточно легкими, чтобы сократить время загрузки и в итоге получил карту, которая достаточно отзывчива в медленных браузерах.

У меня ничего нет для Канады.

3 голосов
/ 24 марта 2016

Используя предоставленный XML, я создал файл JSON со словарем, который включает в себя 50 штатов, Вашингтон, округ Колумбия, и приблизительную схему канадских провинций, чтобы ответить на комментарий SaltyNuts, а также заметку Майка Уильямса о том, что у Канады ничего нет для Канады * 1002 JSON *.

Этот удобный онлайн-инструмент от BirdTheme был тем, что я использовал для рисования полигонов для провинций для всех, кому нужны разные уровни детализации или для создания собственного набора координат.

0 голосов
/ 11 мая 2018

Старый вопрос, но вы можете получить более подробный набор баллов за каждую государственную границу США на веб-сайте Google по адресу https://developers.google.com/kml/documentation/us_states.kml

Это требует небольшого разбора xml.

0 голосов
/ 28 мая 2016

Вот информация для канадских провинций. Я скопировал только первую GPS-координату из ссылки на карту Google.

/**
 * 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",
);
...