Closed kirill-kot closed 3 years ago
попробовал альтернативный вариант, как вот тут https://stackblitz.com/edit/geocoder-v2
создал карту в компоненте ` <ya-map (load)="onMapLoad($event)" (yaclick)="onYaClick($event)" [center]="[55.87, 37.66]" [zoom]="16"
`
в ивенте при инициализации назначил инстанс ymaps
public async onMapLoad(event): Promise<any> { if (event.instance) { event.instance.geoObjects.add( new ymaps.Placemark(event.instance.getCenter(), {}, {}) ); this.ymapSearch = event.ymaps; return (this.ymapMapInstance = event.instance); } }
привязал метод на клик по карте
public onYaClick(event) { const coords = event.event.get("coords"); this.geoLat = event.event.get("coords")[0]; this.geoLong = event.event.get("coords")[1]; event.instance.geoObjects.removeAll(); event.instance.geoObjects.add(new ymaps.Placemark(coords, {}, {})); }
пока геокодер при использовании во внешнем методе компонента не геокодит
Привет, для геокодера нужен апи ключ
const mapConfig: YaConfig = {
apikey: API_KEY_HERE,
lang: 'en_US'
};
Обновил этот пример под 11 версию библиотеки - https://stackblitz.com/edit/geocoder-v2
Ключ есть, пример посмотрел, спасибо
В целом оно вот так работает, через яклик координаты получает и переставляет карту, но как такие же действия делать, например, через внешнее поле ввода?
впрочем, вопрос снимается, для будущих поколений оставляю это здесь
впрочем, вопрос снимается, для будущих поколений оставляю это здесь
Желательно скрывать контрол, пока yaEvt
не инициализируется. Или еще как-то решить проблему асинхронности, т.к. API может долго отвечать, yaEvt
будет undefined, а на UI уже есть контрол и возможность ввода
впрочем, вопрос снимается, для будущих поколений оставляю это здесь
Желательно скрывать контрол, пока
yaEvt
не инициализируется. Или еще как-то решить проблему асинхронности, т.к. API может долго отвечать,yaEvt
будет undefined, а на UI уже есть контрол и возможность ввода
у меня по дизайну подходит такая реализация, но другим возможно это будет полезно. Подправил на *ngIf="yaEvt"
ну и внутри самого метода geocode поставил проверку на yaEvt, чтоб точно ошибок не было
❓ Help Wanted
✍️ Description
Подключил карту в компоненте инстансом скрипта через подписку
но вот как обратиться к yamaps.geocode("Москва") из примеров и документации так и не понял. Реквестую помощь
🌎 Environment
Angular CLI: 11.2.2 Node: 12.0.0 OS: win32 x64
Angular: 11.2.3 ... animations, common, compiler, compiler-cli, core, forms ... language-service, localize, platform-browser ... platform-browser-dynamic, router Ivy Workspace: Yes
Package Version
@angular-devkit/architect 0.1102.2 @angular-devkit/build-angular 0.1102.2 @angular-devkit/core 11.2.2 @angular-devkit/schematics 11.2.2 @angular/cli 11.2.2 @schematics/angular 11.2.2 @schematics/update 0.1102.2 rxjs 6.6.6 typescript 4.1.5
angular8-yandex-maps версии пробовал и ^11.0.1 и ^10.3.1 как в примере тут