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

Могу ли я показать одну страну (замаскированную) в GoogleMaps?

Можно ли замаскировать соседние страны в GoogleMap? В моем случае я просто хочу показать Швецию на одном взгляде. На втором месте только Норвегия, Дания и т.д. И т.д.

Я знаю, что можно рисовать многоугольные линии и соответственно заполнять их в API Карт. Проблема в том, что или наборы результатов получаются огромными или линии становятся очень грубыми и т.д. Было бы неплохо, если бы GoogleMaps мог доставить страну в то время без соседей.

Кто-нибудь знает о хорошей базе данных координат с границами страны?

4b9b3361

Ответ 1

Вы можете создать очень сложные полигоны в Картах без снижения производительности, если вы сохраните их в формате файла KML и загрузите их как KmlLayers. KML - это формат векторных файлов на основе XML для геоданных. Красота использования KML файлов в Картах Google заключается в том, что они отображаются на серверах Google в простые PNG файлы, соответствующие текущему разрешению и ограничивающей рамке вашего вида Карт в любое время, независимо от того, насколько сложны исходные данные полигона. Таким образом, вся сложность обрабатывается на стороне сервера в Google.

Вот образец проекта, где я использовал такую ​​маскировку для одного из федеральных земель Германии. (Окружение в этом случае не полностью замаскировано, но только затемнено, но вы также можете маскировать их так же легко, изменив альфа-значение цвета заливки в файле KML.)

Для быстрого просмотра файлы KML также можно загрузить непосредственно на общедоступный веб-сайт Google Maps (путем ввода их URL-адреса в поле поиска). Вот файл KML, который я использовал в вышеупомянутом проекте, загружен прямо в Карты Google. (Я фактически использовал KMZ файл здесь, но это просто файл KML, упакованный в ZIP-архив. Вы можете упаковать и распаковать его с помощью обычных инструментов ZIP.)
BEGIN UPDATE 07/2015: К сожалению, Google УДАЛИСЬ возможность напрямую ввести URL-адрес файла KML/KMZ в поле поиска своих общедоступных Карт Google, когда они запустили свою переработанную версию в 2014 году. Вы все же можете использовать все методы, обсуждаемые в этом ответе, но вы не можете просто просмотреть файлы KML добавив их URL в поле поиска больше. Если вам нужен KMZ, упомянутый выше для дальнейшего анализа, вы можете загрузить его здесь. END UPDATE

Помните, что Google подразумевает ограничение размера файлов KML/KMZ (в настоящее время несжатое 10 Mb, сжатое 3 Mb - подробности см. здесь). Если ваши файлы KML должны быть большими, для снижения сложности доступно программное обеспечение (см. Примеры здесь и здесь).

Вы найдете бесплатные данные о картах во многих местах в Интернете, большинство из которых находятся в формате шейп файла ESRI. Отличным источником для страновых карт является http://www.gadm.org/ с большим преимуществом предоставления их данных в формате KML/KMZ. Если вам нужно преобразовать шейп файлы ESRI в KML, посмотрите на отличный (и бесплатный) OGR converter.

Обратите внимание, что файлы KML - это только решение, если ваши полигоны являются статическими (например, граница Швеции) и не зависят от любого пользовательского ввода. Для динамических полигонов вам все равно придется использовать класс Polygon API Карт с указанными вами ограничениями сложности.

Ответ 2

имел аналогичную проблему и управлял им, комбинируя гаммы с таблицами слияния:

var table_id = 420419; //can be exchanged wit another table
var FT_Query = "SELECT 'kml_4326' FROM "+ table_id +" WHERE 'name_0' NOT EQUAL TO 'SWEDEN'";
var FT_Options =
    {
    suppressInfoWindows: true,
    query: FT_Query
    };
var layer =  new google.maps.FusionTablesLayer(table_id, FT_Options);
layer.setMap(map);