/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Dario Di Nucci * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Dario Di Nucci */ import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import {Application} from './application.js'; import * as Color from './color.js'; import {Location} from './location.js'; import {MapMarker} from './mapMarker.js'; import {Place} from './place.js'; import * as Utils from './utils.js'; export class TurnPointMarker extends MapMarker { constructor({queryPoint, turnPoint, transitStop, transitLeg, ...params}) { let latitude; let longitude; if (turnPoint) { latitude = turnPoint.coordinate.get_latitude(); longitude = turnPoint.coordinate.get_longitude(); } else { latitude = transitStop.coordinate[0]; longitude = transitStop.coordinate[1]; } let place = new Place({ location: new Location({ latitude: latitude, longitude: longitude }) }); super({...params, place: place}); this._queryPoint = queryPoint; if (this._queryPoint) { this._image.paintable = this._paintableFromIconName(turnPoint.iconName, 16); } else { let color = this._getColor(transitLeg); this._image.paintable = this._paintableFromIconName('maps-point-end-symbolic', 16, color); } } _getColor(transitLeg) { /* Use the route color from the transit leg when representing part of * a transit trip, otherwise let the fallback functionality of the * utility function use a GNOMEish blue color for turn-by-turn routing. */ let color = transitLeg?.color; return new Gdk.RGBA({ red: Color.parseColor(color, 0, 33 / 255), green: Color.parseColor(color, 1, 93 / 255), blue: Color.parseColor(color, 2, 155 / 255), alpha: 255 }); } goTo() { this._mapView.map.go_to(this.latitude, this.longitude); } } GObject.registerClass(TurnPointMarker);