Angular-google-maps: Módulo não encontrado: '@agm/core/services/google-maps-types'

Criado em 20 set. 2019  ·  54Comentários  ·  Fonte: SebastianM/angular-google-maps

De repente, estou enfrentando o seguinte problema.

Módulo não encontrado: Erro: não é possível resolver '@agm/core/services/google-maps-types'

Package.json

"@agm/core": "^1.0.0",
"@agm/js-marker-clusterer": "^1.0.0"

Comentários muito úteis

@jimmykane você deve certificar-se de que seu package.json especifica "@agm/core: "1.0.0-beta.7" não @agm/core: "^1.0.0-beta.7" porque isso significa que você tem a versão 1.0.0 que não expõe a mesma interface.

Estamos trabalhando para corrigir isso, mas há outras importações que precisamos resolver.

Todos 54 comentários

Mesmo aqui

você pode excluir node_modules e executar novamente npm install

@ doom777 Eu fiz várias vezes. sem sorte.

Exemplo de trecho de código abaixo,

import { ZoomControlOptions, ControlPosition, MapTypeControlOptions, FullscreenControlOptions } from '@agm/core/services/google-maps-types';
mapTypeControlOptions:MapTypeControlOptions = {
    position: ControlPosition.LEFT_BOTTOM
    }

  fullscreenControlOptions: FullscreenControlOptions = {
    position : ControlPosition.LEFT_CENTER
  };

hmm, o stackblitz está tendo seus próprios problemas agora. Não estou conseguindo reproduzir.

aqui está o que estou tentando:

ng new agm-test2
cd agm-test2
npm install @agm/core
code .

adicione AgmCoreModule.forRoot ao AppModule

modelo: <agm-map [mapTypeControl]="true" [mapTypeControlOptions]="mapTypeControlOptions" [latitude]="0" [longitude]="0"></agm-map>

componente:

import { Component } from '@angular/core';
import { MapTypeControlOptions, ControlPosition } from '@agm/core/services/google-maps-types';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styles: ['agm-map{height:300px}']
})
export class AppComponent {

  mapTypeControlOptions: MapTypeControlOptions = {
    position: ControlPosition.LEFT_BOTTOM
  };
}

resultado:
image

@doom777 aqui está um exemplo de que não está funcionando: https://stackblitz.com/edit/angular-krqwfi?file=src%2Fapp%2Fapp.module.ts
tudo o que fiz foi adicionar @agm/core e tentar importar o FitBoundsService

estou apenas conseguindo

Não capturado (em promessa) Erro: Predefinição não especificada na configuração em
Object.config (webcontainer.5f16b010d2745c788a2.js:15)
em t.config (webcontainer.5f16b010d2745c788a2.js:15)
em Be (preview-4858aaa60d96ac0657bab.js:1)
na visualização-4858aaa60d96ac06

57bab.js:1

Este parece ser um erro de stackblitz

Você pode tentar algo?

  1. clonar esta biblioteca
  2. vá para packages\core\map-types.ts
  3. adicionar ControlPosition à lista de exportações
  4. construir a biblioteca com yarn build
  5. vincule a biblioteca com npm link (tutoriais do google se você não usou o link npm antes)
  6. veja se começa a funcionar

Por favor, tente meu PR https://github.com/SebastianM/angular-google-maps/pull/1730 e diga-nos se ele resolve o problema.

Você terá que alterar a importação de ControlPosition e outros para '@agm/core'

@doom777 Eu clonei, construi e testei #1730. Está funcionando como esperado.

@ doom777 isso parece ser devido à forma como o ng-packager empacota as coisas.

Em vez de fazer com que as pessoas atualizem suas importações uma vez para isso e depois para o #1648, devemos nos concentrar apenas em obter o #1648, que lidará com qualquer importação do Google Maps? (Sua alteração para #1730 pode ser necessária para diretivas/serviços que não são importados via @agm/core e, em vez disso, são importados de @agm/core/{directives,services}

