From 65516f1e51c58876da7bbe586a6a56789c0c1471 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 3 May 2018 13:46:54 +0200 Subject: [PATCH] google maps api canvas JS doc --- .../canvas/GoogleMaps/GoogleMapsApiCanvas.js | 28 +++++++++++++++-- .../GoogleMaps/GoogleMapsApiInfoWindow.js | 2 ++ .../canvas/GoogleMaps/GoogleMapsApiMarker.js | 3 +- .../GoogleMaps/GoogleMapsApiPolyline.js | 31 +++++++++++++++++++ .../GoogleMaps/GoogleMapsApiRectangle.js | 31 ++++++++++++++++++- .../src/main/js/map/canvas/InfoWindow.js | 1 + .../map/canvas/OpenLayers/OpenLayerCanvas.js | 7 ++++- .../canvas/OpenLayers/OpenLayerPolyline.js | 4 +++ frontend-js/src/main/js/map/canvas/Point.js | 4 +-- .../src/main/js/map/canvas/Rectangle.js | 2 ++ frontend-js/src/test/js/google-map-mock.js | 10 ++++++ 11 files changed, 115 insertions(+), 8 deletions(-) diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js index 4386bbdc3f..564ffe53fa 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js @@ -13,6 +13,21 @@ var GoogleMapsApiMarker = require('./GoogleMapsApiMarker'); var GoogleMapsApiPolyline = require('./GoogleMapsApiPolyline'); var GoogleMapsApiRectangle = require('./GoogleMapsApiRectangle'); +/** + * + * @param {HTMLElement} element + * @param {Object} options + * @param {number} options.tileSize + * @param {number} options.minZoom + * @param {number} options.height + * @param {number} options.width + * @param {number} options.zoom + * @param {Point} options.center + * @param {Object[]} options.backgroundOverlays + * @constructor + * @extends MapCanvas + */ + function GoogleMapsApiCanvas(element, options) { MapCanvas.call(this, element, options); @@ -48,6 +63,10 @@ function GoogleMapsApiCanvas(element, options) { GoogleMapsApiCanvas.prototype = Object.create(MapCanvas.prototype); GoogleMapsApiCanvas.prototype.constructor = GoogleMapsApiCanvas; +/** + * + * @param {google.maps.Map} map + */ GoogleMapsApiCanvas.prototype.setGoogleMap = function (map) { this._map = map; }; @@ -177,14 +196,14 @@ GoogleMapsApiCanvas.prototype.addCenterButton = function () { * * @param {google.maps.LatLng} latLng * coordinates in LatLng format - * @param {number} z + * @param {number} zoom * zoom level at which we want to find coordinates of tile * @return {Point} coordinates of a tile */ -GoogleMapsApiCanvas.prototype.latLngToTile = function (latLng, z) { +GoogleMapsApiCanvas.prototype.latLngToTile = function (latLng, zoom) { var self = this; var worldCoordinate = self.fromLatLngToPoint(latLng); - var pixelCoordinate = new Point(worldCoordinate.x * Math.pow(2, z), worldCoordinate.y * Math.pow(2, z)); + var pixelCoordinate = new Point(worldCoordinate.x * Math.pow(2, zoom), worldCoordinate.y * Math.pow(2, zoom)); return new Point(Math.floor(pixelCoordinate.x / self.getOptions().tileSize), Math .floor(pixelCoordinate.y / self.getOptions().tileSize)); }; @@ -467,6 +486,8 @@ GoogleMapsApiCanvas.prototype.isDrawingOn = function () { /** * Sets selectedArea on this map. * + * + * @param {Object} area */ GoogleMapsApiCanvas.prototype.setSelectedArea = function (area) { this._selectedArea = area; @@ -475,6 +496,7 @@ GoogleMapsApiCanvas.prototype.setSelectedArea = function (area) { /** * Returns selectedArea on this map. * + * @returns {Object} */ GoogleMapsApiCanvas.prototype.getSelectedArea = function () { return this._selectedArea; diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiInfoWindow.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiInfoWindow.js index dd97344612..d3f3e12ed1 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiInfoWindow.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiInfoWindow.js @@ -11,7 +11,9 @@ var logger = require('../../../logger'); * @param {GoogleMapsApiMarker} [options.marker] * @param {string} options.id * @param {GoogleMapsApiCanvas} options.map + * * @constructor + * @extends InfoWindow */ function GoogleMapsApiInfoWindow(options) { InfoWindow.call(this, options); diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiMarker.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiMarker.js index 43085484e2..15ee96ce6c 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiMarker.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiMarker.js @@ -14,7 +14,8 @@ var logger = require('../../../logger'); * @param {string} options.id * @param {GoogleMapsApiCanvas} options.map - * @returns {GoogleMapsApiMarker} + * @constructor + * @extends {Marker} */ function GoogleMapsApiMarker(options) { diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiPolyline.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiPolyline.js index 9b0ea4dfcf..dcf4ca9a7a 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiPolyline.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiPolyline.js @@ -6,6 +6,16 @@ var Bounds = require('../Bounds'); // noinspection JSUnusedLocalSymbols var logger = require('../../../logger'); +/** + * @param {MapCanvas} options.map + * @param {Point[]} options.path + * @param {string} options.strokeColor + * @param {number} options.strokeWeight + * @param {number} options.strokeOpacity + * + * @constructor + * @augments {Polyline} + */ function GoogleMapsApiPolyline(options) { Polyline.call(this, options); @@ -28,10 +38,18 @@ function GoogleMapsApiPolyline(options) { GoogleMapsApiPolyline.prototype = Object.create(Polyline.prototype); GoogleMapsApiPolyline.prototype.constructor = GoogleMapsApiPolyline; +/** + * + * @param {google.maps.Polyline} polyline + */ GoogleMapsApiPolyline.prototype.setGooglePolyline = function (polyline) { this._polyline = polyline; }; +/** + * + * @returns {google.maps.Polyline} + */ GoogleMapsApiPolyline.prototype.getGooglePolyline = function () { return this._polyline; }; @@ -53,11 +71,20 @@ GoogleMapsApiPolyline.prototype.hide = function () { this.getGooglePolyline().setMap(null); } }; + +/** + * + * @returns {boolean} + */ GoogleMapsApiPolyline.prototype.isShown = function () { var googlePolyline = this.getGooglePolyline(); return googlePolyline.getMap() !== null && googlePolyline.getMap() !== undefined; }; +/** + * + * @returns {Bounds} + */ GoogleMapsApiPolyline.prototype.getBounds = function () { var result = new Bounds(); for (var i = 0; i < this.getGooglePolyline().getPath().getLength(); i++) { @@ -68,6 +95,10 @@ GoogleMapsApiPolyline.prototype.getBounds = function () { return result; }; +/** + * + * @param {Object} options + */ GoogleMapsApiPolyline.prototype.setOptions = function (options) { this.getGooglePolyline().setOptions(options); }; diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiRectangle.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiRectangle.js index 5a1ae4545c..ba6b277e1e 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiRectangle.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiRectangle.js @@ -8,7 +8,15 @@ var logger = require('../../../logger'); /** * - * @param options + * @param {MapCanvas} options.map + * @param {Bounds} options.bounds + * @param {MapCanvas} options.fillOpacity + * @param {number} options.id + * @param {number} options.strokeWeight + * @param {string} options.fillColor + * @param {string} options.strokeColor + * @param {number} options.strokeOpacity + * * @constructor * @extends Rectangle */ @@ -37,10 +45,18 @@ function GoogleMapsApiRectangle(options) { GoogleMapsApiRectangle.prototype = Object.create(Rectangle.prototype); GoogleMapsApiRectangle.prototype.constructor = GoogleMapsApiRectangle; +/** + * + * @param {google.maps.Rectangle} rectangle + */ GoogleMapsApiRectangle.prototype.setGoogleRectangle = function (rectangle) { this._rectangle = rectangle; }; +/** + * + * @returns {google.maps.Rectangle} + */ GoogleMapsApiRectangle.prototype.getGoogleRectangle = function () { return this._rectangle; }; @@ -62,6 +78,11 @@ GoogleMapsApiRectangle.prototype.hide = function () { this.getGoogleRectangle().setMap(null); } }; + +/** + * + * @returns {boolean} + */ GoogleMapsApiRectangle.prototype.isShown = function () { var googleRectangle = this.getGoogleRectangle(); return googleRectangle.getMap() !== null && googleRectangle.getMap() !== undefined; @@ -78,6 +99,10 @@ GoogleMapsApiRectangle.prototype.setBounds = function (bounds) { this.getGoogleRectangle().setBounds(latLngBounds); }; +/** + * + * @returns {Bounds} + */ GoogleMapsApiRectangle.prototype.getBounds = function () { var latLngBounds = this.getGoogleRectangle().getBounds(); var result = new Bounds(); @@ -86,6 +111,10 @@ GoogleMapsApiRectangle.prototype.getBounds = function () { return result; }; +/** + * + * @param {Object} options + */ GoogleMapsApiRectangle.prototype.setOptions = function (options) { this.getGoogleRectangle().setOptions(options); }; diff --git a/frontend-js/src/main/js/map/canvas/InfoWindow.js b/frontend-js/src/main/js/map/canvas/InfoWindow.js index 9072826958..03061229dd 100644 --- a/frontend-js/src/main/js/map/canvas/InfoWindow.js +++ b/frontend-js/src/main/js/map/canvas/InfoWindow.js @@ -1,6 +1,7 @@ "use strict"; var MapCanvas = require('./MapCanvas'); +var Marker = require('./Marker'); // noinspection JSUnusedLocalSymbols var logger = require('../../logger'); diff --git a/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerCanvas.js b/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerCanvas.js index 2d25020b91..1eb40e1a5a 100644 --- a/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerCanvas.js +++ b/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerCanvas.js @@ -221,7 +221,7 @@ OpenLayerCanvas.prototype.createLayers = function (options) { } }) }); - layer.on('change:visible', function (e) { + layer.on('change:visible', function () { if (layer.getVisible()) { return self.callListeners("maptypeid_changed"); } @@ -272,6 +272,11 @@ OpenLayerCanvas.prototype.createRectangle = function (options) { return new OpenLayerRectangle(options); }; +/** + * + * @param options + * @returns {OpenLayerPolyline} + */ OpenLayerCanvas.prototype.createPolyline = function (options) { options.map = this; options.source = this._polylineLayer.getSource(); diff --git a/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerPolyline.js b/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerPolyline.js index b1770a9dce..e87a516537 100644 --- a/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerPolyline.js +++ b/frontend-js/src/main/js/map/canvas/OpenLayers/OpenLayerPolyline.js @@ -92,6 +92,10 @@ OpenLayerPolyline.prototype.getBounds = function () { return new Bounds(p1, p2); }; +/** + * + * @param options + */ OpenLayerPolyline.prototype.setOptions = function (options) { var self = this; self._options = Object.assign(self._options, options); diff --git a/frontend-js/src/main/js/map/canvas/Point.js b/frontend-js/src/main/js/map/canvas/Point.js index fc4bbd218d..ae53c33437 100644 --- a/frontend-js/src/main/js/map/canvas/Point.js +++ b/frontend-js/src/main/js/map/canvas/Point.js @@ -5,8 +5,8 @@ var logger = require('../../logger'); /** * - * @param {number} x - * @param {number} y + * @param {number|string||Point} x + * @param {number|string} [y] * @constructor */ function Point(x, y) { diff --git a/frontend-js/src/main/js/map/canvas/Rectangle.js b/frontend-js/src/main/js/map/canvas/Rectangle.js index 01c5986b1c..b30ec9c9ea 100644 --- a/frontend-js/src/main/js/map/canvas/Rectangle.js +++ b/frontend-js/src/main/js/map/canvas/Rectangle.js @@ -37,6 +37,7 @@ Rectangle.prototype.getBounds = function () { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols /** * * @param {Bounds} bounds @@ -45,6 +46,7 @@ Rectangle.prototype.setBounds = function (bounds) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols /** * * @param {Object} options diff --git a/frontend-js/src/test/js/google-map-mock.js b/frontend-js/src/test/js/google-map-mock.js index 013407b5a6..921f1604be 100644 --- a/frontend-js/src/test/js/google-map-mock.js +++ b/frontend-js/src/test/js/google-map-mock.js @@ -2,6 +2,10 @@ var Promise = require("bluebird"); +/** + * @typedef {Object} google.maps.Marker + */ + /* exported logger */ // noinspection JSUnusedLocalSymbols @@ -154,6 +158,12 @@ var google = { this.setContent = function () { }; }, + /** + * + * @param options + * @returns {google.maps.Marker} + * @constructor + */ Marker: function (options) { this.options = options; this.position = options.position; -- GitLab