Angular-google-maps: 未找到模块:'@agm/core/services/google-maps-types'

创建于 2019-09-20  ·  54评论  ·  资料来源: SebastianM/angular-google-maps

突然间我面临以下问题。

找不到模块:错误:无法解析“@agm/core/services/google-maps-types”

包.json

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

最有用的评论

@jimmykane您应该确保您的 package.json 指定"@agm/core: "1.0.0-beta.7"而不是@agm/core: "^1.0.0-beta.7"因为这意味着您拥有1.0.0版本,它不会公开相同的界面。

我们正在努力解决这个问题,但我们还需要解决其他导入问题。

所有54条评论

同样在这里

你可以删除 node_modules 并重新运行npm install

@doom777我已经做过很多次了。 没有运气。

下面的示例代码片段,

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

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

嗯,stackblitz 现在有自己的问题。 我没有成功复制。

这是我正在尝试的:

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

将 AgmCoreModule.forRoot 添加到 AppModule

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

零件:

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
  };
}

结果:
image

@doom777这是它不起作用的一个例子: https ://stackblitz.com/edit/angular-krqwfi?file=src%2Fapp%2Fapp.module.ts
我所做的只是添加@agm/core并尝试导入 FitBoundsService

我只是得到

未捕获(承诺中)错误:在配置中未指定预设
Object.config (webcontainer.5f16b010d2745c788a2.js:15)
在 t.config (webcontainer.5f16b010d2745c788a2.js:15)
在 Be (preview-4858aaa60d96ac0657bab.js:1)
在 preview-4858aaa60d96ac06

57bab.js:1

这似乎是一个堆栈闪电战错误

你能试试吗?

  1. 克隆这个库
  2. 转到packages\core\map-types.ts
  3. ControlPosition添加到导出列表
  4. 使用yarn build构建库
  5. npm link链接库(如果你以前没有使用过 npm 链接,谷歌教程)
  6. 看看它是否开始工作

请尝试我的 PR https://github.com/SebastianM/angular-google-maps/pull/1730并告诉我们它是否解决了问题。

您必须将 ControlPosition 和其他的导入更改为 '@agm/core'

@doom777我已经克隆、构建和测试了 #1730。 它按预期工作。

@doom777这似乎是由于 ng-packager 打包东西的方式。

与其让人们为此更新他们的导入,然后为#1648 更新他们的导入,我们应该只专注于让#1648 处理任何谷歌地图导入吗? (对于不是通过 @agm/core 导入而是从@agm/core/{directives,services}导入的指令/服务,可能需要您对 #1730 的更改

只是要清楚 ng-packagr关于 API 表面的潜在破坏性变化,其中 #1648 正在破坏同一表面(谷歌地图类型导入)

我添加了#1731,这是该模块的 ng-packagr 更改,但它没有解决来自@agm/core/*的不是@agm/core/services/google-maps-types的导入(包括@agm/core/services@agm/core/directives )

当我尝试从 @agm/core/services/google-maps-types 导入 {google} 时出现此错误。 我也尝试过多次删除 node_modules 并重新运行 npm install 。 请帮我找到解决方案。

@pasqualepalmaccio如果它正在生产,请返回 1.0.0-beta.7。 否则,请等到我们发布修复程序。

更新后我有同样的问题。 有一些解决方法吗?

@jimmykane您应该确保您的 package.json 指定"@agm/core: "1.0.0-beta.7"而不是@agm/core: "^1.0.0-beta.7"因为这意味着您拥有1.0.0版本,它不会公开相同的界面。

我们正在努力解决这个问题,但我们还需要解决其他导入问题。

我们有一个修复,只是临时问题合并它

我仍然看到这个问题,这个修复合并了吗?

