错误:没有为node-googlemaps定义GoogleMapsAPI

时间:2015-09-27 12:43:43

标签: node.js google-maps-api-3 google-api npm sails.js

我正在使用node-googlemaps从Node js查询Google Maps API。我已经创建了我的Server API密钥作为开发人员。根据{{​​3}}文档,我必须使用 API 键和某些其他参数创建publicConfig变量。我的publicConfig变量如下:

 var gm = require('googlemaps');
 var publicConfig = {
  key: 'myKey',
  stagger_time:1000, // for elevationPath
  encode_polylines:false,
  secure:true // use https
};
 var gmAPI = new GoogleMapsAPI(publicConfig);

当我运行代码时,我收到以下错误

 ReferenceError: GoogleMapsAPI is not defined

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:11)

要解决此问题,我已添加以下代码行

CSV to D3 Flare JSON converter in AngularJSPreview Edit Code
index.html
main.js
main.css
main.js
angular.module('myApp', ['angularFileUpload'])

.factory('FlareJson', ['$q', function($q) {
  function updateTree(curr, arr, tags) {
    if ((arr.length || 0) < 2) {
      return;
    }

    if (!curr.hasOwnProperty(tags.children)) {
      curr[tags.children] = [];
    }

    var elem;    
    if (arr.length == 2) {
      elem = {};
      elem[tags.leaf] = arr[0];
      elem[tags.size] = arr[1];
      curr[tags.children].push(elem);
    } else {
      curr[tags.children].some(function(e) {
        if (e[tags.parent] == arr[0] || e[tags.leaf] == arr[0]) {
          elem = e;
          return true;
        }
      });
      if (!elem) {
        elem = {};
        elem[tags.parent] = arr[0];
        curr[tags.children].push(elem);
      }
      updateTree(elem, arr.slice(1), tags);
    }
  }

  function buildJson(csv, compact, tags) {
    var deferred = $q.defer();

    var result = {};
    result[tags.parent] = 'flare';

    Papa.parse(csv, {
      header: false,
      dynamicTyping: true,
      complete: function(csvArray) {
        csvArray.data.forEach(function(line) {
          if (line.length) {
            updateTree(result, line, tags);
          }
        });
        if (compact) {
          deferred.resolve(JSON.stringify(result));
        } else {
          deferred.resolve(JSON.stringify(result, null, 2));
        }
      }
    });

    return deferred.promise;
  }

  return buildJson;
}])

.controller('MyCtrl', ['$scope', 'FileUploader', 'FlareJson',
function($scope, FileUploader, FlareJson) {
  $scope.csv = "";
  $scope.compact = false;
  $scope.json = "";
  $scope.tags = {
    parent: 'skill',
    children: 'children',
    leaf: 'name',
    size: 'level'
  };

  $scope.uploader = new FileUploader();

  $scope.uploader.onAfterAddingFile = function(fileItem) {
    var reader = new FileReader();
    reader.onloadend = function(event) {
      $scope.$apply(function() {
        if ($scope.append) {
          $scope.csv += event.target.result;
        } else {
          $scope.csv = event.target.result;
        }
      });
    };
    reader.readAsText(fileItem._file);
  };

  function update() {
    FlareJson($scope.csv, $scope.compact, $scope.tags).then(function(json) {
      $scope.json = json;
    });
  }

  $scope.$watchGroup(['csv', 'compact'], update);
  $scope.$watchCollection('tags', update);
}]);