在angular2中动态更改地图语言

时间:2017-07-05 05:38:34

标签: angular google-maps

我正在使用AgmCoreModule来加载谷歌地图。 是否可以在选择语言时动态更改地图语言?

我可以使用以下代码

在地图加载时设置默认语言
@NgModule({
  imports: [ 
    AgmCoreModule.forRoot({
      libraries: ["places"],
      language: 'de'
    }),
    ...
    ]
})  

但我真正需要的是改变从下拉列表中选择的语言的地图语言。 如何在MapsAPILoader中设置语言?

this._mapsAPILoader.load().then(() => {
...
});

感谢。

2 个答案:

答案 0 :(得分:1)

试试这个:

imports: [
      BrowserModule,
      AgmCoreModule.forRoot({
          apiKey: 'yourmapapikey',
          language: 'iw',
      })
  ],

iw - 希伯来语, 检查here是否有您的语言。

答案 1 :(得分:0)

为了替换语言,您首先应该删除脚本和Google地图, 然后再次生成它,等待一段时间,直到重新加载 您可以这样做:

async loadScript() {
var oldScript = document.getElementById("agmGoogleMapsApiScript");
if (oldScript !== null) {
  oldScript.parentNode.removeChild(oldScript);
  delete google.maps;
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = 'https://maps.googleapis.com/maps/api/js? 
v=3&key={{YourApiKey}}&region=israel&language= 
{{language}}';
script.id = "agmGoogleMapsApiScript";
document.body.appendChild(script);
await new Promise(resolve => setTimeout(resolve, 1000));
}

然后您应该重新加载agm-core映射,可以通过退出组件来完成。

不要忘了这样声明Google:

declare var google: any;

为我工作,希望对您有所帮助:)