不,找不到其他贡献者来批准我的 PR :(

这个修复合并了吗?

只要您进行修复,也许可以撤回 1.0.0 版本?

尝试导入时遇到同样的问题:

从“@agm/core/services/google-maps-types”导入 { ZoomControlOptions、ControlPosition、ZoomControlStyle };

只需注册即可获得修复通知。 现在将使用硬编码的魔法值

您现在可以使用 1.0.0-beta.7。
1.0.1 即将发布,我正在尝试联系 Sebastian Holstein,但没有成功

@SebastianM waky waky ....请来吧,让我们碰一下

1.0.0-beta.7 与 IVY 中断,所以目前我们无法使用这个包。

Bump @SebastianM请保持这个 repo 来吧。 合并和释放。

对于 1 个人的工作,我们都在这里挣扎。

也许我们应该分叉它? 显然,人们对使用这个包很感兴趣。

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

也许塞巴斯蒂安可以在这里为合作添加正确的权限
瞧,问题解决了。

2019 年 11 月 2 日星期六 12:37 Lukas Neumann, notifications @github.com 写道:

也许我们应该分叉它? 显然,人们有兴趣使用
这个包。

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


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/SebastianM/angular-google-maps/issues/1729?email_source=notifications&email_token=AAJVX45GD4L46U7JGGD7FMDQRVQ7FA5CNFSM4IYS2YRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC4Z6DY#issue
或退订
https://github.com/notifications/unsubscribe-auth/AAJVX45ENBM22GNL6UEF26TQRVQ7FANCNFSM4IYS2YRA
.

我正进入(状态

Module not found: Error: Can't resolve '@agm/core/services'虽然已经安装!!

@agm/核心:1.0.0-beta.3

您可以尝试升级到 1.0.0-beta.7 吗?

我如何升级它? -> npm install 'agm/core 1.0.0-beta.7' ?

好吧, npm install @agm/[email protected]npm update @agm/core

无需更新即可解决。 我试过了

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

它正在成功运行。

好的。 此外,您可能不应该使用 GOogleMapsAPIWrapper

为什么能解释一下? @厄运777

为什么能解释一下? @厄运777

我相信 GoolgeMapsAPIWrapper 只是为了在图书馆内部使用,而不是为我们的消费者使用。 您应该使用主组件的输入和事件绑定。 在你的模块中,你导入 AgmCoreModule,并在你的导入部分 forRoot 它。

如果您想直接访问 google maps api,您可以从组件上的 (mapReady) 获取地图,如下所示:

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

在组件代码中:

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

您可以通过安装@types/googlemaps 为您的地图输入内容

@Toomavic
GoogleMapsApiWrapper 在内部用于库或扩展。 这是必要的,这与 Angular 的声明式风格背道而驰。 您使用 GMAW 所做的大部分事情,您应该能够使用 agm-map 及其子项上的输入和输出来完成。

@ermcgrat您还可以从“@agm/core”中获取大多数类型,至少在 #1648 被合并之前

谢谢你们..非常感谢😍😍😍😍😍

嗨,为什么这个问题被关闭了?
1.1.0 没有修复

好吧, @jimmykane 1.1.0 版允许您:

import { ControlPosition } from '@agm/core'

大家好,

1.1.0 也没有为我修复它。 我还有这个:
Module '"../../../../node_modules/@agm/core/agm-core"' has no exported member 'MapTypeControlStyle'
尽管它确实已导出:
image

我已经尝试过删除 node_modules 和 package-lock,虽然没有做得更好......

我也仍然收到此错误。
Module not found: Error: Can't resolve '@agm/core/services/google-maps-types'
我正在尝试访问例如google.maps.geometry.spherical.computeArea() 。 我可以通过安装@types/googlemaps然后安装 $#$ import {} from 'googlemaps'; $#$ 来实现这一点,但这感觉有点 hacky 加上 IntelliJ Idea 将其标记为未使用的导入。 _Optimize imports_ 然后删除此行并中断代码。
请问这个可以修吗? 🙏🏻

尝试从 '@agm/core' 导入 { GoogleMapsAPIWrapper };

而不是从“@agm/core/service”导入 { GoogleMapsAPIWrapper };

这在 1.1.0 中仍未修复。 可以重新打开并进行处理吗?

我正面临这个错误。 我尝试了不同的版本,但错误仍然存​​在......

对于所有“仍然”面临这个错误的人,不要做深进口,做浅进口。

@doom777这是解决的吗?

是的,如果您使用的是新的 3.0.0 版本,请完全删除导入,因为我们不再打包专有的 google 类型。 如果您使用的是 1.1.0,只需从@agm/core导入类型,而不是在 lib 深处

你能帮我一下吗?

我现在看到 AGM 可以获得一个 QueryList mapControls: QueryList<AgmMapControl>;

我们现在是做什么的?

之前是:

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

在模板上:

<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">

好吧,来不和谐以进一步讨论,但基本上

<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罗杰。 看到它在那里,我想知道是否加入:-D

让我试试你的建议。 我不知道它们现在是元素。 好多了

是的,如果您使用的是新的 3.0.0 版本,请完全删除导入,因为我们不再打包专有的 google 类型。 如果您使用的是 1.1.0,只需从@agm/core导入类型,而不是在 lib 深处

@doom777更新项目后我仍然遇到一些问题:

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';

我想接受您的建议,不要进行深度导入,但不幸的是,@agm/js-marker-clusterer 仍然是这种情况。 我错过了什么吗?

这些是使用的版本:

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

提前致谢!

您的版本不匹配。 如果您使用 angular 10,则使用@agm/[email protected]@agm/[email protected]
如果您使用的是 Angular 9 及更早版本,请使用@agm/[email protected]@agm/[email protected]

您的版本不匹配。 如果您使用 angular 10,则使用@agm/[email protected]@agm/[email protected]
如果您使用的是 Angular 9 及更早版本,请使用@agm/[email protected]@agm/[email protected]

这行得通。 但我需要更新:

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

到:

import { AgmMarkerClustererModule } from '@agm/markerclusterer'

在我的模块中。 由于某种原因, [streetViewControl][zoomControl]不起作用。 删除它们后,它可以正常工作。 如果这些属性发生了变化,我将在文档中进行验证。

除此之外,与@agm/markerclusterer有关,我认为文档可能会尽快更新。

正确的。 已删除控制选项以支持控制子元素

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Subhojit1992 picture Subhojit1992  ·  3评论

maneesht picture maneesht  ·  3评论

nthonymiller picture nthonymiller  ·  4评论

Halynsky picture Halynsky  ·  3评论

supran2811 picture supran2811  ·  4评论