1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/* -*- 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 <http://www.gnu.org/licenses/>.
*
* Author: Dario Di Nucci <linkin88mail@gmail.com>
*/
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);
|