突然间我面临以下问题。
找不到模块:错误:无法解析“@agm/core/services/google-maps-types”
包.json
"@agm/core": "^1.0.0",
“@agm/js-marker-clusterer”:“^1.0.0”
同样在这里
你可以删除 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
};
}
结果:
@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
这似乎是一个堆栈闪电战错误
你能试试吗?
packages\core\map-types.ts
ControlPosition
添加到导出列表yarn build
构建库npm link
链接库(如果你以前没有使用过 npm 链接,谷歌教程)请尝试我的 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 个人的工作,我们都在这里挣扎。
也许塞巴斯蒂安可以在这里为合作添加正确的权限
瞧,问题解决了。
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'
尽管它确实已导出:
我已经尝试过删除 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
有关,我认为文档可能会尽快更新。
正确的。 已删除控制选项以支持控制子元素
最有用的评论
@jimmykane您应该确保您的 package.json 指定
"@agm/core: "1.0.0-beta.7"
而不是@agm/core: "^1.0.0-beta.7"
因为这意味着您拥有1.0.0
版本,它不会公开相同的界面。我们正在努力解决这个问题,但我们还需要解决其他导入问题。