我正在尝试在Angular 7应用程序中使用latlon-geohash npm包,但是当我运行它时,出现此错误...



这是我的代码:

import { Component, OnInit, Output, EventEmitter } from '@angular/core';
import * as gh from 'latlon-geohash';

@Component({
  selector: 'app-account',
  templateUrl: './account.component.html',
  styleUrls: ['./account.component.scss'],
})
export class AccountComponent implements OnInit {

  constructor() {

  }

  ngOnInit() {
     //Here I'm trying to encode my lat and lng to a GeoHash
    console.log(gh.encode(39.36, -76.69, 4))
  }

}

而且它不起作用。但是,当我运行console.log(gh)时,我得到了...
Module {default: ƒ, __esModule: true, Symbol(Symbol.toStringTag): "Module"}
default: class Geohash
adjacent: ƒ adjacent(geohash, direction)
arguments: (...)
bounds: ƒ bounds(geohash)
caller: (...)
decode: ƒ decode(geohash)
encode: ƒ encode(lat, lon, precision) //HERE IS MY FUNCTION
length: 0
name: "Geohash"
neighbours: ƒ neighbours(geohash)
prototype: {constructor: ƒ}
__proto__: ƒ ()
[[FunctionLocation]]: latlon-geohash.js:11
[[Scopes]]: Scopes[3]
Symbol(Symbol.toStringTag): "Module"
__esModule: true
__proto__: Object

我在那里看到了encode函数。为什么不起作用?我似乎找不到答案,但是我觉得可能缺少一些非常简单的东西。有任何想法吗?

最佳答案

您应该将latlon-geohash添加到angular.json内的脚本中。必须在scriptsangular.json内部提供任何第三方脚本/库。提供latlon-geohash.js到angular项目的完整相对路径,以使其可供使用。

确保您也重建项目

前任:

"scripts": [
            "./node_modules/path-to-lib/latlon-geohash.js",

还将导入添加到您的组件中:Tony提到的import Geohash from 'latlon-geohash';

这是stackblitz link供您尝试

关于javascript - 如何在angular 7中使用npm包('latlon-geohash'),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57097651/

10-10 07:43