Angular-google-maps: Добавление типов карт изображений

Созданный на 15 мая 2016  ·  35Комментарии  ·  Источник: SebastianM/angular-google-maps

Привет

Я хочу использовать пользовательские плитки на картах Google, как в этом примере: https://developers.google.com/maps/documentation/javascript/examples/maptype-image .

Я попытался создать новую директиву, как показано ниже:
<sebm-google-map> <sebm-google-image-map-type [options]="mapImageOptions"></sebm-google-image-map-type> </sebm-google-map>

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

Или, поскольку это на самом деле не визуальный компонент, это должна быть просто служба, которая передается в компонент. (так настроено только с помощью кода без элементов html)

Есть ли какие-либо советы о том, какой подход совершенствуется?

Спасибо
Карл

stale feature-request

Самый полезный комментарий

эта функция обновлена ​​в agm-maps?

Все 35 Комментарий

Привет, Карл,

Я пытаюсь сделать то же самое, загрузить некоторые пользовательские оверлеи WMS, обслуживаемые из внешнего кластера MapServer, но я застрял, потому что не знаю, как получить ссылку на фактический экземпляр googleMap, чтобы добавить свои оверлеи в overlayMapTypes. коллекция).

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

Это мой подход (пока)... в конструкторе MyComponent.ts

`var overlayMap = ноль;

    // Getting a handle on the GoogleMaps api namespace
    if ((<any>window).google || (<any>window).google.maps) {
        const gm = (<any>window).google.maps;

        if (layers.length > 0) {
            var overlayMapOptions = {
                getTileUrl(coord, zoom) {
                    var url = this.loadBalanceWms() + "/mapserver.exe?Map=../mapfile/xxx.map";
                    url += "&mode=tile";
                    url += "&tile=" + coord.x + "+" + coord.y + "+" + zoom;
                    url += "&tilemode=gmap";
                    url += "&layers=" + layers; //WMS layers
                    url += "&WIDTH=256";
                    url += "&HEIGHT=256";
                    return url;

                },
                tileSize: new gm.Size(256, 256),
                isPng: true,
                name: "WMSOverlay"
            };
            overlayMap = new gm.ImageMapType(overlayMapOptions);

            // Breaks here
            this._mapsWrapper.getMap()
                .then(a => {
                        (<any>a).overlayMapTypes.push(overlayMap);
                    },
                    f => {
                        window.console.log(f);
                    });

        }

    };`

@anaratz Это работает, что ты сделал ?? Чтобы создать мозаичную пользовательскую карту

Нет, это не работает...
... потому что коллекция overlayMapTypes не существует в интерфейсе mapTypes.GoogleMap, и я не могу найти способ получить доступ к базовому экземпляру google.maps.Map

@anaratz , значит, для этого еще нет решения?

Нет, не сейчас

@anaratz У меня это работает, но я просто задавал вопрос в начале этого выпуска о том, как структурировать мой код, затем я сделаю PR, должен ли я просто сделать PR и посмотреть, как это пойдет?

@ carl09 , можешь показать нам, как ты это исправил?

@ carl09 да, пожалуйста, Карл.

Привет @smgjreinieren , @anaratz я обновил свой PR и создал демо

http://plnkr.co/edit/OlljPTvgqdq0Na2lvZPN?p=preview

PR: https://github.com/SebastianM/angular2-google-maps/pull/345

любая обратная связь будет здорово

@ carl09 ты тоже написал это в машинописном тексте?

@smgjreinieren Да, это все сделано в текстовом сценарии.

@ carl09 Оооо, теперь я понимаю, извините! Молодец! Спасибо

У меня проблемы с задачей " clang:check ", я просто собираюсь попробовать обновить узел с v4 до v6 и посмотреть, исправит ли это это, это делает вас действительно неуверенным при внесении изменений

@ carl09 carl09 Но нет пользовательского типа карты?

@smgjreinieren Я использовал «Открытые карты улиц» в плункере для отображения изменений, у вас это не работает или вы не это имели в виду?

Как в этом примере: https://developers.google.com/maps/documentation/javascript/examples/maptype-image-overlay .

