网站搜索

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。