json - 来自导入文件而非数据库的 Google 地图坐标
我有几个 JSON 数组的 polyLine 坐标,我想在使用 Angular 的谷歌地图上显示它们。与其像下面这样在行内定义它们,我更希望从另一个文件导入这些 const 数组。
坐标的更改将极为罕见(它们代表几个美国州的边界),在我看来,这些数组并不够大,不值得创建一个新的数据库表以及所有相关的程序结构。但它们足够大,会因为在 ngOnInit() 中定义而让我的代码变得丑陋。
ngOnInit() {
const mapOptions = {
center: {lat: 0, lng: -180},
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
const myMap = new google.maps.Map(document.getElementById("my-map"), mapOptions);
const flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];
const flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(myMap);
}
上面的坐标来自 Google 的文档,但原则是相同的:我希望将 flightPlanCoordinates 以及其他坐标数组定义在一个单独的文件中,以便我可以在这个组件中导入和使用。我一直没有成功,因为似乎从外部 .ts 文件导入的任何内容在运行时都超出了作用域。我只是把数组定义剪切/粘贴到我的外部 .ts 文件中,因为我不确定还需要哪些其他支持数据结构。我在 Typescript 上还很菜,所以我肯定犯了一个简单的错误。
答案#1
我在我的项目中所做的是将它作为常量导出到一个单独的文件中:
server.config.ts:
export const ServerConfig = {
apiEndPoint: ....,
...
}
然后将其导入到项目中:
import {ServerConfig} from './server.config';
然后我可以使用它:
db = ServerConfig.apiEndPoint;
答案#2
使用 AJAX 调用或类似的方法,并将结果放入 flightPlanCoordinates。