Só para ficar claro, ng-packagr foi uma mudança potencialmente inovadora em relação à superfície da API, onde # 1648 está quebrando a mesma superfície (importações de tipos de mapas do Google)

Eu adicionei #1731 que é uma mudança ng-packagr para este módulo, mas não aborda as importações de @agm/core/* que não são @agm/core/services/google-maps-types (incluindo @agm/core/services ou @agm/core/directives )

Recebo este erro quando tento importar {google} de @agm/core/services/google-maps-types. Eu também tentei excluir node_modules e executar novamente o npm install muitas vezes. Por favor me ajude a encontrar uma solução.

@pasqualepalmaccio se for produção, volte para 1.0.0-beta.7. Caso contrário, espere até lançarmos uma correção.

Após atualizar estou com o mesmo problema. Existe alguma solução alternativa?

@jimmykane você deve certificar-se de que seu package.json especifica "@agm/core: "1.0.0-beta.7" não @agm/core: "^1.0.0-beta.7" porque isso significa que você tem a versão 1.0.0 que não expõe a mesma interface.

Estamos trabalhando para corrigir isso, mas há outras importações que precisamos resolver.

temos uma correção, apenas um problema temporário ao mesclar

Ainda vejo esse problema. Essa correção foi mesclada?

não, não consigo encontrar outro colaborador para aprovar meu PR :(

Essa correção é mesclada?

Talvez retire a versão 1.0.0, desde que você trabalhe em uma correção?

Tem o mesmo problema ao tentar importar:

import { ZoomControlOptions, ControlPosition, ZoomControlStyle } de '@agm/core/services/google-maps-types';

Basta se inscrever para ser notificado da correção. Usará valores mágicos codificados por enquanto

você pode usar 1.0.0-beta.7 por enquanto.
1.0.1 saindo em breve, estou tentando entrar em contato com Sebastian Holstein, mas sem sorte

oi @SebastianM waky waky .... Por favor, vamos lá, vamos acabar com isso

1.0.0-beta.7 quebra com o IVY, então atualmente estamos impedidos de usar este pacote.

Bump @SebastianM , por favor, mantenha este repositório, vamos lá. Mesclar e liberar.

Para 1 pessoas funciona todos nós estamos lutando aqui.

Talvez devêssemos apenas bifurcá-lo? Claramente, as pessoas estão interessadas em usar este pacote.

Ou: https://drewdevault.com/2018/12/04/How-to-abandon-a-FLOSS-project.html
Ou ainda: https://www.codeshelter.co/

Talvez Sebastian possa adicionar os privilégios corretos às colaborações aqui
e voilá problema resolvido.

No sábado, 2 de novembro de 2019, 12:37 Lukas Neumann, [email protected] escreveu:

Talvez devêssemos apenas bifurcá-lo? Claramente, pessoas suficientes estão interessadas em usar
este pacote.

Ou: https://drewdevault.com/2018/12/04/How-to-abandon-a-FLOSS-project.html
Ou ainda: https://www.codeshelter.co/


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/SebastianM/angular-google-maps/issues/1729?email_source=notifications&email_token=AAJVX45GD4L46U7JGGD7FMDQRVQ7FA5CNFSM4IYS2YRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZEC43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZEC43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZEC
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAJVX45ENBM22GNL6UEF26TQRVQ7FANCNFSM4IYS2YRA
.

estou obtendo

Module not found: Error: Can't resolve '@agm/core/services' embora esteja instalado!!

@agm/core: 1.0.0-beta.3

Você pode tentar atualizar para 1.0.0-beta.7?

como faço para atualizá-lo? -> npm install 'agm/core 1.0.0-beta.7' ?

bem, npm install @agm/[email protected] ou npm update @agm/core

Resolvido sem atualizar. tentei

import { GoogleMapsAPIWrapper } from '@agm/core';

e está funcionando com sucesso.

OK. Além disso, você provavelmente não deveria estar usando o GOogleMapsAPIWrapper

Por que você poderia explicar? @doom777

Por que você poderia explicar? @doom777

Acredito que GoolgeMapsAPIWrapper deve ser usado apenas internamente para a biblioteca, não para nós consumidores dela. Você deve usar as ligações de entrada e de evento para o componente principal. Em seu módulo, você importa o AgmCoreModule e o forRoot na seção de importações.

Se você deseja obter acesso direto à API do Google Maps, pode obter o mapa de (mapReady) no componente, assim:

<agm-map [streetViewControl]="false" [latitude]="lat" [longitude]="lng" [styles]="mapStyles" [zoom]="defaultZoom" [zoomControlOptions]="zoomControlOptions" (mapReady)="mapReady($event)" (zoomChange)="zoomChanged($event)"> </agm-map>

No código do componente:

mapReady(map: google.maps.Map) { this.map = map; }

E você pode digitar para o seu mapa instalando @types/googlemaps

@Toomavic
O GoogleMapsApiWrapper destina-se internamente à biblioteca ou às extensões. É imperativo, o que é contra o estilo declarativo do Angular. A maioria das coisas que você faria com o GMAW você deveria ser capaz de fazer com entradas e saídas no agm-map e seus filhos.

@ermcgrat você também pode obter a maioria dos tipos de "@agm/core", pelo menos até que #1648 seja mesclado

Obrigado pessoal .. Muito obrigado 😍😍😍😍😍

Oi, por que este problema está encerrado?
1.1.0 não corrige

Bem, @jimmykane versão 1.1.0 permite:

import { ControlPosition } from '@agm/core'

Olá a todos,

1.1.0 também não corrige isso para mim. ainda tenho isso:
Module '"../../../../node_modules/@agm/core/agm-core"' has no exported member 'MapTypeControlStyle'
Mesmo que tenha exportado:
image

Eu já tentei deletar node_modules e package-lock, mas não melhorou...

Eu ainda estou recebendo esse erro, também.
Module not found: Error: Can't resolve '@agm/core/services/google-maps-types'
Estou tentando acessar por exemplo google.maps.geometry.spherical.computeArea() . Eu posso conseguir isso instalando @types/googlemaps e depois import {} from 'googlemaps'; mas isso parece meio hacky, mais o IntelliJ Idea marca como importação não utilizada. _Optimize imports_ exclui essa linha e quebra o código.
Isso pode ser corrigido por favor? 🙏🏻

tente importar { GoogleMapsAPIWrapper } de '@agm/core';

em vez de importar { GoogleMapsAPIWrapper } de '@agm/core/service';

Isso ainda não foi corrigido na versão 1.1.0. Pode ser reaberto e trabalhado?

Estou enfrentando esse erro. Tentei com versões diferentes e o erro continua...

para todos aqueles que "ainda" estão enfrentando esse erro, não faça importações profundas, faça importações superficiais.

Oi @doom777 isso é endereçado?

sim, se você estiver usando a nova versão 3.0.0, remova a importação completamente, pois não empacotamos mais tipos de google proprietários. Se você estiver usando 1.1.0, apenas importe os tipos de @agm/core , e não dentro da lib

Você poderia me ajudar um pouco aqui?

Vejo agora que o AGM pode obter um QueryList mapControls: QueryList<AgmMapControl>;

Agora fazemos como o quê?

Antes era:

 public mapTypeControlOptions: MapTypeControlOptions = {
    // mapTypeIds: [MapTypeId.HYBRID, MapTypeId.ROADMAP, MapTypeId.SATELLITE, MapTypeId.TERRAIN],
    mapTypeIds: ['hybrid', 'roadmap', 'satellite', 'terrain'],
    position: ControlPosition.LEFT_TOP,
    style: 0
  };

E nos moldes:

<agm-map *ngIf="activitiesMapData.length > 0"
             [mapTypeId]="user && user.settings ? user.settings.mapSettings.mapType : 'roadmap'"
             (mapTypeIdChange)="changeMapType($event)"
             [fullscreenControl]="true"
             [mapTypeControl]="true"
             [scaleControl]="true"
             [rotateControl]="true"
             [zoomControl]="true"
             [gestureHandling]="'cooperative'"
             [scrollwheel]="null"
             [mapTypeControlOptions]="mapTypeControlOptions"
             [zoomControlOptions]="zoomControlOptions"
             [rotateControlOptions]="rotateControlOptions"
             [tilt]="45"
             [controlSize]="32"
             [disableDefaultUI]="true"
             [styles]="getStyles(theme)"
             [streetViewControl]="false">

bem, venha para a discórdia para uma discussão mais aprofundada, mas basicamente

<agm-map *ngIf="activitiesMapData.length > 0"
             [mapTypeId]="user && user.settings ? user.settings.mapSettings.mapType : 'roadmap'"
             (mapTypeIdChange)="changeMapType($event)"
             [gestureHandling]="'cooperative'"
             [scrollwheel]="null"
             [mapTypeControlOptions]="mapTypeControlOptions"
             [zoomControlOptions]="zoomControlOptions"
             [rotateControlOptions]="rotateControlOptions"
             [tilt]="45"
             [controlSize]="32"
             [disableDefaultUI]="true"
             [styles]="getStyles(theme)"
             [streetViewControl]="false">
   <agm-fullscreen-control></agm-fullscreen-control>
   <agm-scale-control></agm-scale-control>
   <agm-map-type-control [style]="style" [mapTypeIds]="mapTypeIds" [position]="position"></agm-map-type-control>

@doom777 Entendi . Vi que isso estava lá e fiquei pensando em participar ou não :-D

Deixe-me tentar seu conselho. Não sabia que agora são elementos. Muito melhor

sim, se você estiver usando a nova versão 3.0.0, remova a importação completamente, pois não empacotamos mais tipos de google proprietários. Se você estiver usando 1.1.0, apenas importe os tipos de @agm/core , e não dentro da lib

Oi @doom777 Ainda estou tendo alguns problemas após atualizar meu projeto:

ERROR in node_modules/@agm/js-marker-clusterer/services/google-clusterer-types.d.ts:1:60 - error TS2307: Cannot find module '@agm/core/services/google-maps-types' or its corresponding type declarations.

1 import { GoogleMap, LatLngBounds, Marker, MVCObject } from '@agm/core/services/google-maps-types';

Eu gostaria de seguir seu conselho para não fazer importações profundas, mas infelizmente esse ainda é o caso em @agm/js-marker-clusterer. Estou esquecendo de algo?

Estas são as versões utilizadas:

"@agm/core": "3.0.0-beta.0",
"@agm/js-marker-clusterer": "^1.1.0",

Desde já, obrigado!

Você tem uma incompatibilidade de versão. Se você estiver usando angular 10, use @agm/[email protected] e @agm/[email protected] .
Se você estiver usando o Angular 9 e anterior, use @agm/[email protected] e @agm/[email protected]

Você tem uma incompatibilidade de versão. Se você estiver usando angular 10, use @agm/[email protected] e @agm/[email protected] .
Se você estiver usando o Angular 9 e anterior, use @agm/[email protected] e @agm/[email protected]

Isso funcionou. Mas eu precisava atualizar de:

import { AgmJsMarkerClustererModule } from '@agm/js-marker-clusterer';

para:

import { AgmMarkerClustererModule } from '@agm/markerclusterer'

No meu módulo. Por alguma razão, [streetViewControl] e [zoomControl] não estavam funcionando. Depois de removê-los, funcionou normalmente. Vou validar nos documentos se algo mudou para essas propriedades.

Além disso, relacionado a @agm/markerclusterer acho que a documentação pode ser atualizada o mais rápido possível.

Correto. As opções de controle foram removidas em favor dos subelementos de controle

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

matishw picture matishw  ·  3Comentários

nthonymiller picture nthonymiller  ·  4Comentários

mensch picture mensch  ·  3Comentários

supran2811 picture supran2811  ·  4Comentários

Subhojit1992 picture Subhojit1992  ·  3Comentários