我试图在Angular 7应用中使用latlon-geohash npm软件包,但是当我运行它时,出现此错误...
错误TypeError:latlon_geohash__WEBPACK_IMPORTED_MODULE_8 __。encode是 不是功能
这是我的代码:
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
函数。为什么不起作用?我似乎找不到答案,但是我觉得可能缺少一些非常简单的东西。有什么想法吗?
答案 0 :(得分:2)
尝试以下两种方法以查看其是否有效
import Geohash from 'latlon-geohash';
或
const Geohash = require('latlon-geohash')
答案 1 :(得分:1)
您应将latlon-geohash
添加到angular.json
中的脚本中。必须在scripts
的{{1}}内部提供任何第三方脚本/库。提供angular.json
到角度项目的完整相对路径,以使其可供使用。
确保您也重建您的项目。
EX:
latlon-geohash.js
还要将导入内容添加到您的组件:"scripts": [
"./node_modules/path-to-lib/latlon-geohash.js",
,如Tony所述。
这是stackblitz link供您尝试