Я только что увидел ваш другой вопрос, так что теперь я понимаю, что вы имеете в виду.

@carl09 carl09 Я хочу установить собственное изображение в качестве типа карты, это «Открытые карты улиц», изображение, которое создает пользовательский тип карты.

@smgjreinieren у вас есть изображение с геокодированием? или это просто стандартный файл изображения?

вы можете использовать такой инструмент, как http://www.qgis.org/en/site/ , который и геокодирует изображения, а также создает плитки, чтобы вы могли использовать их для карт Google.

@ carl09 Хм, кажется, я не могу им пользоваться! Может быть, вы можете преобразовать изображение для меня?

И почему ваша базовая настройка не распознает MapTypeId из «angular2-google-maps/core»? Вероятно, потому что у него нет ядра, которое я вижу, но как мне его импортировать, чем из вашей установки: https://github.com/carl09/angular2-google-maps-example

Привет @smgjreinieren Я обновил свой пример кода в этом репозитории, если вы хотите его обновить.
каким редактором редактируете? я использую VS Code, и мне кажется, что я знаю ссылки, если это поможет

@carl09 Спасибо, приятель! Но все еще не могу заставить qgis работать на Mac! Могу я отправить вам изображение, это только небольшая часть карты мира, это тоже возможно?

Вот так: http://postimg.org/image/6okpwebsb/

@ carl09 можно ли использовать изображение из локальной папки? вместо онлайн

Привет

Да, вы можете, либо вы можете разместить их в своем экземпляре узла, точно так же, как вы размещаете свои файлы css и js, но я думаю, вы также можете использовать file:// и указать его локально, но не уверен, насколько хорошо это будет работать

Можно ли отключить DefaultUI в конструкторе? Потому что он не распознает это так:

constructor(){ this.imageMapOptions = { getTileUrl: (coord: ImageMapTypeCoord, zoom: number) => { return http://www.sylvanreinieren.com/tiles/ ${zoom}/${coord.x}/${coord.y}.png }, tileSize: { height: 256, width: 256 }, maxZoom: 16, minZoom: 12, radius: 1738000, name: 'linZ', disableDefaultUI: true, alt: 'LINZ Topo Maps' }; }

Есть прогресс в этой функции? Я только начал смотреть на angular2-google-maps пару дней назад, и похоже, что это решит то, что я хочу добавить в свое приложение, но мне действительно нужно заменить карты Google Maps некоторыми более подробными картами из норвежского " Картверкет».

@ carl09 извините за поздний ответ ... так много дел сейчас. Чтобы соответствовать другим элементам, мы должны использовать отдельные атрибуты, к которым вы можете привязываться, поэтому никаких отдельных [параметров]. Ты согласен с этим?

+1 удар, хотел бы использовать эту функцию

Перенесена ли эта функция пользовательского слоя WMS в новый AGM?

Значит, нельзя получить изображение по URL-адресу и отобразить его на карте?

@sneckelmann мы многое перепробовали, но в конце концов теперь использовали SVGS с базовой кодировкой для маркеров ... не лучшее решение, но оно работает

эта функция обновлена ​​в agm-maps?

@СебастьянМ
Так же, как этот планкр
http://plnkr.co/edit/OlljPTvgqdq0Na2lvZPN?p=preview

реализованы ли наложения карт в AGM?

@ carl09 когда я заменил openstreetmap API openweathermap, плитка заменяла плитку карты. Можем ли мы трансформировать эти плитки?

Я хотел реализовать такую ​​вещь с AGM

https://jsfiddle.net/601oqwq2/221/

@SebastianM , функция находится на рассмотрении в течение длительного времени, можем ли мы получить некоторое представление о ссылке на внутренний экземпляр карты Google, чтобы мы могли сделать хотя бы какой-то обходной путь, пока функция не получит обновление с вашей стороны?

Я нашел кое-что на #1423, дайте мне тоже подумать ;P

@СебастьянМ
Обходной путь для описанного выше сценария

https://github.com/er-shrey/AGM-Openweather-Интеграция

@carl09 посмотри на это

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

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время с ней не было никаких действий. Он будет закрыт, если дальнейшая активность не будет выполняться. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги