aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs62
-rw-r--r--src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs57
-rw-r--r--src/frontend/app/components/PlannerOverlay.tsx9
-rw-r--r--src/frontend/app/components/StopGalleryItem.tsx11
-rw-r--r--src/frontend/app/components/StopItem.tsx11
-rw-r--r--src/frontend/app/components/stop/StopMapModal.tsx1
-rw-r--r--src/frontend/app/config/constants.ts1
-rw-r--r--src/frontend/app/data/StopDataProvider.ts258
-rw-r--r--src/frontend/app/routes/favourites.tsx28
-rw-r--r--src/frontend/app/routes/home.tsx185
-rw-r--r--src/frontend/app/routes/map.tsx44
-rw-r--r--src/frontend/public/stops/vigo.json12884
12 files changed, 372 insertions, 13179 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs b/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs
index 6096b53..a0e8505 100644
--- a/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs
+++ b/src/Costasdev.Busurbano.Backend/Controllers/ArrivalsController.cs
@@ -182,6 +182,68 @@ public partial class ArrivalsController : ControllerBase
return -30;
}
+ [HttpGet]
+ public async Task<IActionResult> GetStops([FromQuery] string ids)
+ {
+ if (string.IsNullOrWhiteSpace(ids))
+ {
+ return BadRequest("Ids parameter is required");
+ }
+
+ var stopIds = ids.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
+ var requestContent = StopsInfoContent.Query(new StopsInfoContent.Args(stopIds));
+
+ var request = new HttpRequestMessage(HttpMethod.Post, $"{_config.OpenTripPlannerBaseUrl}/gtfs/v1");
+ request.Content = JsonContent.Create(new GraphClientRequest
+ {
+ Query = requestContent
+ });
+
+ var response = await _httpClient.SendAsync(request);
+ var responseBody = await response.Content.ReadFromJsonAsync<GraphClientResponse<StopsInfoResponse>>();
+
+ if (responseBody is not { IsSuccess: true } || responseBody.Data?.Stops == null)
+ {
+ return StatusCode(500, "Error fetching stops data");
+ }
+
+ var result = responseBody.Data.Stops.ToDictionary(
+ s => s.GtfsId,
+ s =>
+ {
+ var feedId = s.GtfsId.Split(':', 2)[0];
+ var (fallbackColor, _) = _feedService.GetFallbackColourForFeed(feedId);
+
+ return new
+ {
+ id = s.GtfsId,
+ code = _feedService.NormalizeStopCode(feedId, s.Code ?? ""),
+ name = s.Name,
+ routes = s.Routes
+ .OrderBy(r => r.ShortName, Comparer<string?>.Create(SortingHelper.SortRouteShortNames))
+ .Select(r => new
+ {
+ shortName = _feedService.NormalizeRouteShortName(feedId, r.ShortName ?? ""),
+ colour = r.Color ?? fallbackColor,
+ textColour = r.TextColor is null or "000000" ?
+ ContrastHelper.GetBestTextColour(r.Color ?? fallbackColor) :
+ r.TextColor
+ })
+ .ToList()
+ };
+ }
+ );
+
+ return Ok(result);
+ }
+
+ [HttpGet("search")]
+ public IActionResult SearchStops([FromQuery] string q)
+ {
+ // Placeholder for future implementation with Postgres and fuzzy searching
+ return Ok(new List<object>());
+ }
+
[LoggerMessage(LogLevel.Error, "Error fetching stop data, received {statusCode} {responseBody}")]
partial void LogErrorFetchingStopData(HttpStatusCode statusCode, string responseBody);
}
diff --git a/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs
new file mode 100644
index 0000000..ce6a8c7
--- /dev/null
+++ b/src/Costasdev.Busurbano.Sources.OpenTripPlannerGql/Queries/StopsInfo.cs
@@ -0,0 +1,57 @@
+using System.Globalization;
+using System.Text.Json.Serialization;
+
+namespace Costasdev.Busurbano.Sources.OpenTripPlannerGql.Queries;
+
+public class StopsInfoContent : IGraphRequest<StopsInfoContent.Args>
+{
+ public record Args(IEnumerable<string> Ids);
+
+ public static string Query(Args args)
+ {
+ var idsString = string.Join("\",\"", args.Ids);
+ return string.Create(CultureInfo.InvariantCulture, $@"
+ query Query {{
+ stops(ids: [""{idsString}""]) {{
+ gtfsId
+ code
+ name
+ lat
+ lon
+ routes {{
+ shortName
+ color
+ textColor
+ }}
+ }}
+ }}
+ ");
+ }
+}
+
+public class StopsInfoResponse : AbstractGraphResponse
+{
+ [JsonPropertyName("stops")] public List<StopItem>? Stops { get; set; }
+
+ public class StopItem
+ {
+ [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }
+
+ [JsonPropertyName("code")] public string? Code { get; set; }
+
+ [JsonPropertyName("name")] public required string Name { get; set; }
+
+ [JsonPropertyName("lat")] public double Lat { get; set; }
+
+ [JsonPropertyName("lon")] public double Lon { get; set; }
+
+ [JsonPropertyName("routes")] public List<RouteDetails> Routes { get; set; } = [];
+ }
+
+ public class RouteDetails
+ {
+ [JsonPropertyName("shortName")] public string? ShortName { get; set; }
+ [JsonPropertyName("color")] public string? Color { get; set; }
+ [JsonPropertyName("textColor")] public string? TextColor { get; set; }
+ }
+}
diff --git a/src/frontend/app/components/PlannerOverlay.tsx b/src/frontend/app/components/PlannerOverlay.tsx
index 55e52d7..0320d45 100644
--- a/src/frontend/app/components/PlannerOverlay.tsx
+++ b/src/frontend/app/components/PlannerOverlay.tsx
@@ -110,10 +110,11 @@ export const PlannerOverlay: React.FC<PlannerOverlayProps> = ({
useEffect(() => {
// Load favourites once; used as local suggestions in the picker.
- StopDataProvider.getStops()
- .then((stops) =>
- stops
- .filter((s) => s.favourite && s.latitude && s.longitude)
+ const favouriteIds = StopDataProvider.getFavouriteIds();
+ StopDataProvider.fetchStopsByIds(favouriteIds)
+ .then((stopsMap) =>
+ Object.values(stopsMap)
+ .filter((s) => s.latitude && s.longitude)
.map(
(s) =>
({
diff --git a/src/frontend/app/components/StopGalleryItem.tsx b/src/frontend/app/components/StopGalleryItem.tsx
index bf60697..de369d8 100644
--- a/src/frontend/app/components/StopGalleryItem.tsx
+++ b/src/frontend/app/components/StopGalleryItem.tsx
@@ -26,7 +26,7 @@ const StopGalleryItem: React.FC<StopGalleryItemProps> = ({ stop }) => {
<span className="text-yellow-500 text-base">★</span>
)}
<span className="text-xs text-gray-600 dark:text-gray-400 font-medium">
- ({stop.stopId})
+ ({stop.stopCode || stop.stopId})
</span>
</div>
<div
@@ -41,8 +41,13 @@ const StopGalleryItem: React.FC<StopGalleryItemProps> = ({ stop }) => {
{StopDataProvider.getDisplayName(stop)}
</div>
<div className="flex flex-wrap gap-1 items-center">
- {stop.lines?.slice(0, 5).map((line) => (
- <LineIcon key={line} line={line} />
+ {stop.lines?.slice(0, 5).map((lineObj) => (
+ <LineIcon
+ key={lineObj.line}
+ line={lineObj.line}
+ colour={lineObj.colour}
+ textColour={lineObj.textColour}
+ />
))}
{stop.lines && stop.lines.length > 5 && (
<span className="text-xs text-gray-600 dark:text-gray-400 font-medium px-1.5 py-0.5 bg-gray-200 dark:bg-gray-700 rounded">
diff --git a/src/frontend/app/components/StopItem.tsx b/src/frontend/app/components/StopItem.tsx
index 9679b05..391e605 100644
--- a/src/frontend/app/components/StopItem.tsx
+++ b/src/frontend/app/components/StopItem.tsx
@@ -20,12 +20,17 @@ const StopItem: React.FC<StopItemProps> = ({ stop }) => {
{StopDataProvider.getDisplayName(stop)}
</span>
<span className="text-sm text-gray-600 dark:text-gray-400 ml-2">
- ({stop.stopId})
+ ({stop.stopCode || stop.stopId})
</span>
</div>
<div className="flex flex-wrap gap-1 mt-1">
- {stop.lines?.map((line) => (
- <LineIcon key={line} line={line} />
+ {stop.lines?.map((lineObj) => (
+ <LineIcon
+ key={lineObj.line}
+ line={lineObj.line}
+ colour={lineObj.colour}
+ textColour={lineObj.textColour}
+ />
))}
</div>
</Link>
diff --git a/src/frontend/app/components/stop/StopMapModal.tsx b/src/frontend/app/components/stop/StopMapModal.tsx
index 757411e..688ec2e 100644
--- a/src/frontend/app/components/stop/StopMapModal.tsx
+++ b/src/frontend/app/components/stop/StopMapModal.tsx
@@ -1,3 +1,4 @@
+import maplibregl from "maplibre-gl";
import React, {
useCallback,
useEffect,
diff --git a/src/frontend/app/config/constants.ts b/src/frontend/app/config/constants.ts
index 38ebb0b..a130f87 100644
--- a/src/frontend/app/config/constants.ts
+++ b/src/frontend/app/config/constants.ts
@@ -5,7 +5,6 @@ export type RegionId = "vigo";
export const APP_CONSTANTS = {
id: "vigo",
- stopsEndpoint: "/stops/vigo.json",
consolidatedCirculationsEndpoint: "/api/vigo/GetConsolidatedCirculations",
shapeEndpoint: "/api/vigo/GetShape",
defaultCenter: {
diff --git a/src/frontend/app/data/StopDataProvider.ts b/src/frontend/app/data/StopDataProvider.ts
index 697e171..76182c7 100644
--- a/src/frontend/app/data/StopDataProvider.ts
+++ b/src/frontend/app/data/StopDataProvider.ts
@@ -1,28 +1,31 @@
import { APP_CONSTANTS } from "~/config/constants";
-export interface CachedStopList {
- timestamp: number;
- data: Stop[];
-}
-
export interface Stop {
stopId: string;
+ stopCode?: string;
name: string;
latitude?: number;
longitude?: number;
- lines: string[];
+ lines: {
+ line: string;
+ colour: string;
+ textColour: string;
+ }[];
favourite?: boolean;
- amenities?: string[];
+ type?: "bus" | "coach" | "train" | "unknown";
+}
- title?: string;
- message?: string;
- alert?: "info" | "warning" | "error";
- cancelled?: boolean;
+interface CacheEntry {
+ stop: Stop;
+ timestamp: number;
}
-// In-memory cache and lookup map per region
-const cachedStopsByRegion: Record<string, Stop[] | null> = {};
-const stopsMapByRegion: Record<string, Record<string, Stop>> = {};
+const CACHE_KEY = `stops_cache_${APP_CONSTANTS.id}`;
+const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24 hours
+
+// In-memory cache for the current session
+const memoryCache: Record<string, Stop> = {};
+
// Custom names loaded from localStorage per region
const customNamesByRegion: Record<string, Record<string, string>> = {};
@@ -33,82 +36,105 @@ function normalizeId(id: number | string): string {
return `vitrasa:${s}`;
}
-// Initialize cachedStops and customNames once per region
-async function initStops() {
- if (!cachedStopsByRegion[APP_CONSTANTS.id]) {
- const response = await fetch(APP_CONSTANTS.stopsEndpoint);
- const rawStops = (await response.json()) as any[];
+function getPersistentCache(): Record<string, CacheEntry> {
+ const raw = localStorage.getItem(CACHE_KEY);
+ if (!raw) return {};
+ try {
+ return JSON.parse(raw);
+ } catch {
+ return {};
+ }
+}
- // build array and map
- stopsMapByRegion[APP_CONSTANTS.id] = {};
- cachedStopsByRegion[APP_CONSTANTS.id] = rawStops.map((raw) => {
- const id = normalizeId(raw.stopId);
- const entry = {
- ...raw,
- stopId: id,
- type: raw.type || (id.startsWith("renfe:") ? "train" : "bus"),
- favourite: false,
- } as Stop;
- stopsMapByRegion[APP_CONSTANTS.id][id] = entry;
- return entry;
- });
+function savePersistentCache(cache: Record<string, CacheEntry>) {
+ localStorage.setItem(CACHE_KEY, JSON.stringify(cache));
+}
- // load custom names
- const rawCustom = localStorage.getItem(
- `customStopNames_${APP_CONSTANTS.id}`
- );
- if (rawCustom) {
- const parsed = JSON.parse(rawCustom);
- const normalized: Record<string, string> = {};
- for (const [key, value] of Object.entries(parsed)) {
- normalized[normalizeId(key)] = value as string;
- }
- customNamesByRegion[APP_CONSTANTS.id] = normalized;
- } else {
- customNamesByRegion[APP_CONSTANTS.id] = {};
+async function fetchStopsByIds(ids: string[]): Promise<Record<string, Stop>> {
+ if (ids.length === 0) return {};
+
+ const normalizedIds = ids.map(normalizeId);
+ const now = Date.now();
+ const persistentCache = getPersistentCache();
+ const result: Record<string, Stop> = {};
+ const toFetch: string[] = [];
+
+ for (const id of normalizedIds) {
+ if (memoryCache[id]) {
+ result[id] = memoryCache[id];
+ continue;
+ }
+
+ const cached = persistentCache[id];
+ if (cached && now - cached.timestamp < CACHE_DURATION) {
+ memoryCache[id] = cached.stop;
+ result[id] = cached.stop;
+ continue;
}
+
+ toFetch.push(id);
}
-}
-async function getStops(): Promise<Stop[]> {
- await initStops();
- // update favourites
- const rawFav = localStorage.getItem("favouriteStops");
- const favouriteStops = rawFav
- ? (JSON.parse(rawFav) as (number | string)[]).map(normalizeId)
- : [];
+ if (toFetch.length > 0) {
+ try {
+ const response = await fetch(`/api/stops?ids=${toFetch.join(",")}`);
+ if (!response.ok) throw new Error("Failed to fetch stops");
- cachedStopsByRegion["vigo"]!.forEach(
- (stop) => (stop.favourite = favouriteStops.includes(stop.stopId))
- );
- return cachedStopsByRegion["vigo"]!;
+ const data = await response.json();
+ for (const [id, stopData] of Object.entries(data)) {
+ const stop: Stop = {
+ stopId: (stopData as any).id,
+ stopCode: (stopData as any).code,
+ name: (stopData as any).name,
+ lines: (stopData as any).routes.map((r: any) => ({
+ line: r.shortName,
+ colour: r.colour,
+ textColour: r.textColour,
+ })),
+ type: (stopData as any).id.startsWith("renfe:")
+ ? "train"
+ : (stopData as any).id.startsWith("xunta:")
+ ? "coach"
+ : "bus",
+ };
+
+ memoryCache[id] = stop;
+ result[id] = stop;
+ persistentCache[id] = { stop, timestamp: now };
+ }
+ savePersistentCache(persistentCache);
+ } catch (error) {
+ console.error("Error fetching stops:", error);
+ }
+ }
+
+ return result;
}
-// New: get single stop by id
async function getStopById(stopId: string | number): Promise<Stop | undefined> {
- await initStops();
const id = normalizeId(stopId);
- const stop = stopsMapByRegion[APP_CONSTANTS.id]?.[id];
+ const stops = await fetchStopsByIds([id]);
+ const stop = stops[id];
if (stop) {
- const rawFav = localStorage.getItem(`favouriteStops_${APP_CONSTANTS.id}`);
- const favouriteStops = rawFav
- ? (JSON.parse(rawFav) as (number | string)[]).map(normalizeId)
- : [];
- stop.favourite = favouriteStops.includes(id);
+ stop.favourite = isFavourite(id);
}
return stop;
}
-// Updated display name to include custom names
function getDisplayName(stop: Stop): string {
- return stop.name;
+ const custom = getCustomName(stop.stopId);
+ return custom || stop.name;
}
-// New: set or remove custom names
function setCustomName(stopId: string | number, label: string) {
const id = normalizeId(stopId);
if (!customNamesByRegion[APP_CONSTANTS.id]) {
- customNamesByRegion[APP_CONSTANTS.id] = {};
+ const rawCustom = localStorage.getItem(
+ `customStopNames_${APP_CONSTANTS.id}`
+ );
+ customNamesByRegion[APP_CONSTANTS.id] = rawCustom
+ ? JSON.parse(rawCustom)
+ : {};
}
customNamesByRegion[APP_CONSTANTS.id][id] = label;
localStorage.setItem(
@@ -119,7 +145,15 @@ function setCustomName(stopId: string | number, label: string) {
function removeCustomName(stopId: string | number) {
const id = normalizeId(stopId);
- if (customNamesByRegion[APP_CONSTANTS.id]?.[id]) {
+ if (!customNamesByRegion[APP_CONSTANTS.id]) {
+ const rawCustom = localStorage.getItem(
+ `customStopNames_${APP_CONSTANTS.id}`
+ );
+ customNamesByRegion[APP_CONSTANTS.id] = rawCustom
+ ? JSON.parse(rawCustom)
+ : {};
+ }
+ if (customNamesByRegion[APP_CONSTANTS.id][id]) {
delete customNamesByRegion[APP_CONSTANTS.id][id];
localStorage.setItem(
`customStopNames_${APP_CONSTANTS.id}`,
@@ -128,15 +162,24 @@ function removeCustomName(stopId: string | number) {
}
}
-// New: get custom label for a stop
function getCustomName(stopId: string | number): string | undefined {
const id = normalizeId(stopId);
- return customNamesByRegion[APP_CONSTANTS.id]?.[id];
+ if (!customNamesByRegion[APP_CONSTANTS.id]) {
+ const rawCustom = localStorage.getItem(
+ `customStopNames_${APP_CONSTANTS.id}`
+ );
+ customNamesByRegion[APP_CONSTANTS.id] = rawCustom
+ ? JSON.parse(rawCustom)
+ : {};
+ }
+ return customNamesByRegion[APP_CONSTANTS.id][id];
}
function addFavourite(stopId: string | number) {
const id = normalizeId(stopId);
- const rawFavouriteStops = localStorage.getItem(`favouriteStops`);
+ const rawFavouriteStops = localStorage.getItem(
+ `favouriteStops_${APP_CONSTANTS.id}`
+ );
let favouriteStops: string[] = [];
if (rawFavouriteStops) {
favouriteStops = (JSON.parse(rawFavouriteStops) as (number | string)[]).map(
@@ -146,13 +189,18 @@ function addFavourite(stopId: string | number) {
if (!favouriteStops.includes(id)) {
favouriteStops.push(id);
- localStorage.setItem(`favouriteStops`, JSON.stringify(favouriteStops));
+ localStorage.setItem(
+ `favouriteStops_${APP_CONSTANTS.id}`,
+ JSON.stringify(favouriteStops)
+ );
}
}
function removeFavourite(stopId: string | number) {
const id = normalizeId(stopId);
- const rawFavouriteStops = localStorage.getItem(`favouriteStops`);
+ const rawFavouriteStops = localStorage.getItem(
+ `favouriteStops_${APP_CONSTANTS.id}`
+ );
let favouriteStops: string[] = [];
if (rawFavouriteStops) {
favouriteStops = (JSON.parse(rawFavouriteStops) as (number | string)[]).map(
@@ -161,12 +209,17 @@ function removeFavourite(stopId: string | number) {
}
const newFavouriteStops = favouriteStops.filter((sid) => sid !== id);
- localStorage.setItem(`favouriteStops`, JSON.stringify(newFavouriteStops));
+ localStorage.setItem(
+ `favouriteStops_${APP_CONSTANTS.id}`,
+ JSON.stringify(newFavouriteStops)
+ );
}
function isFavourite(stopId: string | number): boolean {
const id = normalizeId(stopId);
- const rawFavouriteStops = localStorage.getItem(`favouriteStops`);
+ const rawFavouriteStops = localStorage.getItem(
+ `favouriteStops_${APP_CONSTANTS.id}`
+ );
if (rawFavouriteStops) {
const favouriteStops = (
JSON.parse(rawFavouriteStops) as (number | string)[]
@@ -180,29 +233,34 @@ const RECENT_STOPS_LIMIT = 10;
function pushRecent(stopId: string | number) {
const id = normalizeId(stopId);
- const rawRecentStops = localStorage.getItem(`recentStops_vigo`);
- let recentStops: Set<string> = new Set();
+ const rawRecentStops = localStorage.getItem(
+ `recentStops_${APP_CONSTANTS.id}`
+ );
+ let recentStops: string[] = [];
if (rawRecentStops) {
- recentStops = new Set(
- (JSON.parse(rawRecentStops) as (number | string)[]).map(normalizeId)
+ recentStops = (JSON.parse(rawRecentStops) as (number | string)[]).map(
+ normalizeId
);
}
- recentStops.add(id);
- if (recentStops.size > RECENT_STOPS_LIMIT) {
- const iterator = recentStops.values();
- const val = iterator.next().value as string;
- recentStops.delete(val);
+ // Remove if already exists to move to front
+ recentStops = recentStops.filter((sid) => sid !== id);
+ recentStops.unshift(id);
+
+ if (recentStops.length > RECENT_STOPS_LIMIT) {
+ recentStops = recentStops.slice(0, RECENT_STOPS_LIMIT);
}
localStorage.setItem(
- `recentStops_vigo`,
- JSON.stringify(Array.from(recentStops))
+ `recentStops_${APP_CONSTANTS.id}`,
+ JSON.stringify(recentStops)
);
}
function getRecent(): string[] {
- const rawRecentStops = localStorage.getItem(`recentStops_vigo`);
+ const rawRecentStops = localStorage.getItem(
+ `recentStops_${APP_CONSTANTS.id}`
+ );
if (rawRecentStops) {
return (JSON.parse(rawRecentStops) as (number | string)[]).map(normalizeId);
}
@@ -210,7 +268,9 @@ function getRecent(): string[] {
}
function getFavouriteIds(): string[] {
- const rawFavouriteStops = localStorage.getItem(`favouriteStops`);
+ const rawFavouriteStops = localStorage.getItem(
+ `favouriteStops_${APP_CONSTANTS.id}`
+ );
if (rawFavouriteStops) {
return (JSON.parse(rawFavouriteStops) as (number | string)[]).map(
normalizeId
@@ -219,28 +279,13 @@ function getFavouriteIds(): string[] {
return [];
}
-// New function to load stops from network
-async function loadStopsFromNetwork(): Promise<Stop[]> {
- const response = await fetch(APP_CONSTANTS.stopsEndpoint);
- const rawStops = (await response.json()) as any[];
- return rawStops.map((raw) => {
- const id = normalizeId(raw.stopId);
- return {
- ...raw,
- stopId: id,
- type: raw.type || (id.startsWith("renfe:") ? "train" : "bus"),
- favourite: false,
- } as Stop;
- });
-}
-
function getTileUrlTemplate(): string {
return window.location.origin + "/api/tiles/stops/{z}/{x}/{y}";
}
export default {
- getStops,
getStopById,
+ fetchStopsByIds,
getCustomName,
getDisplayName,
setCustomName,
@@ -251,6 +296,5 @@ export default {
pushRecent,
getRecent,
getFavouriteIds,
- loadStopsFromNetwork,
getTileUrlTemplate,
};
diff --git a/src/frontend/app/routes/favourites.tsx b/src/frontend/app/routes/favourites.tsx
index deb3629..c05ab11 100644
--- a/src/frontend/app/routes/favourites.tsx
+++ b/src/frontend/app/routes/favourites.tsx
@@ -27,10 +27,11 @@ export default function Favourites() {
// Load favourite stops
const favouriteIds = StopDataProvider.getFavouriteIds();
- const allStops = await StopDataProvider.getStops();
- const favStops = allStops.filter((stop) =>
- favouriteIds.includes(stop.stopId)
- );
+ const stopsMap = await StopDataProvider.fetchStopsByIds(favouriteIds);
+ const favStops = favouriteIds
+ .map((id) => stopsMap[id])
+ .filter(Boolean)
+ .map((stop) => ({ ...stop, favourite: true }));
setFavouriteStops(favStops);
} catch (error) {
console.error("Error loading favourites:", error);
@@ -190,14 +191,10 @@ function SpecialPlaceCard({
{icon}
</span>
<div className="flex-1 min-w-0">
- <h3 className="font-semibold text-text mb-1">
- {label}
- </h3>
+ <h3 className="font-semibold text-text mb-1">{label}</h3>
{place ? (
<div className="text-sm text-muted">
- <p className="font-medium text-text">
- {place.name}
- </p>
+ <p className="font-medium text-text">{place.name}</p>
{place.type === "stop" && place.stopId && (
<p className="text-xs mt-1">({place.stopId})</p>
)}
@@ -283,15 +280,20 @@ function FavouriteStopItem({
</span>
<span className="text-xs text-muted font-medium">
- ({stop.stopId})
+ ({stop.stopCode || stop.stopId})
</span>
</div>
<div className="font-semibold text-text mb-2">
{StopDataProvider.getDisplayName(stop)}
</div>
<div className="flex flex-wrap gap-1 items-center">
- {stop.lines?.slice(0, 6).map((line) => (
- <LineIcon key={line} line={line} />
+ {stop.lines?.slice(0, 6).map((lineObj) => (
+ <LineIcon
+ key={lineObj.line}
+ line={lineObj.line}
+ colour={lineObj.colour}
+ textColour={lineObj.textColour}
+ />
))}
{stop.lines && stop.lines.length > 6 && (
<span className="text-xs text-gray-500 dark:text-gray-400 ml-1">
diff --git a/src/frontend/app/routes/home.tsx b/src/frontend/app/routes/home.tsx
index b20a349..3e7f12d 100644
--- a/src/frontend/app/routes/home.tsx
+++ b/src/frontend/app/routes/home.tsx
@@ -1,4 +1,3 @@
-import Fuse from "fuse.js";
import { History } from "lucide-react";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -8,7 +7,6 @@ import { usePageTitle } from "~/contexts/PageTitleContext";
import { usePlanner } from "~/hooks/usePlanner";
import StopGallery from "../components/StopGallery";
import StopItem from "../components/StopItem";
-import StopItemSkeleton from "../components/StopItemSkeleton";
import StopDataProvider, { type Stop } from "../data/StopDataProvider";
import "../tailwind-full.css";
@@ -33,15 +31,6 @@ export default function StopList() {
[t]
);
- const fuse = useMemo(
- () =>
- new Fuse(data || [], {
- threshold: 0.3,
- keys: ["name", "stopId"],
- }),
- [data]
- );
-
const requestUserLocation = useCallback(() => {
if (typeof window === "undefined" || !("geolocation" in navigator)) {
return;
@@ -103,90 +92,33 @@ export default function StopList() {
};
}, [requestUserLocation]);
- // Sort stops by proximity when we know where the user is located.
- const sortedAllStops = useMemo(() => {
- if (!data) {
- return [] as Stop[];
- }
-
- if (!userLocation) {
- return [...data].sort((a, b) => a.stopId.localeCompare(b.stopId));
- }
-
- const toRadians = (value: number) => (value * Math.PI) / 180;
- const getDistance = (
- lat1: number,
- lon1: number,
- lat2: number,
- lon2: number
- ) => {
- const R = 6371000; // meters
- const dLat = toRadians(lat2 - lat1);
- const dLon = toRadians(lon2 - lon1);
- const a =
- Math.sin(dLat / 2) * Math.sin(dLat / 2) +
- Math.cos(toRadians(lat1)) *
- Math.cos(toRadians(lat2)) *
- Math.sin(dLon / 2) *
- Math.sin(dLon / 2);
- const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
- return R * c;
- };
-
- return data
- .map((stop) => {
- if (
- typeof stop.latitude !== "number" ||
- typeof stop.longitude !== "number"
- ) {
- return { stop, distance: Number.POSITIVE_INFINITY };
- }
-
- const distance = getDistance(
- userLocation.latitude,
- userLocation.longitude,
- stop.latitude,
- stop.longitude
- );
-
- return { stop, distance };
- })
- .sort((a, b) => {
- if (a.distance === b.distance) {
- return a.stop.stopId.localeCompare(b.stop.stopId);
- }
- return a.distance - b.distance;
- })
- .map(({ stop }) => stop);
- }, [data, userLocation]);
-
// Load stops from network
const loadStops = useCallback(async () => {
try {
setLoading(true);
- const stops = await StopDataProvider.loadStopsFromNetwork();
-
- // Add favourite flags to stops
- const favouriteStopsIds = StopDataProvider.getFavouriteIds();
- const stopsWithFavourites = stops.map((stop) => ({
- ...stop,
- favourite: favouriteStopsIds.includes(stop.stopId),
- }));
+ const favouriteIds = StopDataProvider.getFavouriteIds();
+ const recentIds = StopDataProvider.getRecent();
+ const allIds = Array.from(new Set([...favouriteIds, ...recentIds]));
- setData(stopsWithFavourites);
+ const stopsMap = await StopDataProvider.fetchStopsByIds(allIds);
- // Update favourite and recent stops with full data
- const favStops = stopsWithFavourites.filter((stop) =>
- favouriteStopsIds.includes(stop.stopId)
- );
+ const favStops = favouriteIds
+ .map((id) => stopsMap[id])
+ .filter(Boolean)
+ .map((stop) => ({ ...stop, favourite: true }));
setFavouriteStops(favStops);
- const recIds = StopDataProvider.getRecent();
- const recStops = recIds
- .map((id) => stopsWithFavourites.find((stop) => stop.stopId === id))
- .filter(Boolean) as Stop[];
- setRecentStops(recStops.reverse());
+ const recStops = recentIds
+ .map((id) => stopsMap[id])
+ .filter(Boolean)
+ .map((stop) => ({
+ ...stop,
+ favourite: favouriteIds.includes(stop.stopId),
+ }));
+ setRecentStops(recStops);
+
+ setData(Object.values(stopsMap));
} catch (error) {
console.error("Failed to load stops:", error);
} finally {
@@ -205,41 +137,14 @@ export default function StopList() {
clearTimeout(searchTimeout.current);
}
- searchTimeout.current = setTimeout(() => {
+ searchTimeout.current = setTimeout(async () => {
if (searchQuery.length === 0) {
setSearchResults(null);
return;
}
- if (!data) {
- console.error("No data available for search");
- return;
- }
-
- // Check if search query is a number (stop code search)
- const isNumericSearch = /^\d+$/.test(searchQuery.trim());
-
- let items: Stop[];
- if (isNumericSearch) {
- // Direct match for stop codes
- const stopId = searchQuery.trim();
- const exactMatch = data.filter(
- (stop) => stop.stopId === stopId || stop.stopId.endsWith(`:${stopId}`)
- );
- if (exactMatch.length > 0) {
- items = exactMatch;
- } else {
- // Fuzzy search if no exact match
- const results = fuse.search(searchQuery);
- items = results.map((result) => result.item);
- }
- } else {
- // Text search using Fuse.js
- const results = fuse.search(searchQuery);
- items = results.map((result) => result.item);
- }
-
- setSearchResults(items);
+ // Placeholder for future backend search
+ setSearchResults([]);
}, 300);
};
@@ -370,54 +275,6 @@ export default function StopList() {
)}
{/*<ServiceAlerts />*/}
-
- {/* All Stops / Nearby Stops */}
- <div className="w-full px-4 flex flex-col gap-2">
- <div className="flex items-center gap-2">
- {userLocation && (
- <svg
- className="w-5 h-5 text-blue-600 dark:text-blue-400"
- fill="none"
- viewBox="0 0 24 24"
- stroke="currentColor"
- >
- <path
- strokeLinecap="round"
- strokeLinejoin="round"
- strokeWidth={2}
- d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"
- />
- <path
- strokeLinecap="round"
- strokeLinejoin="round"
- strokeWidth={2}
- d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"
- />
- </svg>
- )}
- <h2 className="text-lg font-semibold text-gray-900 dark:text-gray-100">
- {userLocation
- ? t("stoplist.nearby_stops", "Nearby stops")
- : t("stoplist.all_stops", "Paradas")}
- </h2>
- </div>
-
- <ul className="list-none p-0 m-0 flex flex-col gap-2 md:grid md:grid-cols-[repeat(auto-fill,minmax(300px,1fr))] lg:grid-cols-[repeat(auto-fill,minmax(320px,1fr))]">
- {loading && (
- <>
- {Array.from({ length: 6 }, (_, index) => (
- <StopItemSkeleton key={`skeleton-${index}`} />
- ))}
- </>
- )}
- {!loading && data
- ? (userLocation
- ? sortedAllStops.slice(0, 6)
- : sortedAllStops
- ).map((stop) => <StopItem key={stop.stopId} stop={stop} />)
- : null}
- </ul>
- </div>
</>
)}
</div>
diff --git a/src/frontend/app/routes/map.tsx b/src/frontend/app/routes/map.tsx
index b02c494..b8f179c 100644
--- a/src/frontend/app/routes/map.tsx
+++ b/src/frontend/app/routes/map.tsx
@@ -40,6 +40,13 @@ export default function StopMap() {
const { searchRoute } = usePlanner({ autoLoad: false });
+ const favouriteIds = useMemo(() => StopDataProvider.getFavouriteIds(), []);
+
+ const favouriteFilter = useMemo(() => {
+ if (favouriteIds.length === 0) return ["boolean", false];
+ return ["match", ["get", "id"], favouriteIds, true, false];
+ }, [favouriteIds]);
+
// Handle click events on clusters and individual stops
const onMapClick = (e: MapLayerMouseEvent) => {
const features = e.features;
@@ -140,6 +147,32 @@ export default function StopMap() {
/>
<Layer
+ id="stops-favourite-highlight"
+ type="circle"
+ minzoom={11}
+ source="stops-source"
+ source-layer="stops"
+ filter={["all", stopLayerFilter, favouriteFilter]}
+ paint={{
+ "circle-color": "#FFD700",
+ "circle-radius": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 10,
+ 16,
+ 12,
+ 18,
+ 16,
+ ],
+ "circle-opacity": 0.4,
+ "circle-stroke-color": "#FFD700",
+ "circle-stroke-width": 2,
+ }}
+ />
+
+ <Layer
id="stops"
type="symbol"
minzoom={11}
@@ -161,6 +194,17 @@ export default function StopMap() {
],
"icon-allow-overlap": true,
"icon-ignore-placement": true,
+ "symbol-sort-key": [
+ "match",
+ ["get", "transitKind"],
+ "bus",
+ 3,
+ "coach",
+ 2,
+ "train",
+ 1,
+ 0,
+ ],
}}
/>
diff --git a/src/frontend/public/stops/vigo.json b/src/frontend/public/stops/vigo.json
deleted file mode 100644
index 6db77e0..0000000
--- a/src/frontend/public/stops/vigo.json
+++ /dev/null
@@ -1,12884 +0,0 @@
-[
- {
- "stopId": "renfe:08223",
- "name": "VIGO URZAIZ",
- "latitude": 42.2344784,
- "longitude": -8.7130987,
- "lines": []
- },
- {
- "stopId": "renfe:08224",
- "name": "REDONDELA-AV",
- "latitude": 42.284533,
- "longitude": -8.603713,
- "lines": []
- },
- {
- "stopId": "renfe:22103",
- "name": "FILGUEIRA",
- "latitude": 42.2199566,
- "longitude": -8.1848025,
- "lines": []
- },
- {
- "stopId": "renfe:22104",
- "name": "FRIEIRA",
- "latitude": 42.154972,
- "longitude": -8.2001702,
- "lines": []
- },
- {
- "stopId": "renfe:22105",
- "name": "POUSA-CRECENTE",
- "latitude": 42.1366863,
- "longitude": -8.2348913,
- "lines": []
- },
- {
- "stopId": "renfe:22106",
- "name": "ARBO",
- "latitude": 42.1069927,
- "longitude": -8.3002144,
- "lines": []
- },
- {
- "stopId": "renfe:22107",
- "name": "SELA",
- "latitude": 42.0920451,
- "longitude": -8.3559662,
- "lines": []
- },
- {
- "stopId": "renfe:22108",
- "name": "AS NEVES",
- "latitude": 42.0754353,
- "longitude": -8.4201118,
- "lines": []
- },
- {
- "stopId": "renfe:22109",
- "name": "SALVATERRA",
- "latitude": 42.0816074,
- "longitude": -8.4952202,
- "lines": []
- },
- {
- "stopId": "renfe:22110",
- "name": "CALDELAS",
- "latitude": 42.0557889,
- "longitude": -8.566391,
- "lines": []
- },
- {
- "stopId": "renfe:22200",
- "name": "GUILLAREI",
- "latitude": 42.0656748,
- "longitude": -8.6225614,
- "lines": []
- },
- {
- "stopId": "renfe:22201",
- "name": "O PORRIÑO",
- "latitude": 42.1640956,
- "longitude": -8.6220121,
- "lines": []
- },
- {
- "stopId": "renfe:22300",
- "name": "REDONDELA",
- "latitude": 42.2860395,
- "longitude": -8.6194152,
- "lines": []
- },
- {
- "stopId": "renfe:22308",
- "name": "VIGO-GUIXAR",
- "latitude": 42.2394426820947,
- "longitude": -8.712087821668435,
- "lines": []
- },
- {
- "stopId": "renfe:22401",
- "name": "TUI",
- "latitude": 42.0565541,
- "longitude": -8.6430108,
- "lines": []
- },
- {
- "stopId": "renfe:23000",
- "name": "REDONDELA-PICOTA",
- "latitude": 42.2867756,
- "longitude": -8.60741,
- "lines": []
- },
- {
- "stopId": "renfe:23001",
- "name": "CESANTES",
- "latitude": 42.3101953,
- "longitude": -8.6164619,
- "lines": []
- },
- {
- "stopId": "renfe:23002",
- "name": "ARCADE",
- "latitude": 42.3404447,
- "longitude": -8.6104633,
- "lines": []
- },
- {
- "stopId": "renfe:23004",
- "name": "PONTEVEDRA",
- "latitude": 42.42164,
- "longitude": -8.63583,
- "lines": []
- },
- {
- "stopId": "renfe:23005",
- "name": "PORTELA",
- "latitude": 42.5177336,
- "longitude": -8.6545656,
- "lines": []
- },
- {
- "stopId": "renfe:23008",
- "name": "VILAGARCIA DE AROUSA",
- "latitude": 42.6019751,
- "longitude": -8.7622662,
- "lines": []
- },
- {
- "stopId": "renfe:23009",
- "name": "CATOIRA",
- "latitude": 42.6722202,
- "longitude": -8.7253854,
- "lines": []
- },
- {
- "stopId": "renfe:23010",
- "name": "PONTECESURES",
- "latitude": 42.7229746,
- "longitude": -8.6521346,
- "lines": []
- },
- {
- "stopId": "renfe:23018",
- "name": "PONTEVEDRA-UNIVERSIDAD",
- "latitude": 42.4388295,
- "longitude": -8.6303782,
- "lines": []
- },
- {
- "stopId": "renfe:31308",
- "name": "LALIN",
- "latitude": 42.6325351,
- "longitude": -8.1426426,
- "lines": []
- },
- {
- "stopId": "vitrasa:100",
- "name": "Avda. do Alcalde Lavadores, 125",
- "latitude": 42.219008975,
- "longitude": -8.69606935,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1000",
- "name": "Avda. da Atlántida, 109",
- "latitude": 42.221220508,
- "longitude": -8.767194468,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:10061",
- "name": "Estrada de San Xoán, 193",
- "latitude": 42.185277472,
- "longitude": -8.741558953,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:1010",
- "name": "Avda. da Atlántida, 136",
- "latitude": 42.221479642,
- "longitude": -8.767482698,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1020",
- "name": "Avda. da Atlántida, 150",
- "latitude": 42.222764778,
- "longitude": -8.769405842,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1030",
- "name": "Avda. da Atlántida, 25",
- "latitude": 42.223219677,
- "longitude": -8.754753277,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1040",
- "name": "Avda. da Atlántida, 32",
- "latitude": 42.223237503,
- "longitude": -8.755707801,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1050",
- "name": "Avda. da Atlántida, 71",
- "latitude": 42.221875354,
- "longitude": -8.760935381,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1060",
- "name": "Avda. da Atlántida, 84",
- "latitude": 42.221789505,
- "longitude": -8.759905458,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1070",
- "name": "Avda. da Atlántida, 114",
- "latitude": 42.221148357,
- "longitude": -8.764660969,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:110",
- "name": "Avda. do Alcalde Lavadores, 171",
- "latitude": 42.215074591,
- "longitude": -8.696738405,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1110",
- "name": "Praza Ribeira do Berbés",
- "latitude": 42.237821273,
- "longitude": -8.729666379,
- "lines": [
- "A",
- "5B",
- "9B",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:1120",
- "name": "Avda. de Beiramar (fronte Casa do Mar)",
- "latitude": 42.23416729,
- "longitude": -8.733331094,
- "lines": [
- "6",
- "9B",
- "15B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:1130",
- "name": "Avda. de Beiramar (Peiraos auxiliares)",
- "latitude": 42.231238831,
- "longitude": -8.735255297,
- "lines": [
- "6",
- "9B",
- "15B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:1140",
- "name": "Avda. de Beiramar (Freire)",
- "latitude": 42.225068475,
- "longitude": -8.74774586,
- "lines": [
- "6",
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:1150",
- "name": "Rúa da Ribeira do Berbés",
- "latitude": 42.237384264,
- "longitude": -8.729603006,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "10",
- "15B",
- "15C",
- "28",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:1160",
- "name": "Avda. de Beiramar (Sto. Domingo)",
- "latitude": 42.225759663,
- "longitude": -8.743239749,
- "lines": [
- "6",
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:120",
- "name": "Avda. do Alcalde Lavadores, 8",
- "latitude": 42.223288295,
- "longitude": -8.700954873,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1200",
- "name": "Avda. de Beiramar, 51",
- "latitude": 42.234233798,
- "longitude": -8.73312316,
- "lines": [
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:1210",
- "name": "Avda. de Beiramar, 61",
- "latitude": 42.230811976,
- "longitude": -8.735364934,
- "lines": [
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:1220",
- "name": "Avda. de Buenos Aires, 46",
- "latitude": 42.247097055,
- "longitude": -8.693109251,
- "lines": [
- "5A",
- "10",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:1230",
- "name": "Avda. de Buenos Aires, 49",
- "latitude": 42.247251925,
- "longitude": -8.693122662,
- "lines": [
- "5B",
- "10",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:1240",
- "name": "Avda. de Buenos Aires, 8",
- "latitude": 42.249128205,
- "longitude": -8.69514773,
- "lines": [
- "5A",
- "10",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:1250",
- "name": "Avda. de Castelao, 16",
- "latitude": 42.219730396,
- "longitude": -8.737456513,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:1260",
- "name": "Avda. de Castelao, 21",
- "latitude": 42.219775977,
- "longitude": -8.736255523,
- "lines": [
- "C3i",
- "4A",
- "4C",
- "5B",
- "10",
- "11",
- "12A",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1270",
- "name": "Avda. de Castelao, 50",
- "latitude": 42.218704937,
- "longitude": -8.74254446,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:1280",
- "name": "Avda. de Castelao, 41",
- "latitude": 42.218523315,
- "longitude": -8.74223465,
- "lines": [
- "C3i",
- "4A",
- "4C",
- "10",
- "11",
- "12A",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1290",
- "name": "Avda. de Castelao, 54",
- "latitude": 42.218158263,
- "longitude": -8.745797727,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:130",
- "name": "Avda. do Alcalde Lavadores, 102",
- "latitude": 42.219001694,
- "longitude": -8.696198267,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1300",
- "name": "Avda. de Castelao, 68",
- "latitude": 42.217466378,
- "longitude": -8.751245499,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:1310",
- "name": "Avda. de Castelao, 73",
- "latitude": 42.217705528,
- "longitude": -8.747753325,
- "lines": [
- "C3i",
- "4A",
- "4C",
- "10",
- "11",
- "12A",
- "15A",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:1320",
- "name": "Avda. de Castelao, 87",
- "latitude": 42.217302224,
- "longitude": -8.751104752,
- "lines": [
- "C3i",
- "10",
- "12A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1330",
- "name": "Avda. de Castrelos (Pavillón)",
- "latitude": 42.219553947,
- "longitude": -8.732509436,
- "lines": [
- "A",
- "16",
- "23",
- "27",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:1340",
- "name": "Avda. de Castrelos (Parque)",
- "latitude": 42.212870645,
- "longitude": -8.732131792,
- "lines": [
- "27",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:1350",
- "name": "Avda. de Castrelos, 121",
- "latitude": 42.208026488,
- "longitude": -8.7312098,
- "lines": [
- "7",
- "12B",
- "17",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:1360",
- "name": "Avda. de Castrelos, 16",
- "latitude": 42.219613217,
- "longitude": -8.732629194,
- "lines": [
- "7",
- "12B",
- "17",
- "27",
- "H2",
- "VTS",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:1380",
- "name": "Avda. de Castrelos, 179",
- "latitude": 42.20533568,
- "longitude": -8.730078621,
- "lines": [
- "7",
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:1390",
- "name": "Avda. de Castrelos, 186",
- "latitude": 42.212735556,
- "longitude": -8.732314182,
- "lines": [
- "A",
- "7",
- "12B",
- "17",
- "27",
- "H2",
- "H",
- "VTS",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:140",
- "name": "Avda. do Alcalde Lavadores, 29",
- "latitude": 42.223444913,
- "longitude": -8.700801996,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1400",
- "name": "Avda. de Castrelos, 202",
- "latitude": 42.210706683,
- "longitude": -8.732237372,
- "lines": [
- "A",
- "7",
- "12B",
- "17",
- "27",
- "H1",
- "H2",
- "H",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:1410",
- "name": "Avda. de Castrelos, 13",
- "latitude": 42.218060161,
- "longitude": -8.732450427,
- "lines": [
- "A",
- "16",
- "23",
- "27",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:14101",
- "name": "Estrada da Garrida, 165",
- "latitude": 42.168008539,
- "longitude": -8.710415438,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14102",
- "name": "Estrada da Garrida, 108",
- "latitude": 42.168282882,
- "longitude": -8.710066751,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14105",
- "name": "Ciencias Xurídicas (CUVI)",
- "latitude": 42.167237978,
- "longitude": -8.681135704,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14106",
- "name": "Avda. do Aeroporto, 92",
- "latitude": 42.234161582,
- "longitude": -8.695074564,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14107",
- "name": "Camiño Padín (Rotonda Autoestrada)",
- "latitude": 42.257847205,
- "longitude": -8.677696507,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:14108",
- "name": "Avda. da Ponte (antes desvío Autovía)",
- "latitude": 42.21401741,
- "longitude": -8.67133083,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14111",
- "name": "Estrada de Bembrive (Centro Saúde)",
- "latitude": 42.204262657,
- "longitude": -8.684801801,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14112",
- "name": "Estrada de Bembrive (Alameda)",
- "latitude": 42.204047198,
- "longitude": -8.684697288,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14113",
- "name": "Estrada da Coutada, 20",
- "latitude": 42.193458577,
- "longitude": -8.702065856,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14117",
- "name": "Rúa do Couto de San Honorato, 26",
- "latitude": 42.228574702,
- "longitude": -8.712864548,
- "lines": [
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:14119",
- "name": "Rúa do Couto de San Honorato, 80",
- "latitude": 42.229320789,
- "longitude": -8.710390551,
- "lines": [
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:14121",
- "name": "Rúa da Reconquista, 2",
- "latitude": 42.238625474,
- "longitude": -8.723242095,
- "lines": [
- "C3d",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14122",
- "name": "Avda. do Alcalde Gregorio Espino, 9",
- "latitude": 42.231584097,
- "longitude": -8.706968521,
- "lines": [
- "4C",
- "23",
- "31",
- "H2",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14123",
- "name": "Rúa do Porriño, 9",
- "latitude": 42.214127819,
- "longitude": -8.752027594,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "4C",
- "5B",
- "11",
- "15A",
- "15B",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:14124",
- "name": "Rúa de Eduardo Cabello (fronte Igrexa)",
- "latitude": 42.226569499,
- "longitude": -8.752773946,
- "lines": [
- "C3d",
- "C3i",
- "6"
- ]
- },
- {
- "stopId": "vitrasa:14125",
- "name": "Rúa do Porriño (fronte 9)",
- "latitude": 42.213869651,
- "longitude": -8.751990789,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "4C",
- "15A",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14126",
- "name": "Rúa da Travesía de Vigo, 194",
- "latitude": 42.242494425,
- "longitude": -8.699249038,
- "lines": [
- "C3i",
- "5A",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14127",
- "name": "Avda. de Buenos Aires, 13",
- "latitude": 42.249306896,
- "longitude": -8.695179916,
- "lines": [
- "5B",
- "10",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14128",
- "name": "Camiño do Caramuxo (fronte 9)",
- "latitude": 42.20733292,
- "longitude": -8.752159103,
- "lines": [
- "5A"
- ]
- },
- {
- "stopId": "vitrasa:14129",
- "name": "Camiño do Caramuxo, 11",
- "latitude": 42.20723039,
- "longitude": -8.752592351,
- "lines": [
- "5A"
- ]
- },
- {
- "stopId": "vitrasa:14131",
- "name": "Rúa de Tomás Paredes, 4",
- "latitude": 42.221948768,
- "longitude": -8.753171211,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:14132",
- "name": "Rúa de Sanjurjo Badía, 252",
- "latitude": 42.249307631,
- "longitude": -8.696542008,
- "lines": [
- "C3d",
- "5A",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14133",
- "name": "Avda. de Galicia, 37",
- "latitude": 42.250977575,
- "longitude": -8.694471881,
- "lines": [
- "C3i",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14134",
- "name": "Avda. de Galicia, 182",
- "latitude": 42.253208793,
- "longitude": -8.686995591,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:14135",
- "name": "Rúa de Santo Amaro (Praza de España)",
- "latitude": 42.229174145,
- "longitude": -8.720143055,
- "lines": [
- "C1"
- ]
- },
- {
- "stopId": "vitrasa:14136",
- "name": "Avda. de Galicia, 18",
- "latitude": 42.250484372,
- "longitude": -8.694878804,
- "lines": [
- "C3d",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14137",
- "name": "Estrada Matamá Pazo (Igrexa)",
- "latitude": 42.200003406,
- "longitude": -8.753169,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:14138",
- "name": "Estrada de Madrid (Campo de Fútbol)",
- "latitude": 42.216459201,
- "longitude": -8.678591709,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14139",
- "name": "Avda. de E. Martínez Garrido, 27",
- "latitude": 42.227492758,
- "longitude": -8.700413366,
- "lines": [
- "6",
- "25",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:14140",
- "name": "Avda. de E. Martínez Garrido, 30",
- "latitude": 42.228210877,
- "longitude": -8.699999354,
- "lines": [
- "4C",
- "6",
- "23",
- "25",
- "31",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14141",
- "name": "Rúa de Jenaro de la Fuente, 43",
- "latitude": 42.231379202,
- "longitude": -8.699876213,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14142",
- "name": "Avda. da Hispanidade, 22",
- "latitude": 42.231463434,
- "longitude": -8.728844425,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14143",
- "name": "Avda. da Hispanidade, 38",
- "latitude": 42.229753483,
- "longitude": -8.729002675,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14144",
- "name": "Avda. da Hispanidade, 82",
- "latitude": 42.226760436,
- "longitude": -8.727385303,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14150",
- "name": "Rúa do Padre Don Rúa, 1",
- "latitude": 42.232076561,
- "longitude": -8.719055236,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14152",
- "name": "Rúa do Monte Calvario, 4",
- "latitude": 42.204815402,
- "longitude": -8.687168969,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14153",
- "name": "Estrada de Bembrive, 173",
- "latitude": 42.205357233,
- "longitude": -8.692495739,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14154",
- "name": "Rúa das Chans (fronte 56)",
- "latitude": 42.19360258,
- "longitude": -8.677258993,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14156",
- "name": "Rúa de Xeme (cruce Camiño da Carballeira)",
- "latitude": 42.203378431,
- "longitude": -8.696666863,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14157",
- "name": "Rúa do Xeme (cruce Rúa de Eifonso)",
- "latitude": 42.202979066,
- "longitude": -8.694065121,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14161",
- "name": "Rúa de López Mora, 62",
- "latitude": 42.224130699,
- "longitude": -8.732568248,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14162",
- "name": "Avda. da Florida, 82",
- "latitude": 42.211371871,
- "longitude": -8.746523782,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14163",
- "name": "Avda. da Florida (fronte 82)",
- "latitude": 42.211442202,
- "longitude": -8.746227469,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:14164",
- "name": "Rúa de Tomás A. Alonso, 136",
- "latitude": 42.225172437,
- "longitude": -8.744777354,
- "lines": [
- "C3i",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:14165",
- "name": "Rúa de Tomás A. Alonso, 193",
- "latitude": 42.224905029,
- "longitude": -8.745285775,
- "lines": [
- "C3d",
- "13",
- "15B",
- "15C",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:14166",
- "name": "Avda. das Camelias, 114",
- "latitude": 42.225142981,
- "longitude": -8.729707944,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14167",
- "name": "Beiramar - Pescadores",
- "latitude": 42.225279021,
- "longitude": -8.751908648,
- "lines": [
- "6",
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14168",
- "name": "Avda. das Camelias, 113",
- "latitude": 42.224928285,
- "longitude": -8.729631509,
- "lines": [
- "4A",
- "4C",
- "11",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:14169",
- "name": "Avda. das Camelias, 136",
- "latitude": 42.22244224,
- "longitude": -8.731271052,
- "lines": [
- "C1",
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "16",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14170",
- "name": "Avda. de Samil (Praia da Punta)",
- "latitude": 42.218831744,
- "longitude": -8.77571001,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:14171",
- "name": "Avda. de Samil (fronte Praia da Punta)",
- "latitude": 42.218844713,
- "longitude": -8.775459221,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14173",
- "name": "Rúa do Gaiteiro de Ricardo Portela (fronte Pavillón)",
- "latitude": 42.235900754,
- "longitude": -8.731391435,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:14174",
- "name": "Rúa do Padre Seixas (Parque da Bouza)",
- "latitude": 42.211844516,
- "longitude": -8.749287921,
- "lines": [
- "11",
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14175",
- "name": "Rúa do Padre Seixas, 32",
- "latitude": 42.211792864,
- "longitude": -8.749617832,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14177",
- "name": "Rúa de Fernando Conde (cruce Avda. da Gran Vía)",
- "latitude": 42.22985125,
- "longitude": -8.71972059,
- "lines": [
- "12B",
- "18A",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14178",
- "name": "Rúa do Marqués de Alcedo (Parque)",
- "latitude": 42.233009005,
- "longitude": -8.724497604,
- "lines": [
- "7",
- "12A",
- "12B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14179",
- "name": "Rúa da Costa, 4",
- "latitude": 42.213260612,
- "longitude": -8.722562576,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:14180",
- "name": "Avda. de E. Martínez Garrido, 108",
- "latitude": 42.224749197,
- "longitude": -8.707320585,
- "lines": [
- "4C",
- "23",
- "31",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14181",
- "name": "Camiño da Corredoura (Igrexa)",
- "latitude": 42.210954716,
- "longitude": -8.727776522,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:14182",
- "name": "Rúa da Costa, 39",
- "latitude": 42.211618245,
- "longitude": -8.72147159,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:14183",
- "name": "Rúa do Xalón (Colexio)",
- "latitude": 42.220622235,
- "longitude": -8.654888024,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14184",
- "name": "Rúa do Xalón, 5",
- "latitude": 42.217384986,
- "longitude": -8.657082399,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14185",
- "name": "Rúa da Becerreira, 81",
- "latitude": 42.219667098,
- "longitude": -8.659470523,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14186",
- "name": "Rúa da Becerreira (fronte 64)",
- "latitude": 42.218044517,
- "longitude": -8.662618478,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14187",
- "name": "Rúa da Becerreira, 1",
- "latitude": 42.221588029,
- "longitude": -8.662035851,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14188",
- "name": "Rúa da Becerreira, 41",
- "latitude": 42.217595578,
- "longitude": -8.661414166,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14189",
- "name": "Rúa Molais, 84",
- "latitude": 42.226081487,
- "longitude": -8.654133203,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14190",
- "name": "Rúa de Severino Cobas, 196",
- "latitude": 42.225080876,
- "longitude": -8.683314171,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14191",
- "name": "Camiño da Bouciña, 76",
- "latitude": 42.223737557,
- "longitude": -8.682141153,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14192",
- "name": "Rúa das Figueiras, 282",
- "latitude": 42.231625599,
- "longitude": -8.652046516,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14193",
- "name": "Avda. de Santa Mariña, 443",
- "latitude": 42.230916628,
- "longitude": -8.641628816,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14194",
- "name": "Avda. de Santa Mariña, 425",
- "latitude": 42.228639377,
- "longitude": -8.640978361,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14195",
- "name": "Avda. de Santa Mariña, 249",
- "latitude": 42.226263256,
- "longitude": -8.644091084,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14196",
- "name": "Avda. de Santa Mariña, 229",
- "latitude": 42.225296,
- "longitude": -8.649527921,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14197",
- "name": "Rúa Molais (cruce Rúa das Carballas)",
- "latitude": 42.225912491,
- "longitude": -8.653698801,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14198",
- "name": "Rúa do Riomao, 21",
- "latitude": 42.227231301,
- "longitude": -8.659997969,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14199",
- "name": "Camiño da Bouciña, 79",
- "latitude": 42.223755464,
- "longitude": -8.682041911,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:1420",
- "name": "Avda. de Castrelos, 297",
- "latitude": 42.201440099,
- "longitude": -8.726409762,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14200",
- "name": "Rúa de Severino Cobas, 119",
- "latitude": 42.225112655,
- "longitude": -8.683402684,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14201",
- "name": "Avda. de Santa Mariña (cruce Avda. do Tranvía)",
- "latitude": 42.226291056,
- "longitude": -8.641647591,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14202",
- "name": "Rúa de Jenaro de la Fuente, 58",
- "latitude": 42.231273786,
- "longitude": -8.700145645,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14203",
- "name": "Avda. do Tranvía S/N (despois Camiño Lugar)",
- "latitude": 42.226524401,
- "longitude": -8.661251786,
- "lines": [
- "11",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:14204",
- "name": "Rúa de Manuel Álvarez, 151",
- "latitude": 42.22312688,
- "longitude": -8.681864633,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14205",
- "name": "Estrada do Freixo (Cemiterio)",
- "latitude": 42.178408629,
- "longitude": -8.733198549,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14206",
- "name": "Avda. da Gran Vía (Instituto)",
- "latitude": 42.220514043,
- "longitude": -8.731700217,
- "lines": [
- "C3i",
- "7",
- "11",
- "13",
- "15A",
- "16",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:14207",
- "name": "Camiño do Pinal, 19",
- "latitude": 42.161212162,
- "longitude": -8.716377433,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14208",
- "name": "Estrada de Valadares, 452",
- "latitude": 42.162237207,
- "longitude": -8.71885531,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14209",
- "name": "Estrada da Garrida, 263",
- "latitude": 42.173333822,
- "longitude": -8.705439803,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14210",
- "name": "Estrada da Garrida (frente 243)",
- "latitude": 42.173077394,
- "longitude": -8.705659744,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14211",
- "name": "Estrada do Monte Alba, 32",
- "latitude": 42.165479162,
- "longitude": -8.721775005,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14212",
- "name": "Estrada do Monte Alba, 54",
- "latitude": 42.164694101,
- "longitude": -8.724472962,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14213",
- "name": "Estrada do Freixo (Campo Fútbol)",
- "latitude": 42.169153241,
- "longitude": -8.729001464,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14214",
- "name": "Estrada do Freixo, 191",
- "latitude": 42.175760907,
- "longitude": -8.734516924,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14215",
- "name": "Estrada do Freixo, 90",
- "latitude": 42.175592169,
- "longitude": -8.734477788,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14216",
- "name": "Estrada do Freixo (fronte Campo Fútbol)",
- "latitude": 42.169143301,
- "longitude": -8.729076566,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14217",
- "name": "Estrada do Monte Alba (frente 54)",
- "latitude": 42.164570839,
- "longitude": -8.724561475,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14218",
- "name": "Estrada do Monte Alba, 21",
- "latitude": 42.165288305,
- "longitude": -8.721367309,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14219",
- "name": "Camiño do Pinal, 59",
- "latitude": 42.159500512,
- "longitude": -8.718247279,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14220",
- "name": "Camiño da Bouciña, 14",
- "latitude": 42.225657321,
- "longitude": -8.681467666,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14221",
- "name": "Camiño da Bouciña, 3",
- "latitude": 42.225809218,
- "longitude": -8.681652991,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14222",
- "name": "Camiño do Pinal, 5",
- "latitude": 42.162959525,
- "longitude": -8.716541365,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14223",
- "name": "Avda. Beiramar Porto Pesqueiro Berbés",
- "latitude": 42.236685153,
- "longitude": -8.731609303,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15C",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14224",
- "name": "Rúa do Conde de Torrecedeira, 16",
- "latitude": 42.234285927,
- "longitude": -8.731266507,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15C",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14225",
- "name": "Rúa do Conde de Torrecedeira, 50",
- "latitude": 42.231716574,
- "longitude": -8.732308737,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15C",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14226",
- "name": "Rúa do Conde de Torrecedeira, 70",
- "latitude": 42.229574859,
- "longitude": -8.733073973,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15C",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14227",
- "name": "Rúa do Conde de Torrecedeira, 86",
- "latitude": 42.22696657,
- "longitude": -8.734559706,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15C",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14228",
- "name": "Avda. de Peinador, 100",
- "latitude": 42.221696342,
- "longitude": -8.632840997,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:14231",
- "name": "Rúa da Rabadeira, 39",
- "latitude": 42.235542066,
- "longitude": -8.652196565,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:14232",
- "name": "Rúa da Rabadeira (fronte 33)",
- "latitude": 42.235317662,
- "longitude": -8.652094641,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14233",
- "name": "Rúa San Cristobo, 90",
- "latitude": 42.241037275,
- "longitude": -8.668947597,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14236",
- "name": "Rúa de Manuel Cominges (fronte 112)",
- "latitude": 42.196308523,
- "longitude": -8.723526935,
- "lines": [
- "12B"
- ]
- },
- {
- "stopId": "vitrasa:14237",
- "name": "Rúa de Manuel Cominges, 134",
- "latitude": 42.196119748,
- "longitude": -8.723457198,
- "lines": [
- "12B"
- ]
- },
- {
- "stopId": "vitrasa:14238",
- "name": "Rúa da Saa do Monte, 5",
- "latitude": 42.20458802,
- "longitude": -8.714617309,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:14240",
- "name": "Rúa das Chabarras, 21",
- "latitude": 42.197985091,
- "longitude": -8.714523201,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:14241",
- "name": "Rúa das Chabarras, 60",
- "latitude": 42.197842023,
- "longitude": -8.71471632,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:14242",
- "name": "Rúa das Chabarras (cruce Camiño dos Pasais)",
- "latitude": 42.196378259,
- "longitude": -8.716979043,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:14243",
- "name": "Rúa das Chabarras, 24",
- "latitude": 42.196539214,
- "longitude": -8.716874437,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:14244",
- "name": "Rúa de Macal, 60",
- "latitude": 42.198216234,
- "longitude": -8.721498041,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14245",
- "name": "Avda. de García Barbón, 43",
- "latitude": 42.23691728,
- "longitude": -8.716743143,
- "lines": [
- "C3i",
- "A",
- "5B",
- "10",
- "16",
- "17",
- "24",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14247",
- "name": "Camiño dos Muíños, 69",
- "latitude": 42.200511179,
- "longitude": -8.769110573,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14248",
- "name": "Camiño dos Muíños, 74",
- "latitude": 42.200580723,
- "longitude": -8.76911862,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14249",
- "name": "Avda. de Cesáreo Vázquez, 5",
- "latitude": 42.177662554,
- "longitude": -8.800157923,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14250",
- "name": "Avda. do Aeroporto, 463",
- "latitude": 42.234914814,
- "longitude": -8.658983411,
- "lines": [
- "A",
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:14251",
- "name": "Avda. do Aeroporto (fronte 463)",
- "latitude": 42.234817602,
- "longitude": -8.65882027,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14255",
- "name": "Rúa do Pintor Colmeiro (Parque do Pintor Colmeiro)",
- "latitude": 42.225111918,
- "longitude": -8.726733526,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14256",
- "name": "Rúa de Zamora, 89",
- "latitude": 42.222198901,
- "longitude": -8.728317834,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14257",
- "name": "Rúa de Zamora, 71",
- "latitude": 42.223448271,
- "longitude": -8.725547112,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14258",
- "name": "Rúa de Zamora, 51",
- "latitude": 42.224870416,
- "longitude": -8.723632015,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14259",
- "name": "Rúa de Zamora, 31",
- "latitude": 42.227088982,
- "longitude": -8.721545256,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14261",
- "name": "Rúa de Zamora, 1",
- "latitude": 42.228644118,
- "longitude": -8.720692314,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14264",
- "name": "Rúa de Urzáiz - Príncipe",
- "latitude": 42.235873545,
- "longitude": -8.720083317,
- "lines": [
- "C1",
- "A",
- "4A",
- "4C",
- "5A",
- "7",
- "9B",
- "12B",
- "14",
- "15B",
- "15C",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "24",
- "28",
- "N1",
- "N4"
- ],
- "amenities": [
- "shelter",
- "display"
- ]
- },
- {
- "stopId": "vitrasa:14267",
- "name": "Avda. da Atlántida, 64",
- "latitude": 42.221892792,
- "longitude": -8.758191526,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:14268",
- "name": "Avda. da Atlántida, 49",
- "latitude": 42.221731945,
- "longitude": -8.758417175,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14270",
- "name": "Estrada da Balsa, 67",
- "latitude": 42.196619218,
- "longitude": -8.743240048,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14271",
- "name": "Estrada da Balsa, 103",
- "latitude": 42.196050474,
- "longitude": -8.745105715,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14273",
- "name": "Rúa do Xalón, 41",
- "latitude": 42.219274062,
- "longitude": -8.656419893,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14277",
- "name": "Avda. da Mariña Española, 8",
- "latitude": 42.251776399,
- "longitude": -8.69414009,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14278",
- "name": "Avda. da Mariña Española, 44",
- "latitude": 42.25430173,
- "longitude": -8.692915616,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14279",
- "name": "Riós (Rotonda)",
- "latitude": 42.257069093,
- "longitude": -8.690786611,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14280",
- "name": "Avda. da Mariña Española (ETEA)",
- "latitude": 42.254604716,
- "longitude": -8.692539681,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14281",
- "name": "Avda. da Mariña Española (Praia de Ríos)",
- "latitude": 42.251596707,
- "longitude": -8.69420171,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14287",
- "name": "Rúa Santa Tegra, 67",
- "latitude": 42.25020334,
- "longitude": -8.701924083,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14288",
- "name": "Avda. de Guixar (fronte 28)",
- "latitude": 42.249218849,
- "longitude": -8.704807605,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14289",
- "name": "Rúa de Xulián Estévez (fronte 58)",
- "latitude": 42.246484972,
- "longitude": -8.705864005,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14290",
- "name": "Rúa de Xulián Estévez (fronte 18)",
- "latitude": 42.244107542,
- "longitude": -8.706343638,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14291",
- "name": "Avda. da Ponte (Vigo Memorial)",
- "latitude": 42.209935219,
- "longitude": -8.671464542,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14294",
- "name": "Avda. de Ricardo Mella, 406",
- "latitude": 42.190684424876565,
- "longitude": -8.799308812770041,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14295",
- "name": "Rúa de Pi i Margall, 121",
- "latitude": 42.230436358,
- "longitude": -8.731437473,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14296",
- "name": "Praza dos Leóns (Vigozoo)",
- "latitude": 42.248375604,
- "longitude": -8.675578666,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14298",
- "name": "Avda. de Samil (fronte 15)",
- "latitude": 42.215865535,
- "longitude": -8.774911658,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14299",
- "name": "Avda. de Samil (frente Verbum)",
- "latitude": 42.213777217,
- "longitude": -8.774600284,
- "lines": [
- "C3i",
- "15A",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1430",
- "name": "Avda. de Castrelos, 318",
- "latitude": 42.203408408,
- "longitude": -8.728817983,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14300",
- "name": "Avda. da Florida, 30",
- "latitude": 42.217907548,
- "longitude": -8.73707436,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14301",
- "name": "Avda. da Florida, 47",
- "latitude": 42.218257459,
- "longitude": -8.736328798,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:14302",
- "name": "Estrada Vella de Madrid, 7",
- "latitude": 42.214542094,
- "longitude": -8.696431619,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14304",
- "name": "Estrada Vella de Madrid, 145",
- "latitude": 42.221313975,
- "longitude": -8.681944471,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:14307",
- "name": "Rúa do Pintor Colmeiro, 11",
- "latitude": 42.224464416,
- "longitude": -8.727967343,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:14308",
- "name": "Camiño do Pinal, 6",
- "latitude": 42.16328558,
- "longitude": -8.716707662,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14309",
- "name": "Camiño do Pinal, 28",
- "latitude": 42.161067029,
- "longitude": -8.716468628,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14310",
- "name": "Camiño do Pinal (fronte 57)",
- "latitude": 42.159564137,
- "longitude": -8.718295559,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14311",
- "name": "Estrada de Valadares, 505",
- "latitude": 42.162720337,
- "longitude": -8.718900908,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14314",
- "name": "Rúa das Mantelas (cruce Avda. da Gran Vía)",
- "latitude": 42.227212568,
- "longitude": -8.720183032,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14315",
- "name": "Rúa das Mantelas, 92",
- "latitude": 42.22393338,
- "longitude": -8.716924148,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14317",
- "name": "Rúa da Salgueira Entrada (Igrexa)",
- "latitude": 42.222723933,
- "longitude": -8.719150283,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14318",
- "name": "Rúa da Salguera Entrada (fronte 5)",
- "latitude": 42.222591256,
- "longitude": -8.717753486,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14319",
- "name": "Rúa das Coutadas (Fonte)",
- "latitude": 42.221002214,
- "longitude": -8.72027208,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14320",
- "name": "Rúa do Miradoiro (Rotonda Centro Comercial)",
- "latitude": 42.220799025,
- "longitude": -8.723345356,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14321",
- "name": "Camiño do Freixeiro, 74",
- "latitude": 42.218131641,
- "longitude": -8.723120057,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14322",
- "name": "Rúa da Fonte Santa, 4",
- "latitude": 42.217813814,
- "longitude": -8.721352482,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14323",
- "name": "Rúa Finca dos Aires (cruce Rúa da Fonte Santa)",
- "latitude": 42.217059742,
- "longitude": -8.720340235,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14324",
- "name": "Rúa Finca dos Aires (Urbanización)",
- "latitude": 42.217256401,
- "longitude": -8.720101519,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14325",
- "name": "Rúa da Fonte Santa (fronte 4)",
- "latitude": 42.217848286,
- "longitude": -8.7214811,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14326",
- "name": "Baixada á Ponte Nova, 61",
- "latitude": 42.218038279,
- "longitude": -8.722489738,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14328",
- "name": "Citroën - PSA",
- "latitude": 42.208988415,
- "longitude": -8.746151897,
- "lines": [
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14329",
- "name": "Citroën (Puerta Principal)",
- "latitude": 42.210124372,
- "longitude": -8.741139991,
- "lines": [
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14330",
- "name": "Subida ás Chans (fronte cruce Rúa Senra)",
- "latitude": 42.198072667,
- "longitude": -8.682624653,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14331",
- "name": "Rúa de Álvaro Cunqueiro, 30",
- "latitude": 42.223769828,
- "longitude": -8.728938728,
- "lines": [
- "4A",
- "4C",
- "5A",
- "5B",
- "11",
- "12A",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:14333",
- "name": "Rúa de Cánovas del Castillo, 18",
- "latitude": 42.240189011,
- "longitude": -8.726765331,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "10",
- "15B",
- "15C",
- "28",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:14335",
- "name": "Camiño do Arieiro (Residencia de Maiores)",
- "latitude": 42.212692269,
- "longitude": -8.675661599,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:14336",
- "name": "Rúa das Teixugueiras, 8",
- "latitude": 42.21447626,
- "longitude": -8.75600551,
- "lines": [
- "13",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:14337",
- "name": "Rúa do Limpiño (Rotonda Rúa Teixugueiras)",
- "latitude": 42.213080218,
- "longitude": -8.754660224,
- "lines": [
- "5A",
- "5B",
- "13",
- "15A",
- "15B",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14345",
- "name": "Rúa do Areiro, 49",
- "latitude": 42.237269816,
- "longitude": -8.685138009,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14346",
- "name": "Rúa do Areiro, 52",
- "latitude": 42.237287688,
- "longitude": -8.685019992,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14347",
- "name": "Rúa do Areiro (cruce Salcides)",
- "latitude": 42.23913765,
- "longitude": -8.683873934,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14348",
- "name": "Rúa do Areiro, 76",
- "latitude": 42.238950988,
- "longitude": -8.683793467,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14349",
- "name": "Rúa do Areiro (Campo de Fútbol)",
- "latitude": 42.244717312,
- "longitude": -8.678473607,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14350",
- "name": "Rúa do Areiro (fronte Campo de Fútbol)",
- "latitude": 42.244849353,
- "longitude": -8.678366319,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14353",
- "name": "Praza dos Leóns (fronte Vigozoo)",
- "latitude": 42.248151648,
- "longitude": -8.675976097,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14354",
- "name": "Avda. de Ramón Nieto (fronte Igrexa)",
- "latitude": 42.225911433,
- "longitude": -8.675526243,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14355",
- "name": "Avda. de Ramón Nieto, 409",
- "latitude": 42.226638363,
- "longitude": -8.676135104,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14356",
- "name": "Avda. de Ricardo Mella, 314",
- "latitude": 42.192009114,
- "longitude": -8.783993123,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14357",
- "name": "Avda. de Ricardo Mella (cruce Camiño do Río)",
- "latitude": 42.191796473,
- "longitude": -8.784014088,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14358",
- "name": "Rúa das Teixugueiras, 28",
- "latitude": 42.209054557,
- "longitude": -8.75715865,
- "lines": [
- "5A",
- "5B",
- "13",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:14359",
- "name": "Rúa das Teixugueiras, 16-Portal 2",
- "latitude": 42.212235738,
- "longitude": -8.755011746,
- "lines": [
- "5A",
- "5B",
- "13",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:14360",
- "name": "Rúa das Teixugueiras, 19-Portal 5",
- "latitude": 42.208965857,
- "longitude": -8.757020567,
- "lines": [
- "5A",
- "5B",
- "13",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14361",
- "name": "Rúa das Teixugueiras, 17",
- "latitude": 42.209770472,
- "longitude": -8.755295907,
- "lines": [
- "5A",
- "5B",
- "13",
- "15A",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14362",
- "name": "Avda. de Samil, 101",
- "latitude": 42.202937872,
- "longitude": -8.776830486,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:14364",
- "name": "Estrada das Plantas (fronte Cidade Deportiva)",
- "latitude": 42.175757186,
- "longitude": -8.671074371,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14365",
- "name": "Estrada das Plantas (Viveiros)",
- "latitude": 42.181650197,
- "longitude": -8.667515723,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14372",
- "name": "Barrio da Salgueira, 22",
- "latitude": 42.221887526,
- "longitude": -8.720011371,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:14376",
- "name": "Rúa da Pateira, 20",
- "latitude": 42.226612651,
- "longitude": -8.699658408,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14377",
- "name": "Rúa da Pateira, 5",
- "latitude": 42.226582661,
- "longitude": -8.700385762,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14378",
- "name": "Rúa Molais, 83",
- "latitude": 42.22396201,
- "longitude": -8.653340726,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14381",
- "name": "Rúa do Abade Juan de Bastos, 6",
- "latitude": 42.195647685,
- "longitude": -8.728974153,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14385",
- "name": "Rúa da Vista do Mar, 45",
- "latitude": 42.240712912,
- "longitude": -8.6919418,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:14386",
- "name": "Rúa da Vista do Mar (Embalse)",
- "latitude": 42.238020208,
- "longitude": -8.691543884,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:14387",
- "name": "Rúa da Vista do Mar, 1",
- "latitude": 42.237167043,
- "longitude": -8.693243792,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:14388",
- "name": "Rúa das Teixugueiras, 11",
- "latitude": 42.211610124,
- "longitude": -8.754550253,
- "lines": [
- "5A",
- "5B",
- "13",
- "15A",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14389",
- "name": "Rúa das Teixugueiras, 22",
- "latitude": 42.210212603,
- "longitude": -8.755079989,
- "lines": [
- "5A",
- "5B",
- "13",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:14390",
- "name": "Rúa do Salgueiro (cruce Camiño Sanatorio)",
- "latitude": 42.241570883,
- "longitude": -8.655380719,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14391",
- "name": "Rúa do Salgueiro (fronte 38)",
- "latitude": 42.241652296,
- "longitude": -8.655302935,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14392",
- "name": "Rúa da Pedra Seixa (Colexio)",
- "latitude": 42.209458591,
- "longitude": -8.760561083,
- "lines": [
- "5A"
- ]
- },
- {
- "stopId": "vitrasa:14393",
- "name": "Rúa da Pedra Seixa (fronte Colexio)",
- "latitude": 42.209568936,
- "longitude": -8.760777001,
- "lines": [
- "5A"
- ]
- },
- {
- "stopId": "vitrasa:14395",
- "name": "Estrada de Madrid, 217",
- "latitude": 42.215601037,
- "longitude": -8.675477665,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14396",
- "name": "Avda. de García Barbón, 106",
- "latitude": 42.239965365,
- "longitude": -8.708024282,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14397",
- "name": "Avda. de García Barbón (fronte 104)",
- "latitude": 42.23973713,
- "longitude": -8.708397682,
- "lines": [
- "C3i",
- "5B",
- "10",
- "17",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14398",
- "name": "Avda. da Gran Vía, 116",
- "latitude": 42.22406594,
- "longitude": -8.723691036,
- "lines": [
- "C3d",
- "13",
- "15A",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:1440",
- "name": "Avda. de Castrelos, 339",
- "latitude": 42.198480135,
- "longitude": -8.723827649,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14401",
- "name": "Rúa de San Paio (cruce Camiño Barroca)",
- "latitude": 42.21072167,
- "longitude": -8.76212542,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14402",
- "name": "Rúa de San Paio, 111",
- "latitude": 42.210791203,
- "longitude": -8.761940347,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:14403",
- "name": "Rúa de Pedro Alvarado (cruce Camiño das Maceiras)",
- "latitude": 42.25049654,
- "longitude": -8.698390035,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14404",
- "name": "Rúa do Doutor Corbal, 58",
- "latitude": 42.251785642,
- "longitude": -8.696871994,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14406",
- "name": "Rúa de Enrique Lorenzo, 32",
- "latitude": 42.249462772,
- "longitude": -8.699772952,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14408",
- "name": "Rúa de Pedro Alvarado, 5",
- "latitude": 42.248885006,
- "longitude": -8.698128758,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:14409",
- "name": "Estrada das Plantas (fronte cruce Avda. do Rebullón)",
- "latitude": 42.204188441,
- "longitude": -8.670257126,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14410",
- "name": "Estrada das Plantas (cruce Avda. do Rebullón)",
- "latitude": 42.204639457,
- "longitude": -8.670329545,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14411",
- "name": "Rúa de Xeme, 1",
- "latitude": 42.205174543,
- "longitude": -8.698209134,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14412",
- "name": "Rúa de Xeme, 6",
- "latitude": 42.20497586,
- "longitude": -8.697957006,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:14413",
- "name": "Estrada da Garrida (cruce Camiño Fabas)",
- "latitude": 42.173955568,
- "longitude": -8.703050076,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14414",
- "name": "Avda. de Santa Mariña, 40",
- "latitude": 42.221587211,
- "longitude": -8.665078444,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14415",
- "name": "Avda. de Santa Mariña (antes 49)",
- "latitude": 42.221557416,
- "longitude": -8.665381534,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:14416",
- "name": "Rúa de Severino Cobas, 118",
- "latitude": 42.225468623,
- "longitude": -8.691491081,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:14419",
- "name": "Estrada de Bembrive (cruce Camiño dos Rapadouros)",
- "latitude": 42.201138734,
- "longitude": -8.688585073,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:14420",
- "name": "Estrada de Bembrive, 318",
- "latitude": 42.201419233,
- "longitude": -8.688526069,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:14421",
- "name": "Estrada das Prantas (fronte Campo de Béisbol)",
- "latitude": 42.186683264,
- "longitude": -8.669320703,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14422",
- "name": "Estrada das Plantas (Campo de Béisbol)",
- "latitude": 42.18695315,
- "longitude": -8.669514066,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:14425",
- "name": "Avda. do Alcalde Gregorio Espino, 2",
- "latitude": 42.232253792,
- "longitude": -8.707208575,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:1450",
- "name": "Avda. de Castrelos, 366",
- "latitude": 42.201044695,
- "longitude": -8.726112037,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:1460",
- "name": "Avda. de Castrelos, 396",
- "latitude": 42.198867605,
- "longitude": -8.72460549,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:1470",
- "name": "Avda. de Castrelos, 399",
- "latitude": 42.194996678,
- "longitude": -8.72097155,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:1480",
- "name": "Avda. de Castrelos, 526",
- "latitude": 42.19015727,
- "longitude": -8.72109012,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:14890",
- "name": "Rúa das Teixugueiras, 25",
- "latitude": 42.207545331,
- "longitude": -8.758718406,
- "lines": [
- "5B",
- "13",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:14892",
- "name": "Rúa do Conde de Torrecedeira, 123",
- "latitude": 42.224929414,
- "longitude": -8.735414067,
- "lines": [
- "C1",
- "C3d",
- "A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:14893",
- "name": "Rúa de Manuel Costas Bastos, 26",
- "latitude": 42.243157956,
- "longitude": -8.666962176,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14894",
- "name": "Avda. do Alcalde Portanet, 8",
- "latitude": 42.211736934,
- "longitude": -8.733337505,
- "lines": [
- "7",
- "12B",
- "17",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14895",
- "name": "Rúa do Areiro (cruce Camiño das Laxes)",
- "latitude": 42.241392275,
- "longitude": -8.681203235,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14896",
- "name": "Rúa do Areiro, 93",
- "latitude": 42.241385532,
- "longitude": -8.681400937,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:14897",
- "name": "Camiño do Arieiro (fronte 13)",
- "latitude": 42.213239161,
- "longitude": -8.67854147,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:14898",
- "name": "Camiño do Arieiro, 13",
- "latitude": 42.213239161,
- "longitude": -8.678369808,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:14899",
- "name": "Rúa de López Mora, 33",
- "latitude": 42.225485719,
- "longitude": -8.730501434,
- "lines": [
- "5A",
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:1490",
- "name": "Avda. de Castrelos, 67",
- "latitude": 42.210613294,
- "longitude": -8.732057664,
- "lines": [
- "7",
- "12B",
- "17",
- "27",
- "H1",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:14900",
- "name": "Rúa de Martín Echegaray, 24",
- "latitude": 42.217196117,
- "longitude": -8.743726669,
- "lines": [
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:14901",
- "name": "Avda. de Castelao, 1",
- "latitude": 42.220211003,
- "longitude": -8.734183023,
- "lines": [
- "C3i",
- "10",
- "11",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:14903",
- "name": "Rúa de Pi i Margall, 66",
- "latitude": 42.23174719,
- "longitude": -8.731081308,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:14905",
- "name": "Camiño da Devesa (Cemiterio)",
- "latitude": 42.249981353,
- "longitude": -8.667186504,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:14906",
- "name": "Rúa da Rabadeira, 6",
- "latitude": 42.232479787,
- "longitude": -8.654890792,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14907",
- "name": "Rúa da Rabadeira, 24",
- "latitude": 42.233655479,
- "longitude": -8.653300242,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:14908",
- "name": "Rúa da Rabadeira, 17",
- "latitude": 42.233829075,
- "longitude": -8.653458259,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:14909",
- "name": "Rúa da Rabadeira, 11",
- "latitude": 42.232663198,
- "longitude": -8.655097059,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:14910",
- "name": "Estrada do Marco, 4",
- "latitude": 42.21025095,
- "longitude": -8.704036986,
- "lines": [
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:14911",
- "name": "Estrada do Marco, 16",
- "latitude": 42.208830737,
- "longitude": -8.706971174,
- "lines": [
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:150",
- "name": "Avda. do Alcalde Lavadores, 48",
- "latitude": 42.222636676,
- "longitude": -8.697201413,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1500",
- "name": "Avda. de Castrelos, 58",
- "latitude": 42.217084821,
- "longitude": -8.732530893,
- "lines": [
- "7",
- "12B",
- "17",
- "27",
- "H2",
- "VTS",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:15001",
- "name": "Rúa Regueiro do Forno (Vial C) Centro de Servicios",
- "latitude": 42.176036704,
- "longitude": -8.709480986,
- "lines": [
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:15002",
- "name": "PTL 2",
- "latitude": 42.177194637,
- "longitude": -8.707850807,
- "lines": [
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:15003",
- "name": "PTL 3",
- "latitude": 42.178231278,
- "longitude": -8.706474418,
- "lines": [
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:15004",
- "name": "PTL 4",
- "latitude": 42.176503017,
- "longitude": -8.710007303,
- "lines": [
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:1510",
- "name": "Avda. da Ponte, 80",
- "latitude": 42.215203365,
- "longitude": -8.670416197,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1520",
- "name": "Avda. da Ponte, 83",
- "latitude": 42.215400704,
- "longitude": -8.671308533,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1530",
- "name": "Avda. da Ponte (fronte Grupo S. Gorxal)",
- "latitude": 42.212814417,
- "longitude": -8.670537674,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1540",
- "name": "Avda. da Ponte, 15",
- "latitude": 42.221677429,
- "longitude": -8.66978207,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:1550",
- "name": "Avda. da Ponte, 18",
- "latitude": 42.221299207,
- "longitude": -8.670013709,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1560",
- "name": "Avda. da Ponte, 31",
- "latitude": 42.219388605,
- "longitude": -8.669172606,
- "lines": [
- "15A",
- "15B",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:1570",
- "name": "Avda. da Ponte, 47",
- "latitude": 42.217957539,
- "longitude": -8.669369577,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1580",
- "name": "Avda. da Ponte, 54",
- "latitude": 42.218393587,
- "longitude": -8.669480106,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:1590",
- "name": "Avda. de Galicia (Parque Riouxa)",
- "latitude": 42.256667905,
- "longitude": -8.682575386,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:160",
- "name": "Avda. do Alcalde Lavadores, 67",
- "latitude": 42.222830286,
- "longitude": -8.697231476,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1600",
- "name": "Avda. de Galicia, 103",
- "latitude": 42.251389209,
- "longitude": -8.689369833,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1610",
- "name": "Avda. de Galicia, 146",
- "latitude": 42.251376198,
- "longitude": -8.68920404,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1620",
- "name": "Avda. de Galicia, 139",
- "latitude": 42.253987165,
- "longitude": -8.686196616,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1630",
- "name": "Avda. de Galicia, 165",
- "latitude": 42.255177674,
- "longitude": -8.684734482,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1640",
- "name": "Avda. de Galicia, 200",
- "latitude": 42.254950083,
- "longitude": -8.684862748,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1650",
- "name": "Avda. de Galicia, 238",
- "latitude": 42.256910715,
- "longitude": -8.68201353,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1660",
- "name": "Avda. de Galicia, 280",
- "latitude": 42.259217959,
- "longitude": -8.679666503,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1670",
- "name": "Avda. de Galicia, 285",
- "latitude": 42.258365967,
- "longitude": -8.680508997,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1680",
- "name": "Avda. de Galicia (Parque Cruce Balbarda)",
- "latitude": 42.251327471,
- "longitude": -8.69260735,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1690",
- "name": "Avda. de Galicia, 71",
- "latitude": 42.251420909,
- "longitude": -8.692153216,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:170",
- "name": "Avda. do Alcalde Lavadores, 152",
- "latitude": 42.215084316,
- "longitude": -8.696854931,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:1710",
- "name": "Avda. de Vigo, 6",
- "latitude": 42.274450823,
- "longitude": -8.667138233,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1720",
- "name": "Avda. de Vigo, 95",
- "latitude": 42.270480988,
- "longitude": -8.667726374,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1730",
- "name": "Avda. de Vigo, 129",
- "latitude": 42.267833798,
- "longitude": -8.671345739,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1740",
- "name": "Avda. de Vigo, 120",
- "latitude": 42.27068743,
- "longitude": -8.668057842,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1750",
- "name": "Avda. de Vigo, 161",
- "latitude": 42.266305919,
- "longitude": -8.672818918,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1760",
- "name": "Avda. de Vigo, 201",
- "latitude": 42.26408966,
- "longitude": -8.674082239,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1770",
- "name": "Avda. de Vigo (Alameda de Rosalía de Castro)",
- "latitude": 42.26785896,
- "longitude": -8.671440263,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1780",
- "name": "Avda. de Vigo, 230",
- "latitude": 42.266245291,
- "longitude": -8.672965754,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1790",
- "name": "Avda. de Vigo, 261 (Cuatro Puentes)",
- "latitude": 42.261621089,
- "longitude": -8.677207279,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:180",
- "name": "Estrada de Valadares, 451",
- "latitude": 42.166144986,
- "longitude": -8.720162371,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:1800",
- "name": "Avda. de Vigo, 266",
- "latitude": 42.263995234,
- "longitude": -8.674224503,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1810",
- "name": "Avda. de Vigo, 320",
- "latitude": 42.262068498,
- "longitude": -8.676736193,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1820",
- "name": "Avda. de Vigo, 49",
- "latitude": 42.271878394,
- "longitude": -8.666356304,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1830",
- "name": "Avda. de Vigo, 11",
- "latitude": 42.274038501,
- "longitude": -8.666949932,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:1840",
- "name": "Avda. de Vigo, 72",
- "latitude": 42.27159436,
- "longitude": -8.666389735,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:1850",
- "name": "Avda. de Europa (antes Camiño Freixeiro)",
- "latitude": 42.216135691,
- "longitude": -8.759632243,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "12A",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:1860",
- "name": "Avda. de Europa (cruce Rúa da Pardaíña)",
- "latitude": 42.216741568,
- "longitude": -8.757129742,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "12A",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:1870",
- "name": "Avda. de Europa, 102",
- "latitude": 42.211235082,
- "longitude": -8.773459294,
- "lines": [
- "C3d",
- "C3i",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:1880",
- "name": "Avda. de Europa (cruce Rúa das Teixugueiras)",
- "latitude": 42.216687933,
- "longitude": -8.756794466,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "4C",
- "12A",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1890",
- "name": "Avda. de Europa, 23",
- "latitude": 42.215913672,
- "longitude": -8.759904797,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "4C",
- "12A",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:190",
- "name": "Rúa de Ángel de Lema, 58",
- "latitude": 42.250539537,
- "longitude": -8.685179363,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:1900",
- "name": "Avda. de Europa (cruce Rúa do Bravo)",
- "latitude": 42.211855119,
- "longitude": -8.766755158,
- "lines": [
- "C3d",
- "C3i",
- "4C",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1910",
- "name": "Avda. de Europa (fronte cruce Rúa do Bravo)",
- "latitude": 42.211905694,
- "longitude": -8.766999036,
- "lines": [
- "C3d",
- "C3i",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:1920",
- "name": "Avda. de Europa, 101",
- "latitude": 42.211066417,
- "longitude": -8.772953743,
- "lines": [
- "C3d",
- "C3i",
- "4C",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:1930",
- "name": "Estrada de Madrid (fronte Seminario)",
- "latitude": 42.21474886,
- "longitude": -8.69897918,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:1940",
- "name": "Avda. de Madrid, 136",
- "latitude": 42.218338954,
- "longitude": -8.703817429,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:195",
- "name": "Rúa de Ángel de Lema, 247",
- "latitude": 42.256624708,
- "longitude": -8.677490797,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:1950",
- "name": "Avda. de Madrid, 124",
- "latitude": 42.220567154,
- "longitude": -8.706419628,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:1960",
- "name": "Avda. de Madrid, 62",
- "latitude": 42.224676782,
- "longitude": -8.711832326,
- "lines": [
- "12A",
- "12B",
- "13",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:1970",
- "name": "Avda. de Madrid, 57",
- "latitude": 42.223965709,
- "longitude": -8.710062068,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:1980",
- "name": "Estrada de Madrid (Seminario)",
- "latitude": 42.214703324,
- "longitude": -8.699378397,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:1990",
- "name": "Avda. de Madrid, 110",
- "latitude": 42.222130198,
- "longitude": -8.708300774,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:20",
- "name": "Rúa do Abade Juan de Bastos (fronte Asociación Veciños)",
- "latitude": 42.187593499,
- "longitude": -8.741246641,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:200",
- "name": "Rúa de Ángel de Lema, 100",
- "latitude": 42.252115803,
- "longitude": -8.683374373,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2000",
- "name": "Avda. de Madrid, 133",
- "latitude": 42.220728012,
- "longitude": -8.70612292,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:20009",
- "name": "Estrada Herville, 16",
- "latitude": 42.154843231,
- "longitude": -8.67357438,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20010",
- "name": "Avda. de Balaídos, 69",
- "latitude": 42.212824845,
- "longitude": -8.737161077,
- "lines": [
- "A",
- "16",
- "23",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:20011",
- "name": "Avda. de Balaídos, 11",
- "latitude": 42.213089061,
- "longitude": -8.733392573,
- "lines": [
- "A",
- "16",
- "23",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:20012",
- "name": "Avda. de Castrelos, 33",
- "latitude": 42.215888032,
- "longitude": -8.732331627,
- "lines": [
- "A",
- "16",
- "23",
- "27",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20013",
- "name": "Avda. de Castrelos, 116",
- "latitude": 42.215905917,
- "longitude": -8.732471102,
- "lines": [
- "7",
- "12B",
- "17",
- "27",
- "H2",
- "VTS",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:20018",
- "name": "Estrada Herville, 70",
- "latitude": 42.151451604,
- "longitude": -8.673803367,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20019",
- "name": "Subida aos Padróns, 165",
- "latitude": 42.149222193,
- "longitude": -8.679363987,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20020",
- "name": "Subida aos Padróns (cruce Parque Forestal)",
- "latitude": 42.151606055,
- "longitude": -8.679299082,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20021",
- "name": "Subida aos Padróns (fronte 34)",
- "latitude": 42.152770176,
- "longitude": -8.686251828,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20022",
- "name": "Rúa da Vía Norte (Hospital)",
- "latitude": 42.234622237,
- "longitude": -8.707758443,
- "lines": [
- "24"
- ]
- },
- {
- "stopId": "vitrasa:20023",
- "name": "Rúa da Vía Norte - Est. Intermodal - C.C.",
- "latitude": 42.234062973,
- "longitude": -8.712195759,
- "lines": [
- "24"
- ]
- },
- {
- "stopId": "vitrasa:20024",
- "name": "Rúa das Teixugueiras, 34",
- "latitude": 42.207634066,
- "longitude": -8.758920861,
- "lines": [
- "5B",
- "13",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20025",
- "name": "Rúa das Teixugueiras, 38",
- "latitude": 42.206553268,
- "longitude": -8.760122491,
- "lines": [
- "5B",
- "13",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20026",
- "name": "Rúa das Teixugueiras, 29",
- "latitude": 42.206488366,
- "longitude": -8.759906624,
- "lines": [
- "5B",
- "13",
- "N4",
- "H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:20027",
- "name": "Avda. de Castelao, 64",
- "latitude": 42.217691983,
- "longitude": -8.749585877,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:20029",
- "name": "Subida á Madroa (fronte Campo Fútbol)",
- "latitude": 42.245921506,
- "longitude": -8.673014474,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20030",
- "name": "Subida á Madroa (Campo Fútbol)",
- "latitude": 42.247859379,
- "longitude": -8.674363625,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20041",
- "name": "Rúa da Cabalaría, 91",
- "latitude": 42.233622103,
- "longitude": -8.689209566,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20042",
- "name": "Rúa da Cabalaría, 148",
- "latitude": 42.233723398,
- "longitude": -8.689094231,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20043",
- "name": "Rúa do Areiro, 20",
- "latitude": 42.236036786,
- "longitude": -8.686656768,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20044",
- "name": "Rúa de Martín Echegaray, 7",
- "latitude": 42.215220874,
- "longitude": -8.742680967,
- "lines": [
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20045",
- "name": "Rúa de Xestoso, 4",
- "latitude": 42.200532989,
- "longitude": -8.674075447,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20046",
- "name": "Rúa de Xestoso, 12",
- "latitude": 42.201968444,
- "longitude": -8.67477879,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20047",
- "name": "Rúa do Xestoso, 72",
- "latitude": 42.204330306,
- "longitude": -8.674670483,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20048",
- "name": "Avda. de Cesáreo Vázquez (cruce Camiño Amariz Lourenzo)",
- "latitude": 42.182684406,
- "longitude": -8.802402364,
- "lines": [
- "11",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:20049",
- "name": "Avda. de Cesáreo Vázquez, 62",
- "latitude": 42.18238342,
- "longitude": -8.802126069,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:20050",
- "name": "Rúa de Severino Cobas, 186",
- "latitude": 42.225550059,
- "longitude": -8.686684563,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:20051",
- "name": "Rúa de Severino Cobas, 89",
- "latitude": 42.225652904,
- "longitude": -8.686624017,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:20052",
- "name": "Rúa de Aragón, 21",
- "latitude": 42.232748414,
- "longitude": -8.702539655,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20053",
- "name": "Rúa de Ángel de Lema (cruce Paraixal)",
- "latitude": 42.248962858,
- "longitude": -8.688272303,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:20054",
- "name": "Rúa de Ángel de Lema, 33",
- "latitude": 42.248897377,
- "longitude": -8.689150714,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:20057",
- "name": "Estación Ferrocarril Guixar",
- "latitude": 42.238843911,
- "longitude": -8.713008504,
- "lines": [
- "A",
- "5B",
- "16",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:20058",
- "name": "Rúa do Canceleiro, 6",
- "latitude": 42.238435471,
- "longitude": -8.714413687,
- "lines": [
- "A",
- "5B",
- "16",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:20059",
- "name": "Rúa de Manuel Álvarez (fronte 10)",
- "latitude": 42.222745522,
- "longitude": -8.677932515,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20060",
- "name": "Rúa de Manuel Álvarez, 10",
- "latitude": 42.22282586,
- "longitude": -8.678077606,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20061",
- "name": "Rúa de Martín Echegaray (Colexio)",
- "latitude": 42.217568173,
- "longitude": -8.744018511,
- "lines": [
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20062",
- "name": "Avda. de Beiramar, 1",
- "latitude": 42.236143706,
- "longitude": -8.73180718,
- "lines": [
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20071",
- "name": "Rúa de Xestoso (fronte 105)",
- "latitude": 42.205511653,
- "longitude": -8.672824803,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20072",
- "name": "Camiño do Pouso",
- "latitude": 42.196643694,
- "longitude": -8.671663218,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:20075",
- "name": "Avda. de Castelao, 65",
- "latitude": 42.218011215,
- "longitude": -8.745369728,
- "lines": [
- "C3i",
- "4A",
- "4C",
- "10",
- "11",
- "12A",
- "15A",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20076",
- "name": "Avda. de Castelao, 25",
- "latitude": 42.21901679,
- "longitude": -8.739919147,
- "lines": [
- "C3i",
- "4A",
- "4C",
- "10",
- "11",
- "12A",
- "15A",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:20077",
- "name": "Avda. de Castelao, 40",
- "latitude": 42.219259727,
- "longitude": -8.739809435,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5B",
- "10",
- "12A",
- "13",
- "15A",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:20078",
- "name": "Avda. das Camelias, 3",
- "latitude": 42.233341329,
- "longitude": -8.728967219,
- "lines": [
- "4A",
- "4C",
- "11",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:20079",
- "name": "Avda. das Camelias, 8",
- "latitude": 42.23341294,
- "longitude": -8.729045156,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:20080",
- "name": "Avda. de Santa Mariña, 68",
- "latitude": 42.221674556,
- "longitude": -8.660937347,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:20081",
- "name": "Subida aos Padróns (cruce Camiño da Chan da Rabicha)",
- "latitude": 42.151852858,
- "longitude": -8.684956786,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20082",
- "name": "Avda. de Santa Mariña (fronte 66)",
- "latitude": 42.221758032,
- "longitude": -8.661135597,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:20083",
- "name": "Rúa Castañal, 6",
- "latitude": 42.188074669,
- "longitude": -8.701928367,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20084",
- "name": "Rúa Castañal, 26",
- "latitude": 42.18711079,
- "longitude": -8.699519743,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20085",
- "name": "Rúa Castañal (cruce Camiño das Presas)",
- "latitude": 42.185852445,
- "longitude": -8.696410892,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20086",
- "name": "Estrada dos Seixiños, 67",
- "latitude": 42.190645281,
- "longitude": -8.696150583,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20087",
- "name": "Estrada dos Seixiños, 23",
- "latitude": 42.194639373,
- "longitude": -8.696795357,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20089",
- "name": "Porriño - Padre Seixas ©",
- "latitude": 42.213044566,
- "longitude": -8.751396835,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:20091",
- "name": "Camiño da Miragaia, 11-13",
- "latitude": 42.238164803,
- "longitude": -8.711212761,
- "lines": [
- "A",
- "5B",
- "16",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:20094",
- "name": "Rúa das Mantelas (fronte 63)",
- "latitude": 42.22518736,
- "longitude": -8.717399288,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:20095",
- "name": "Estrada Vella de Madrid, 107A",
- "latitude": 42.219212419,
- "longitude": -8.685836356,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20096",
- "name": "Estrada Vella de Madrid (fronte 107A)",
- "latitude": 42.219128991,
- "longitude": -8.685753208,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20099",
- "name": "Rúa de Camilo Veiga, 48",
- "latitude": 42.222390674,
- "longitude": -8.752507356,
- "lines": [
- "C3i",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:2010",
- "name": "Avda. de Madrid, 195",
- "latitude": 42.218213283,
- "longitude": -8.703163426,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:20100",
- "name": "Rúa de Camilo Veiga, 6",
- "latitude": 42.223195763,
- "longitude": -8.749650702,
- "lines": [
- "C3i",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:20102",
- "name": "H. A. Cunqueiro (Porta Principal)",
- "latitude": 42.191034002,
- "longitude": -8.714303116,
- "lines": [
- "6",
- "12B",
- "18H",
- "27",
- "H1",
- "H2",
- "H3",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:20103",
- "name": "Avda. do Fragoso, 21",
- "latitude": 42.218946899,
- "longitude": -8.733670293,
- "lines": [
- "7",
- "12B",
- "17",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:20104",
- "name": "Rúa de Emilia Pardo Bazán, 134",
- "latitude": 42.220938435,
- "longitude": -8.709621883,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:20105",
- "name": "Rúa de Emilia Pardo Bazán, 121",
- "latitude": 42.221232035,
- "longitude": -8.709808647,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:20107",
- "name": "Estrada do Porto (Lavadero)",
- "latitude": 42.188244696,
- "longitude": -8.703164368,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20110",
- "name": "Rúa de Manuel Castro, 10",
- "latitude": 42.213797254,
- "longitude": -8.741472696,
- "lines": [
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:20111",
- "name": "H. A. Cunqueiro (Hospital de Día)",
- "latitude": 42.187585838,
- "longitude": -8.716278919,
- "lines": [
- "A",
- "6",
- "12B",
- "18H",
- "27",
- "H1",
- "H2",
- "H3",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:20112",
- "name": "H. A. Cunqueiro (Urxencias)",
- "latitude": 42.188578188,
- "longitude": -8.713087125,
- "lines": [
- "6",
- "12B",
- "18H",
- "H1",
- "H3",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:20113",
- "name": "Praza de América, 3 (Dirección Hospital)",
- "latitude": 42.220876566,
- "longitude": -8.733367644,
- "lines": [
- "12B",
- "N4",
- "H1",
- "H2",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:20114",
- "name": "Estrada do Porto (fronte Lavadero)",
- "latitude": 42.18846205,
- "longitude": -8.703352711,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:20115",
- "name": "Estrada do Porto (fronte cruce Rúa das Sueiras)",
- "latitude": 42.190100441,
- "longitude": -8.705453204,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:20116",
- "name": "Estrada da Coutada-Beade, 2",
- "latitude": 42.192037327,
- "longitude": -8.70573732,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20117",
- "name": "Estrada do Porto (cruce Camiño do Frascuelo)",
- "latitude": 42.191616209,
- "longitude": -8.706277831,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20118",
- "name": "Rúa Conde de Gondomar",
- "latitude": 42.228358488,
- "longitude": -8.719490904,
- "lines": [
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20119",
- "name": "H. A. Cunqueiro (chegada)",
- "latitude": 42.190930878,
- "longitude": -8.71409354,
- "lines": [
- "6",
- "12B",
- "H1",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20124",
- "name": "Estrada Clara Campoamor, 6",
- "latitude": 42.208989468,
- "longitude": -8.729330619,
- "lines": [
- "A",
- "12B",
- "H1",
- "H2",
- "H",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:20125",
- "name": "Estrada Clara Campoamor (fronte 6)",
- "latitude": 42.209126911,
- "longitude": -8.729344197,
- "lines": [
- "12B",
- "H1",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20126",
- "name": "Estrada Clara Campoamor (Rotonda HAC)",
- "latitude": 42.190252452,
- "longitude": -8.717998617,
- "lines": [
- "12B",
- "18H",
- "H1",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20127",
- "name": "Estrada Clara Campoamor (fronte Rotonda HAC)",
- "latitude": 42.19007538,
- "longitude": -8.718125045,
- "lines": [
- "A",
- "12B",
- "18H",
- "27",
- "H1",
- "H2",
- "H",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:20130",
- "name": "Parque Forestal de Zamáns (Proba Andaina)",
- "latitude": 42.152788309,
- "longitude": -8.681902684,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20132",
- "name": "Avda. de Galicia, 341",
- "latitude": 42.260473187,
- "longitude": -8.67881466,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:20136",
- "name": "Avda. de E. Martínez Garrido, 98",
- "latitude": 42.225764699,
- "longitude": -8.704499864,
- "lines": [
- "4C",
- "23",
- "31",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:20137",
- "name": "Camiño da Devesa (Asociación Veciños)",
- "latitude": 42.246563041,
- "longitude": -8.669395817,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:20139",
- "name": "Estrada Matamá Pazo (fronte 162)",
- "latitude": 42.199144892,
- "longitude": -8.758506717,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:20141",
- "name": "Avda. da Ponte (fronte Vigo Memorial)",
- "latitude": 42.21057897,
- "longitude": -8.671171189,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:20142",
- "name": "Camiño do Outeiro, 3",
- "latitude": 42.200738188,
- "longitude": -8.714882876,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:20143",
- "name": "Rúa das Teixugueiras (fronte 1)",
- "latitude": 42.215448094,
- "longitude": -8.756474306,
- "lines": [
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:20154",
- "name": "Rúa de Ramiro Pascual (fronte 127)",
- "latitude": 42.192089689,
- "longitude": -8.709245389,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20155",
- "name": "Rúa de Ramiro Pascual, 131",
- "latitude": 42.19217626,
- "longitude": -8.708899009,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20156",
- "name": "Económicas e Empresariais (CUVI 2)",
- "latitude": 42.169627618,
- "longitude": -8.67984145,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:20157",
- "name": "Estrada do Porto, 88",
- "latitude": 42.185615419,
- "longitude": -8.702424678,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:20158",
- "name": "Estrada do Porto, 81",
- "latitude": 42.185593055,
- "longitude": -8.702377974,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:20159",
- "name": "Estrada de Valadares, 571",
- "latitude": 42.160348044,
- "longitude": -8.718706355,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20160",
- "name": "Estrada de Valadares, 522",
- "latitude": 42.160066796,
- "longitude": -8.718938239,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20166",
- "name": "Camiño da Brea, 2",
- "latitude": 42.202134841,
- "longitude": -8.70572793,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:20167",
- "name": "Camiño da Brea, 3",
- "latitude": 42.202095058,
- "longitude": -8.705814233,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:20168",
- "name": "Estrada do Freixo (despois 118)",
- "latitude": 42.173596087,
- "longitude": -8.730918928,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20169",
- "name": "Estrada do Freixo (despois 235)",
- "latitude": 42.173616782,
- "longitude": -8.730810863,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20170",
- "name": "Rúa de Álvaro Cunqueiro, 4",
- "latitude": 42.224544805,
- "longitude": -8.730413561,
- "lines": [
- "5A",
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:20171",
- "name": "Estrada Clara Campoamor (cruce Camiño da Pousa)",
- "latitude": 42.204380762,
- "longitude": -8.726688445,
- "lines": [
- "12B",
- "H1",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20172",
- "name": "Estrada Clara Campoamor (cruce Camiño da Nogueira)",
- "latitude": 42.203736336,
- "longitude": -8.726617869,
- "lines": [
- "A",
- "12B",
- "H1",
- "H2",
- "H",
- "PTL"
- ]
- },
- {
- "stopId": "vitrasa:20173",
- "name": "Avda. de Castrelos, 502",
- "latitude": 42.192504056,
- "longitude": -8.721215121,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:20174",
- "name": "Baixada ao Pontillón S/N",
- "latitude": 42.21519917,
- "longitude": -8.726793773,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:20177",
- "name": "Rúa de Pizarro, 16",
- "latitude": 42.230767817,
- "longitude": -8.715105964,
- "lines": [
- "C3i",
- "6",
- "11",
- "15A",
- "23",
- "25",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20178",
- "name": "Estrada de Camposancos (cruce Camiño da Estea)",
- "latitude": 42.172412443,
- "longitude": -8.799591567,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:20180",
- "name": "Rúa do Reiseñor, 10",
- "latitude": 42.229527407,
- "longitude": -8.70843784,
- "lines": [
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:20186",
- "name": "Rúa da Rabadeira, 71",
- "latitude": 42.23755404,
- "longitude": -8.651558138,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:20187",
- "name": "Rúa da Rabadeira, 46",
- "latitude": 42.237422128,
- "longitude": -8.65153195,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:20188",
- "name": "Rúa da Saa (fronte 43)",
- "latitude": 42.201670402,
- "longitude": -8.708928464,
- "lines": [
- "18B",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20189",
- "name": "Rúa da Saa, 10",
- "latitude": 42.201625853,
- "longitude": -8.712945043,
- "lines": [
- "18B",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:20190",
- "name": "Avda. das Camelias (fronte Praza do Rei)",
- "latitude": 42.234906013,
- "longitude": -8.72662052,
- "lines": [
- "4A",
- "4C",
- "11",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:20191",
- "name": "Rúa das Figueiras, 200",
- "latitude": 42.229676205,
- "longitude": -8.657383392,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:20192",
- "name": "Rúa de Colón, 26",
- "latitude": 42.237168511,
- "longitude": -8.720373767,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12B",
- "16",
- "17",
- "24",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:20193",
- "name": "Rúa de Policarpo Sanz, 25",
- "latitude": 42.23767601188501,
- "longitude": -8.721582630122455,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "6",
- "9B",
- "10",
- "11",
- "15B",
- "15C",
- "28",
- "N1",
- "N4",
- "H1",
- "VTS"
- ],
- "amenities": [
- "shelter",
- "display"
- ]
- },
- {
- "stopId": "vitrasa:20194",
- "name": "Rúa de Cánovas del Castillo, 28",
- "latitude": 42.240364985,
- "longitude": -8.724530974,
- "lines": [
- "C3d",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20195",
- "name": "Praza de Compostela (fronte 35)",
- "latitude": 42.2393606,
- "longitude": -8.724131464,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "6",
- "9B",
- "10",
- "11",
- "15B",
- "15C",
- "28",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:20196",
- "name": "Estrada de Camposancos, 498",
- "latitude": 42.175325155,
- "longitude": -8.799594139,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:20197",
- "name": "Rúa de Pi i Margall, 3-5",
- "latitude": 42.23558703,
- "longitude": -8.728830897,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:20198",
- "name": "Rúa de Policarpo Sanz, 26",
- "latitude": 42.237533428,
- "longitude": -8.722195046,
- "lines": [
- "C3d",
- "28"
- ],
- "amenities": [
- "shelter"
- ]
- },
- {
- "stopId": "vitrasa:20199",
- "name": "Rúa de Puerto Rico, 12",
- "latitude": 42.228802205,
- "longitude": -8.718136653,
- "lines": [
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:2020",
- "name": "Avda. de Madrid, 2",
- "latitude": 42.228518615,
- "longitude": -8.719214126,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:20202",
- "name": "Estación Marítima",
- "latitude": 42.2404374,
- "longitude": -8.726048008,
- "lines": [
- "TUR"
- ]
- },
- {
- "stopId": "vitrasa:20203",
- "name": "Avda. da Gran Vía, 47",
- "latitude": 42.230881062,
- "longitude": -8.718397577,
- "lines": [
- "7",
- "12B",
- "14",
- "16",
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:20206",
- "name": "Rúa do Marqués de Valladares (fronte 19)",
- "latitude": 42.238271922,
- "longitude": -8.723353532,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "10",
- "15B",
- "15C",
- "28",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:20208",
- "name": "Rúa de Colón, 12",
- "latitude": 42.238028627,
- "longitude": -8.720556548,
- "lines": [
- "C1",
- "A",
- "5A",
- "9B",
- "15B",
- "15C",
- "28",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:20209",
- "name": "Avda. do Alcalde Portanet, 23",
- "latitude": 42.211481651,
- "longitude": -8.734440746,
- "lines": [
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:20210",
- "name": "Estrada de Camposancos, 108",
- "latitude": 42.19824056,
- "longitude": -8.763182189,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:20211",
- "name": "Estrada de Camposancos, 109",
- "latitude": 42.198422825,
- "longitude": -8.762538026,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:20212",
- "name": "Rúa do Canabido, 18",
- "latitude": 42.188388732,
- "longitude": -8.805956864,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:20214",
- "name": "Rúa da República Argentina, 21",
- "latitude": 42.237538973,
- "longitude": -8.718186356,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:20215",
- "name": "Rúa da Coruña, 21",
- "latitude": 42.223880296,
- "longitude": -8.735520196,
- "lines": [
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "13",
- "N4",
- "H1",
- "H",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:20216",
- "name": "Avda. de Cesáreo Vázquez (fronte 43)",
- "latitude": 42.179747589,
- "longitude": -8.802157388,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:20217",
- "name": "Rosalía de Castro, 4",
- "latitude": 42.238229421,
- "longitude": -8.719950346,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:20218",
- "name": "Rúa de Oporto, 28",
- "latitude": 42.23721395,
- "longitude": -8.716444794,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:20219",
- "name": "Avda. do Aeroporto (fronte 90)",
- "latitude": 42.234830699,
- "longitude": -8.695443515,
- "lines": [
- "A",
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:20221",
- "name": "Praza do Rato-Rua Rocío",
- "latitude": 42.222244645,
- "longitude": -8.752692141,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:2030",
- "name": "Avda. de Madrid, 28",
- "latitude": 42.226744428,
- "longitude": -8.716268699,
- "lines": [
- "12A",
- "12B",
- "13",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:2040",
- "name": "Avda. de Madrid (trasera Colexio Hogar)",
- "latitude": 42.226835791,
- "longitude": -8.715823453,
- "lines": [
- "12A",
- "12B",
- "13"
- ]
- },
- {
- "stopId": "vitrasa:2060",
- "name": "Avda. de Redondela, 122",
- "latitude": 42.259945558,
- "longitude": -8.672608434,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:2070",
- "name": "Avda. de Redondela, 109",
- "latitude": 42.259481393,
- "longitude": -8.67292487,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:2080",
- "name": "Avda. de Redondela, 19",
- "latitude": 42.266569717,
- "longitude": -8.667160768,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:2090",
- "name": "Avda. de Redondela, 32",
- "latitude": 42.272074281,
- "longitude": -8.664593691,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:210",
- "name": "Rúa de Ángel de Lema, 140",
- "latitude": 42.255798748,
- "longitude": -8.678507526,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2100",
- "name": "Avda. de Redondela, 47",
- "latitude": 42.263186001,
- "longitude": -8.668939094,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:2110",
- "name": "Avda. de Redondela, 70",
- "latitude": 42.263286688,
- "longitude": -8.668985036,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:2130",
- "name": "Avda. de Redondela (Instituto)",
- "latitude": 42.266758811,
- "longitude": -8.667247828,
- "lines": [
- "C3d"
- ]
- },
- {
- "stopId": "vitrasa:2140",
- "name": "Avda. de Samil (Verbum)",
- "latitude": 42.21323221,
- "longitude": -8.774382415,
- "lines": [
- "C3i",
- "10",
- "15B",
- "15C",
- "TUR"
- ]
- },
- {
- "stopId": "vitrasa:2150",
- "name": "Avda. de Samil (fronte Praia da Fonte)",
- "latitude": 42.221416498,
- "longitude": -8.773724153,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:2160",
- "name": "Avda. de Samil, 15",
- "latitude": 42.215860796,
- "longitude": -8.774720144,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:2170",
- "name": "Avda. de Samil, 35",
- "latitude": 42.210171416,
- "longitude": -8.774585056,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2180",
- "name": "Avda. de Samil, 67",
- "latitude": 42.206809895,
- "longitude": -8.776206766,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2190",
- "name": "Avda. de Samil, 81",
- "latitude": 42.205147646,
- "longitude": -8.77674534,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:220",
- "name": "Rúa de Ángel de Lema, 163",
- "latitude": 42.252694363,
- "longitude": -8.68302903,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2200",
- "name": "Avda. de Santa Mariña, 110",
- "latitude": 42.22271748,
- "longitude": -8.656176614,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2210",
- "name": "Avda. de Santa Mariña, 137",
- "latitude": 42.222538699,
- "longitude": -8.656616496,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2220",
- "name": "Avda. de Santa Mariña, 17",
- "latitude": 42.220338634,
- "longitude": -8.668666271,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2230",
- "name": "Avda. de Santa Mariña, 52",
- "latitude": 42.222347963,
- "longitude": -8.662841482,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2240",
- "name": "Avda. de Santa Mariña, 77",
- "latitude": 42.222432209,
- "longitude": -8.662773458,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2250",
- "name": "Avda. de Santa Mariña (cruce Camiño do Narxo)",
- "latitude": 42.220826115,
- "longitude": -8.659651094,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2260",
- "name": "Avda. de Santa Mariña, 18",
- "latitude": 42.220504663,
- "longitude": -8.668053014,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2270",
- "name": "Avda. de Santa Mariña, 103",
- "latitude": 42.22113201,
- "longitude": -8.658591621,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:2280",
- "name": "Baixada á Laxe, 31",
- "latitude": 42.21650849,
- "longitude": -8.719175368,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:2290",
- "name": "Baixada á Laxe, 44",
- "latitude": 42.216415126,
- "longitude": -8.719355076,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:230",
- "name": "Rúa de Ángel de Lema, 14",
- "latitude": 42.248041601,
- "longitude": -8.691024475,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2300",
- "name": "Baixada á Ponte Nova, 13",
- "latitude": 42.22078735,
- "longitude": -8.722722261,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:2310",
- "name": "Baixada á Praia (fronte 187)",
- "latitude": 42.173398721,
- "longitude": -8.811050666,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:2320",
- "name": "Baixada á Praia, 121",
- "latitude": 42.172541892,
- "longitude": -8.809133287,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2330",
- "name": "Avda. de Ricardo Mella, 357",
- "latitude": 42.173316968,
- "longitude": -8.81100291,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2340",
- "name": "Baixada á Praia, 44",
- "latitude": 42.167981444,
- "longitude": -8.806504239,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:2350",
- "name": "Baixada á Praia, 74",
- "latitude": 42.169850316,
- "longitude": -8.808861828,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:2360",
- "name": "Baixada á Praia (Parque C.Cívico)",
- "latitude": 42.167825345,
- "longitude": -8.806386831,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2370",
- "name": "Baixada á Praia, 94",
- "latitude": 42.172705652,
- "longitude": -8.809114415,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:2380",
- "name": "Baixada á Praia, 101",
- "latitude": 42.169719111,
- "longitude": -8.808832324,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2390",
- "name": "Baixada á Salgueira, 49",
- "latitude": 42.224020371,
- "longitude": -8.716787891,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:240",
- "name": "Rúa de Ángel de Lema, 19",
- "latitude": 42.247513476,
- "longitude": -8.691874301,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2410",
- "name": "Baixada ao Río, 31",
- "latitude": 42.209020914,
- "longitude": -8.702331689,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2420",
- "name": "Rúa do Cacheno (Lavadero)",
- "latitude": 42.208468606,
- "longitude": -8.702143934,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2430",
- "name": "Rúa de Barcelona, Hospital Ribera Povisa",
- "latitude": 42.223280419,
- "longitude": -8.727469542,
- "lines": [
- "C1"
- ]
- },
- {
- "stopId": "vitrasa:2440",
- "name": "Rúa de Barcelona, 18",
- "latitude": 42.227184403,
- "longitude": -8.722366808,
- "lines": [
- "C1"
- ]
- },
- {
- "stopId": "vitrasa:2450",
- "name": "Rúa de Barcelona, 44",
- "latitude": 42.225283542,
- "longitude": -8.724362504,
- "lines": [
- "C1"
- ]
- },
- {
- "stopId": "vitrasa:2460",
- "name": "Rúa de Xeme, 59",
- "latitude": 42.203300943,
- "longitude": -8.696320858,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2490",
- "name": "Rúa das Coutadas, 57",
- "latitude": 42.194635725,
- "longitude": -8.699504032,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:250",
- "name": "Rúa de Ángel de Lema, 221",
- "latitude": 42.255252085,
- "longitude": -8.679480662,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2500",
- "name": "Rúa de Ramiro Pascual (Igrexa)",
- "latitude": 42.191950062,
- "longitude": -8.707193511,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:2510",
- "name": "Avda. de Castrelos, 439",
- "latitude": 42.191323803,
- "longitude": -8.721049887,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:2520",
- "name": "Estrada de Bembrive, 238",
- "latitude": 42.204563665,
- "longitude": -8.687025359,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2540",
- "name": "Bouzas (Rotonda de Las Anclas)",
- "latitude": 42.22513153,
- "longitude": -8.751597027,
- "lines": [
- "6",
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2550",
- "name": "Camiño da Brea, 10",
- "latitude": 42.204086577,
- "longitude": -8.704832445,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:2551",
- "name": "Camiño da Brea, 40",
- "latitude": 42.205779861,
- "longitude": -8.704885101,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:2560",
- "name": "Camiño da Brea, 37",
- "latitude": 42.204297185,
- "longitude": -8.704942415,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:2580",
- "name": "Camiño da Brea, 69",
- "latitude": 42.207235488,
- "longitude": -8.704631381,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:2590",
- "name": "Rúa da Cabalaría, 94",
- "latitude": 42.232442621,
- "longitude": -8.689558541,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:260",
- "name": "Rúa de Ángel de Lema, 91",
- "latitude": 42.250421216,
- "longitude": -8.685464716,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2600",
- "name": "Rúa da Cabalaría, 153",
- "latitude": 42.235437997,
- "longitude": -8.689019794,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2610",
- "name": "Rúa da Cabalaría, 14",
- "latitude": 42.233426101,
- "longitude": -8.693298639,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2620",
- "name": "Rúa da Cabalaría, 186",
- "latitude": 42.235420737,
- "longitude": -8.68894034,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2630",
- "name": "Rúa da Cabalaría (cruce Subida ao Rosal Florido)",
- "latitude": 42.233483693,
- "longitude": -8.693266452,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2640",
- "name": "Rúa da Cabalaría, 67",
- "latitude": 42.232559793,
- "longitude": -8.689848219,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:270",
- "name": "Rúa de Desiderio Pernas Arquitecto, 1",
- "latitude": 42.18920151,
- "longitude": -8.810340862,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2735",
- "name": "Rúa da Cachamuíña (Concello)",
- "latitude": 42.235033314,
- "longitude": -8.727202198,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:2740",
- "name": "Rúa do Cacheno, 75",
- "latitude": 42.207451401,
- "longitude": -8.701194432,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2750",
- "name": "Rúa do Cacheno, 28",
- "latitude": 42.20671834,
- "longitude": -8.699160127,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2760",
- "name": "Rúa do Cacheno, 66",
- "latitude": 42.208194443,
- "longitude": -8.701518979,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2770",
- "name": "Rúa do Cacheno, 49",
- "latitude": 42.20648703,
- "longitude": -8.698760561,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:2780",
- "name": "Avda. das Camelias, 135",
- "latitude": 42.222387178,
- "longitude": -8.731207698,
- "lines": [
- "4A",
- "4C",
- "5A",
- "5B",
- "11",
- "12A",
- "12B",
- "16",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:2790",
- "name": "Avda. das Camelias, 37",
- "latitude": 42.230566426,
- "longitude": -8.730086804,
- "lines": [
- "4A",
- "4C",
- "11",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:280",
- "name": "Rúa do Arquitecto Antonio Cominges, 38",
- "latitude": 42.189490674,
- "longitude": -8.808107114,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2800",
- "name": "Avda. das Camelias, 46",
- "latitude": 42.230291959,
- "longitude": -8.730279255,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:2810",
- "name": "Avda. das Camelias, 80",
- "latitude": 42.227601839,
- "longitude": -8.730236339,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:2820",
- "name": "Avda. das Camelias (Praza 8 de Marzo)",
- "latitude": 42.227403959,
- "longitude": -8.729948584,
- "lines": [
- "4A",
- "4C",
- "11",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:2830",
- "name": "Rúa de Camilo Veiga, 33",
- "latitude": 42.22243855,
- "longitude": -8.751978552,
- "lines": [
- "C3d",
- "13",
- "15B",
- "15C",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:2840",
- "name": "Rúa da Goleta, 3",
- "latitude": 42.241698248,
- "longitude": -8.665209215,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2850",
- "name": "Rúa da Goleta, 2",
- "latitude": 42.241676405,
- "longitude": -8.665026825,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:2870",
- "name": "Rúa de Cantabria (Compañía Suministradora de Auga)",
- "latitude": 42.237397409,
- "longitude": -8.694169154,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:2880",
- "name": "Rúa de Cantabria, 148",
- "latitude": 42.239331582,
- "longitude": -8.692983618,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:290",
- "name": "Rúa do Arquitecto Gómez Román, 37",
- "latitude": 42.190149471,
- "longitude": -8.803788225,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:2910",
- "name": "Rúa de Cantabria, 212",
- "latitude": 42.241655974,
- "longitude": -8.692827561,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:2920",
- "name": "Rúa de Cantabria, 45",
- "latitude": 42.235852081,
- "longitude": -8.695592417,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:2930",
- "name": "Rúa de Cantabria, 58",
- "latitude": 42.235377808,
- "longitude": -8.695695331,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:2950",
- "name": "Rúa dos Canteiros, 4",
- "latitude": 42.204307169,
- "longitude": -8.729719236,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:2960",
- "name": "Rúa dos Canteiros, 101",
- "latitude": 42.20073699,
- "longitude": -8.738895516,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:2970",
- "name": "Rúa dos Canteiros, 116",
- "latitude": 42.201317829,
- "longitude": -8.735636365,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:2980",
- "name": "Rúa dos Canteiros, 164",
- "latitude": 42.200758846,
- "longitude": -8.739043037,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:2990",
- "name": "Rúa dos Canteiros, 9",
- "latitude": 42.203792573,
- "longitude": -8.729630723,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:3000",
- "name": "Rúa dos Canteiros, 49",
- "latitude": 42.201188677,
- "longitude": -8.733208966,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:3010",
- "name": "Rúa dos Canteiros, 73",
- "latitude": 42.20121252,
- "longitude": -8.735711467,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:3020",
- "name": "Rúa dos Canteiros, 76",
- "latitude": 42.201218481,
- "longitude": -8.733509374,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:3030",
- "name": "Avda. de Castrelos, 458",
- "latitude": 42.194702579,
- "longitude": -8.721025195,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:3050",
- "name": "Estrada de Casás (cruce Camiño da Pedra Branca)",
- "latitude": 42.192360267,
- "longitude": -8.756680959,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3052",
- "name": "Avda. Arquitecto Antonio Palacios (cruce Rúa Ricardo Torres)",
- "latitude": 42.216966631,
- "longitude": -8.729813845,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3060",
- "name": "Rúa da Ceboleira, 30",
- "latitude": 42.224698049,
- "longitude": -8.701749123,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3070",
- "name": "Rúa da Ceboleira, 49",
- "latitude": 42.224816342,
- "longitude": -8.701565998,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3080",
- "name": "Avda. de Cesáreo Vázquez, 136",
- "latitude": 42.1873653089623,
- "longitude": -8.800886236766305,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3090",
- "name": "Avda. de Cesáreo Vázquez, 182",
- "latitude": 42.191019711713736,
- "longitude": -8.799628565094565,
- "lines": [
- "C3d",
- "10",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:310",
- "name": "Rúa do Arquitecto Antonio Cominges, 4",
- "latitude": 42.190850463,
- "longitude": -8.80358845,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3100",
- "name": "Avda. de Cesáreo Vázquez, 99",
- "latitude": 42.184766843,
- "longitude": -8.802180879,
- "lines": [
- "11",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:3110",
- "name": "Avda. de Cesáreo Vázquez, 74",
- "latitude": 42.184416675,
- "longitude": -8.802179713,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3120",
- "name": "Avda. de Cesáreo Vázquez, 141",
- "latitude": 42.187488521491225,
- "longitude": -8.801226626055183,
- "lines": [
- "11",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:3130",
- "name": "Avda. de Cesáreo Vázquez, 169",
- "latitude": 42.191024803868736,
- "longitude": -8.799397387002196,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3140",
- "name": "Estrada De Zamáns, 255",
- "latitude": 42.15800346,
- "longitude": -8.686134691,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:3150",
- "name": "Estrada de Zamáns (cruce Igrexa)",
- "latitude": 42.157661469,
- "longitude": -8.685973759,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:3160",
- "name": "Camiño da Falcoa, 10",
- "latitude": 42.206593246,
- "longitude": -8.721651793,
- "lines": [
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:3170",
- "name": "Rúa das Coutadas, 76",
- "latitude": 42.220968446,
- "longitude": -8.720400826,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:3180",
- "name": "Camiño de Quirós, 106",
- "latitude": 42.21955863,
- "longitude": -8.711410119,
- "lines": [
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:3190",
- "name": "Camiño de Quirós (cruce Rúa de Dona Cristina)",
- "latitude": 42.219681782,
- "longitude": -8.711385979,
- "lines": [
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:320",
- "name": "Rúa do Arquitecto Antonio Cominges, 70",
- "latitude": 42.189221331,
- "longitude": -8.811730246,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3230",
- "name": "Rúa de Colón, 27",
- "latitude": 42.236471452,
- "longitude": -8.720164905,
- "lines": [
- "16",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:3240",
- "name": "Rúa da Coruña, 5",
- "latitude": 42.22214729,
- "longitude": -8.734167916,
- "lines": [
- "A",
- "5A",
- "5B",
- "10",
- "11",
- "13",
- "N4",
- "H1",
- "H",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:3250",
- "name": "Rúa da Coruña, 26",
- "latitude": 42.222378625,
- "longitude": -8.734134247,
- "lines": [
- "C1",
- "A",
- "10",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:3260",
- "name": "Rúa da Coruña, 37",
- "latitude": 42.226287696,
- "longitude": -8.737475832,
- "lines": [
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:3270",
- "name": "Rúa da Coruña (fronte 39)",
- "latitude": 42.226490285,
- "longitude": -8.73744901,
- "lines": [
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:3280",
- "name": "Rúa de Manuel Lago Lago, 1",
- "latitude": 42.188898503,
- "longitude": -8.776299224,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3290",
- "name": "Rúa da Costa, 13",
- "latitude": 42.213397685,
- "longitude": -8.72248211,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:330",
- "name": "Rúa do Arquitecto Antonio Cominges, 90",
- "latitude": 42.187213169,
- "longitude": -8.813069201,
- "lines": [
- "C3d",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3300",
- "name": "Rúa da Costa, 22",
- "latitude": 42.211751348,
- "longitude": -8.721691531,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:3310",
- "name": "Rúa da Costa, 74",
- "latitude": 42.209233023,
- "longitude": -8.720666368,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:3320",
- "name": "Rúa da Costa, 63",
- "latitude": 42.210154848,
- "longitude": -8.720902403,
- "lines": [
- "A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:3350",
- "name": "Rúa do Couto, 1",
- "latitude": 42.230911796,
- "longitude": -8.722711253,
- "lines": [
- "7",
- "12A",
- "12B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:3360",
- "name": "Rúa do Doutor Canoa, 8",
- "latitude": 42.237803518,
- "longitude": -8.704409031,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:3370",
- "name": "Estrada de Bembrive (cruce Rúa Eifonso)",
- "latitude": 42.205676226,
- "longitude": -8.693112047,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3380",
- "name": "Cruce Eifonso",
- "latitude": 42.205623108,
- "longitude": -8.693239335,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3390",
- "name": "Estrada de Bembrive, 160",
- "latitude": 42.205296644,
- "longitude": -8.692558914,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:340",
- "name": "Rúa de Aragón, 116",
- "latitude": 42.238036494,
- "longitude": -8.700921187,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3400",
- "name": "Estrada da Gándara, 22",
- "latitude": 42.163584451,
- "longitude": -8.716088728,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:3420",
- "name": "Avda. de Castrelos (Cemiterio de Pereiró)",
- "latitude": 42.208071495,
- "longitude": -8.731366082,
- "lines": [
- "7",
- "12B",
- "17",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:3430",
- "name": "Avda. da Ponte, 86 (Cemiterio)",
- "latitude": 42.215621206,
- "longitude": -8.67221512,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:3450",
- "name": "Estrada de Camposancos, 155",
- "latitude": 42.194732286,
- "longitude": -8.769245322,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3460",
- "name": "Estrada de Camposancos, 19",
- "latitude": 42.203197031,
- "longitude": -8.753437723,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3470",
- "name": "Estrada de Camposancos, 214",
- "latitude": 42.193581709,
- "longitude": -8.772496159,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3480",
- "name": "Estrada de Camposancos, 141",
- "latitude": 42.196095467,
- "longitude": -8.766230519,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3490",
- "name": "Estrada de Camposancos, 171",
- "latitude": 42.193613504,
- "longitude": -8.772222574,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:350",
- "name": "Rúa de Aragón, 162",
- "latitude": 42.240488915,
- "longitude": -8.700357923,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3500",
- "name": "Estrada de Camposancos, 190",
- "latitude": 42.194553241,
- "longitude": -8.770325583,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3510",
- "name": "Estrada de Camposancos, 28",
- "latitude": 42.202849227,
- "longitude": -8.753870291,
- "lines": [
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:3520",
- "name": "Estrada de Camposancos, 75",
- "latitude": 42.200000035,
- "longitude": -8.759107913,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3530",
- "name": "Estrada de Camposancos, 88",
- "latitude": 42.199773285,
- "longitude": -8.759958845,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3540",
- "name": "Estrada de Camposancos, 138",
- "latitude": 42.19617384,
- "longitude": -8.766295392,
- "lines": [
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3550",
- "name": "Estrada de Bembrive (cruce Camiño Cova)",
- "latitude": 42.19747765,
- "longitude": -8.688158543,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3560",
- "name": "Estrada de Bembrive, 104",
- "latitude": 42.209126518,
- "longitude": -8.695599845,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3570",
- "name": "Estrada de Bembrive, 109",
- "latitude": 42.209576972,
- "longitude": -8.695580071,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3572",
- "name": "Estrada de Bembrive, 110",
- "latitude": 42.208457815,
- "longitude": -8.695017358,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3574",
- "name": "Estrada de Bembrive, 129",
- "latitude": 42.208533311,
- "longitude": -8.694987854,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3580",
- "name": "Estrada de Bembrive, 180",
- "latitude": 42.204440318,
- "longitude": -8.690871804,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3590",
- "name": "Estrada de Bembrive, 195",
- "latitude": 42.204458432,
- "longitude": -8.690765895,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:360",
- "name": "Rúa de Aragón, 193",
- "latitude": 42.24013184,
- "longitude": -8.700947033,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3600",
- "name": "Estrada de Bembrive, 22",
- "latitude": 42.21246424,
- "longitude": -8.697218847,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3610",
- "name": "Estrada de Bembrive, 237",
- "latitude": 42.204446407,
- "longitude": -8.68809021,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3620",
- "name": "Estrada de Bembrive, 278",
- "latitude": 42.202562995,
- "longitude": -8.685437577,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3630",
- "name": "Estrada de Bembrive, 269",
- "latitude": 42.20274418,
- "longitude": -8.684443742,
- "lines": [
- "6",
- "14"
- ]
- },
- {
- "stopId": "vitrasa:3640",
- "name": "Estrada de Bembrive, 315",
- "latitude": 42.197359418,
- "longitude": -8.688113004,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3650",
- "name": "Estrada de Bembrive, 346",
- "latitude": 42.199275919,
- "longitude": -8.689032944,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3660",
- "name": "Estrada de Bembrive, 39",
- "latitude": 42.212227656,
- "longitude": -8.697028614,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3670",
- "name": "Estrada de Bembrive, 398",
- "latitude": 42.194968863,
- "longitude": -8.689201981,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3680",
- "name": "Estrada de Bembrive, 64",
- "latitude": 42.211144971,
- "longitude": -8.69652789,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3690",
- "name": "Estrada de Bembrive, 73",
- "latitude": 42.210947345,
- "longitude": -8.69627482,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:370",
- "name": "Rúa de Aragón, 212",
- "latitude": 42.242101304,
- "longitude": -8.698394546,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3700",
- "name": "Estrada de Bembrive (cruce Camiño Riomao)",
- "latitude": 42.194055385,
- "longitude": -8.692079677,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3710",
- "name": "Estrada de Bembrive, 363",
- "latitude": 42.193846109,
- "longitude": -8.69200489,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3720",
- "name": "Estrada de Bembrive, 341",
- "latitude": 42.1948986,
- "longitude": -8.689213754,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3730",
- "name": "Estrada de Bembrive, 301",
- "latitude": 42.199203404,
- "longitude": -8.688880116,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3740",
- "name": "Rúa de Canido (Igrexa)",
- "latitude": 42.197431882,
- "longitude": -8.790144971,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3750",
- "name": "Rúa de Canido (Praia de Canido)",
- "latitude": 42.193128934,
- "longitude": -8.797957944,
- "lines": [
- "10",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3760",
- "name": "Rúa de Canido (fronte 119)",
- "latitude": 42.1957321,
- "longitude": -8.795211362,
- "lines": [
- "10",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3770",
- "name": "Rúa de Canido, 135",
- "latitude": 42.1950348,
- "longitude": -8.795701844,
- "lines": [
- "C3d",
- "10",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3780",
- "name": "Rúa de Canido, 217",
- "latitude": 42.193041793,
- "longitude": -8.797590453,
- "lines": [
- "C3d",
- "10",
- "11"
- ]
- },
- {
- "stopId": "vitrasa:3790",
- "name": "Rúa de Canido, 15",
- "latitude": 42.201898697,
- "longitude": -8.781706742,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:380",
- "name": "Rúa de Aragón, 221",
- "latitude": 42.242091376,
- "longitude": -8.698668131,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3800",
- "name": "Rúa de Canido, 26",
- "latitude": 42.199639519,
- "longitude": -8.785727373,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3810",
- "name": "Rúa de Canido, 55",
- "latitude": 42.200106486,
- "longitude": -8.785121194,
- "lines": [
- "C3d",
- "4C",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:3820",
- "name": "Rúa do Falcoído, 16",
- "latitude": 42.182659954,
- "longitude": -8.699663442,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3830",
- "name": "Rúa do Falcoído (cruce Camiño Goaldino)",
- "latitude": 42.180635405,
- "longitude": -8.696958243,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3840",
- "name": "Rúa do Falcoído (cruce Camiño das Presas)",
- "latitude": 42.181019011,
- "longitude": -8.696918009,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3850",
- "name": "Estrada Clara Campoamor (cruce Estrada Marcosende)",
- "latitude": 42.167933917,
- "longitude": -8.692758811,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3860",
- "name": "Estrada Clara Campoamor (cruce Rúa do Falcoído)",
- "latitude": 42.168248021,
- "longitude": -8.692608608,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3870",
- "name": "Rúa do Falcoído, 13",
- "latitude": 42.182749988,
- "longitude": -8.699953254,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:3880",
- "name": "Estrada da Coutada, 44",
- "latitude": 42.194829735,
- "longitude": -8.699040324,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3890",
- "name": "Estrada da Coutada, 39",
- "latitude": 42.193625246,
- "longitude": -8.7014263,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:390",
- "name": "Rúa de Aragón, 26",
- "latitude": 42.233174046,
- "longitude": -8.702380309,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:3900",
- "name": "Estrada da Coutada, 19",
- "latitude": 42.19232927,
- "longitude": -8.704749414,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:3910",
- "name": "Estrada da Coutada, 68",
- "latitude": 42.195404022,
- "longitude": -8.695794851,
- "lines": [
- "6"
- ]
- },
- {
- "stopId": "vitrasa:3920",
- "name": "Estrada da Coutada, 65",
- "latitude": 42.195725689,
- "longitude": -8.697154293,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:3930",
- "name": "Estrada da Coutada, 12",
- "latitude": 42.19287831,
- "longitude": -8.703506202,
- "lines": [
- "6",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:3940",
- "name": "Estrada de Casás, 83",
- "latitude": 42.196165214,
- "longitude": -8.759890011,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3950",
- "name": "Estrada de Casás (cruce Camiño do Rial)",
- "latitude": 42.196014193,
- "longitude": -8.759919516,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:3960",
- "name": "Baixada do Castelo",
- "latitude": 42.213984907,
- "longitude": -8.682160511,
- "lines": [
- "12A",
- "12B",
- "13",
- "15B",
- "15C",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:3970",
- "name": "Estrada Vella de Madrid, 190",
- "latitude": 42.215872123,
- "longitude": -8.679765298,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:3980",
- "name": "Estrada Vella de Madrid (cruce Hospital)",
- "latitude": 42.21620386,
- "longitude": -8.681570425,
- "lines": [
- "12A",
- "12B",
- "13",
- "15B",
- "15C",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:40",
- "name": "Rúa do Abade Juan de Bastos (cruce Baixada da Moo)",
- "latitude": 42.192126677,
- "longitude": -8.72901589,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:400",
- "name": "Rúa de Aragón, 91",
- "latitude": 42.235598195,
- "longitude": -8.701426538,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4000",
- "name": "Estrada de Fragoselo, 143",
- "latitude": 42.182434997,
- "longitude": -8.764713761,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4010",
- "name": "Estrada de Fragoselo, 170",
- "latitude": 42.184148566,
- "longitude": -8.767237312,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4020",
- "name": "Estrada de Fragoselo, 79",
- "latitude": 42.187056187,
- "longitude": -8.769605703,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4030",
- "name": "Estrada de Fragoselo, 111",
- "latitude": 42.184118753,
- "longitude": -8.767049558,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4040",
- "name": "Estrada de Fragoselo, 108",
- "latitude": 42.18661248,
- "longitude": -8.769574881,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4050",
- "name": "Estrada de Fragoselo, 196",
- "latitude": 42.182111026,
- "longitude": -8.76479691,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4060",
- "name": "Estrada da Gándara, 7",
- "latitude": 42.164326088,
- "longitude": -8.716892619,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4070",
- "name": "Estrada da Gándara, 55",
- "latitude": 42.162254659,
- "longitude": -8.713740793,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4080",
- "name": "Estrada da Gándara, 48",
- "latitude": 42.162252671,
- "longitude": -8.71400365,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4090",
- "name": "Estrada da Garrida, 124",
- "latitude": 42.170369621,
- "longitude": -8.708506123,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:410",
- "name": "Rúa de Aragón, 82",
- "latitude": 42.235524387,
- "longitude": -8.701248417,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4100",
- "name": "Estrada da Garrida, 199",
- "latitude": 42.16978602,
- "longitude": -8.708967287,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4110",
- "name": "Estrada da Garrida, 40",
- "latitude": 42.165331611,
- "longitude": -8.714862589,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4120",
- "name": "Estrada da Garrida, 84",
- "latitude": 42.166399713,
- "longitude": -8.711237684,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4130",
- "name": "Estrada da Garrida, 83",
- "latitude": 42.16561193,
- "longitude": -8.714589004,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4140",
- "name": "Estrada da Garrida (frente 80)",
- "latitude": 42.166208944,
- "longitude": -8.711992518,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4150",
- "name": "Estrada de Miraflores, 69",
- "latitude": 42.217620909,
- "longitude": -8.712429612,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4160",
- "name": "Estrada de Miraflores, 36",
- "latitude": 42.217849364,
- "longitude": -8.710994711,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4170",
- "name": "Estrada de Miraflores, 64",
- "latitude": 42.217345186,
- "longitude": -8.713011334,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:420",
- "name": "Rúa de Aragón, 147",
- "latitude": 42.238092485,
- "longitude": -8.701156245,
- "lines": [
- "4A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4200",
- "name": "Estrada de Moledo, 6",
- "latitude": 42.215236994,
- "longitude": -8.707384971,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4210",
- "name": "Estrada de Moledo, 42",
- "latitude": 42.212141078,
- "longitude": -8.704563545,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4220",
- "name": "Estrada de Moledo, 22",
- "latitude": 42.213737557,
- "longitude": -8.706283115,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4230",
- "name": "Estrada de Moledo, 1",
- "latitude": 42.215373761,
- "longitude": -8.707378349,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4240",
- "name": "Estrada de Moledo, 73",
- "latitude": 42.212378349,
- "longitude": -8.704729584,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4250",
- "name": "Estrada de Moledo, 25",
- "latitude": 42.213377597,
- "longitude": -8.70601168,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:4280",
- "name": "Rúa de Emilia Pardo Bazán, 80",
- "latitude": 42.224507337,
- "longitude": -8.713465538,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4290",
- "name": "Rúa de Emilia Pardo Bazán, 3",
- "latitude": 42.227785739,
- "longitude": -8.719460889,
- "lines": [
- "14",
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:430",
- "name": "Rúa do Areal (Aduana)",
- "latitude": 42.239341996,
- "longitude": -8.720234413,
- "lines": [
- "28"
- ]
- },
- {
- "stopId": "vitrasa:4300",
- "name": "Rúa de Emilia Pardo Bazán, 104",
- "latitude": 42.22278924,
- "longitude": -8.711754289,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4310",
- "name": "Rúa de Emilia Pardo Bazán, 111",
- "latitude": 42.222713762,
- "longitude": -8.711555806,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4320",
- "name": "Rúa de Emilia Pardo Bazán, 2",
- "latitude": 42.227716225,
- "longitude": -8.719750568,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4330",
- "name": "Rúa de Emilia Pardo Bazán (cruce Baixada á Salgueira)",
- "latitude": 42.226463146,
- "longitude": -8.71614062,
- "lines": [
- "14",
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4340",
- "name": "Rúa de Emilia Pardo Bazán, 54",
- "latitude": 42.226112503,
- "longitude": -8.715718376,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4350",
- "name": "Rúa de Emilia Pardo Bazán, 43",
- "latitude": 42.224562952,
- "longitude": -8.713390437,
- "lines": [
- "14",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:4440",
- "name": "Estrada de San Xoán, 169",
- "latitude": 42.183275038,
- "longitude": -8.742437444,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:4450",
- "name": "Estrada de San Xoán, 61",
- "latitude": 42.185081179,
- "longitude": -8.748029634,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:4460",
- "name": "Estrada de San Xoán, 141",
- "latitude": 42.18366712,
- "longitude": -8.744402777,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:4490",
- "name": "Rúa de Manuel Lago Lago (fronte Colexio)",
- "latitude": 42.187522648,
- "longitude": -8.772977937,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4500",
- "name": "Rúa de Manuel Lago Lago, 20",
- "latitude": 42.188761213,
- "longitude": -8.775973652,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4510",
- "name": "Rúa de Manuel Lago Lago (Colexio)",
- "latitude": 42.187542924,
- "longitude": -8.772887753,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:4520",
- "name": "Estrada das Plantas (Cidade Deportiva)",
- "latitude": 42.175884385,
- "longitude": -8.670789023,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:4530",
- "name": "Estrada das Plantas (fronte cruce Camiño do Pouso)",
- "latitude": 42.199681015,
- "longitude": -8.668860289,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:4540",
- "name": "Estrada das Plantas (fronte Viveiros)",
- "latitude": 42.181370416,
- "longitude": -8.667861084,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:4550",
- "name": "Estrada das Plantas (cruce Camiño do Pouso)",
- "latitude": 42.199945182,
- "longitude": -8.669085873,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:4560",
- "name": "Estrada de Valadares, 233",
- "latitude": 42.177017792,
- "longitude": -8.721519832,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4570",
- "name": "Estrada de Valadares, 100",
- "latitude": 42.183987864,
- "longitude": -8.724154939,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4580",
- "name": "Estrada de Valadares, 146",
- "latitude": 42.180249473,
- "longitude": -8.721850007,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4590",
- "name": "Estrada de Valadares, 173",
- "latitude": 42.180670846,
- "longitude": -8.721533506,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4600",
- "name": "Estrada de Valadares, 212",
- "latitude": 42.176419487,
- "longitude": -8.72197849,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4610",
- "name": "Estrada de Valadares, 262",
- "latitude": 42.172481228,
- "longitude": -8.723905842,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4620",
- "name": "Estrada de Valadares, 329",
- "latitude": 42.172330151,
- "longitude": -8.723766367,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4630",
- "name": "Estrada de Valadares, 406",
- "latitude": 42.165721529,
- "longitude": -8.720146278,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4640",
- "name": "Estrada de Valadares (cruce Camiño do Canizo)",
- "latitude": 42.18659932,
- "longitude": -8.719619913,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4650",
- "name": "Estrada de Valadares, 48",
- "latitude": 42.186641056,
- "longitude": -8.719853265,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4660",
- "name": "Estrada de Valadares, 99",
- "latitude": 42.183997801,
- "longitude": -8.723857214,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:4670",
- "name": "Estrada do Vao, 27",
- "latitude": 42.193836069,
- "longitude": -8.776441689,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4680",
- "name": "Estrada do Vao, 116",
- "latitude": 42.19429691,
- "longitude": -8.786574405,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4690",
- "name": "Estrada do Vao, 153",
- "latitude": 42.196307191,
- "longitude": -8.790777973,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4700",
- "name": "Estrada do Vao, 46",
- "latitude": 42.194014721,
- "longitude": -8.777055245,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4710",
- "name": "Estrada do Vao, 65",
- "latitude": 42.194064592,
- "longitude": -8.781224067,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4720",
- "name": "Estrada do Vao, 90",
- "latitude": 42.193937416,
- "longitude": -8.781634173,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4730",
- "name": "Estrada do Vao, 91",
- "latitude": 42.19405266,
- "longitude": -8.78551292,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4740",
- "name": "Estrada do Vao (Praia do Vao)",
- "latitude": 42.196595321,
- "longitude": -8.791019372,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:4750",
- "name": "Estrada Vella de Madrid, 6",
- "latitude": 42.213983883,
- "longitude": -8.697464269,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4760",
- "name": "Estrada Vella de Madrid, 34",
- "latitude": 42.216359908,
- "longitude": -8.693040769,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4770",
- "name": "Estrada Vella de Madrid, 104",
- "latitude": 42.219822923,
- "longitude": -8.684198247,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4780",
- "name": "Estrada Vella de Madrid, 136",
- "latitude": 42.220845201,
- "longitude": -8.680581909,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4790",
- "name": "Estrada Vella de Madrid, 123",
- "latitude": 42.220436017,
- "longitude": -8.683690589,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4800",
- "name": "Estrada Vella de Madrid, 160",
- "latitude": 42.218049288,
- "longitude": -8.679899408,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4810",
- "name": "Estrada Vella de Madrid, 177",
- "latitude": 42.21827574,
- "longitude": -8.679588272,
- "lines": [
- "12A",
- "12B",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4820",
- "name": "Estrada Vella de Madrid, 31",
- "latitude": 42.216687676,
- "longitude": -8.693917852,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4830",
- "name": "Estrada Vella de Madrid, 81",
- "latitude": 42.218719793,
- "longitude": -8.690012555,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4840",
- "name": "Estrada Vella de Madrid, 76",
- "latitude": 42.218745617,
- "longitude": -8.689009409,
- "lines": [
- "12A",
- "12B",
- "13",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4850",
- "name": "Estrada Vella de Madrid (frente Centro Comercial)",
- "latitude": 42.216448197,
- "longitude": -8.68163748,
- "lines": [
- "12A",
- "13",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:4860",
- "name": "Estrada da Venda (cruce Camiño da Coutadiña)",
- "latitude": 42.182744465,
- "longitude": -8.70286123,
- "lines": [
- "A",
- "6"
- ]
- },
- {
- "stopId": "vitrasa:4870",
- "name": "Estrada da Venda, 5",
- "latitude": 42.192029809,
- "longitude": -8.712623715,
- "lines": [
- "A",
- "27",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4880",
- "name": "Estrada da Venda, 240",
- "latitude": 42.188021902,
- "longitude": -8.711457595,
- "lines": [
- "A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4890",
- "name": "Estrada da Venda, 238",
- "latitude": 42.186610014,
- "longitude": -8.710023944,
- "lines": [
- "A",
- "6"
- ]
- },
- {
- "stopId": "vitrasa:4900",
- "name": "Estrada da Venda, 35",
- "latitude": 42.188304845,
- "longitude": -8.711474749,
- "lines": [
- "A",
- "27",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4910",
- "name": "Estrada da Venda, 4",
- "latitude": 42.19205763,
- "longitude": -8.712722956,
- "lines": [
- "A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:4920",
- "name": "Estrada da Venda, 49",
- "latitude": 42.186610342,
- "longitude": -8.709937804,
- "lines": [
- "A",
- "6"
- ]
- },
- {
- "stopId": "vitrasa:4930",
- "name": "Travesía da Devesa (Asociación Veciños)",
- "latitude": 42.246018558,
- "longitude": -8.669287042,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:4940",
- "name": "Camiño da Devesa (fronte 55)",
- "latitude": 42.245450719,
- "longitude": -8.672406783,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:4960",
- "name": "Rúa do Doutor Corbal, 135",
- "latitude": 42.256210875,
- "longitude": -8.696882723,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:4970",
- "name": "Rúa do Doutor Corbal, 126",
- "latitude": 42.255883312,
- "longitude": -8.696812986,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:4980",
- "name": "Rúa do Doutor Corbal, 149",
- "latitude": 42.257539061,
- "longitude": -8.697019814,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:50",
- "name": "Rúa do Abade Juan de Bastos, 24",
- "latitude": 42.19287042,
- "longitude": -8.727513924,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:5000",
- "name": "Rúa do Doutor Corbal, 6",
- "latitude": 42.250121395,
- "longitude": -8.696122376,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:5010",
- "name": "Rúa do Doutor Corbal, 95",
- "latitude": 42.254169539,
- "longitude": -8.697752273,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:5020",
- "name": "Rúa do Doutor Corbal, 94",
- "latitude": 42.254104511,
- "longitude": -8.697655199,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:5030",
- "name": "Avda. de Redondela (fronte 28)",
- "latitude": 42.272502528,
- "longitude": -8.664787252,
- "lines": [
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:5040",
- "name": "Rúa da Salgueira Entrada, 5",
- "latitude": 42.222543586,
- "longitude": -8.717809812,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:5060",
- "name": "Estadio de Balaídos (Avda. do Fragoso)",
- "latitude": 42.212676247,
- "longitude": -8.739585545,
- "lines": [
- "16",
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:5070",
- "name": "Rúa da Estrada, 10-12",
- "latitude": 42.220535836,
- "longitude": -8.74141599,
- "lines": [
- "C3i",
- "5B"
- ]
- },
- {
- "stopId": "vitrasa:5090",
- "name": "Rúa da Estrada, 1",
- "latitude": 42.220359068,
- "longitude": -8.738861999,
- "lines": [
- "C3i",
- "5B"
- ]
- },
- {
- "stopId": "vitrasa:5120",
- "name": "Camiño da Falcoa, 41",
- "latitude": 42.204935234,
- "longitude": -8.722453969,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5140",
- "name": "Camiño da Falcoa, 15",
- "latitude": 42.207336295,
- "longitude": -8.72129506,
- "lines": [
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:5160",
- "name": "Camiño da Falcoa, 26",
- "latitude": 42.204783634,
- "longitude": -8.722664062,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5170",
- "name": "Rúa das Figueiras (Praza da Feira)",
- "latitude": 42.227529644,
- "longitude": -8.66169041,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5180",
- "name": "Rúa das Figueiras, 96",
- "latitude": 42.224562288,
- "longitude": -8.66579419,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5190",
- "name": "Rúa das Figueiras, 124",
- "latitude": 42.226051942,
- "longitude": -8.663629647,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5200",
- "name": "Rúa das Figueiras, 138",
- "latitude": 42.227533616,
- "longitude": -8.661561664,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5220",
- "name": "Rúa das Figueiras, 190",
- "latitude": 42.228984217,
- "longitude": -8.658438326,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5230",
- "name": "Rúa das Figueiras, 254",
- "latitude": 42.230261894,
- "longitude": -8.653683012,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5250",
- "name": "Rúa das Figueiras, 29",
- "latitude": 42.223048763,
- "longitude": -8.667374011,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5260",
- "name": "Rúa das Figueiras, 22",
- "latitude": 42.222838218,
- "longitude": -8.667795118,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5270",
- "name": "Rúa das Figueiras, 65",
- "latitude": 42.224367639,
- "longitude": -8.665989991,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5280",
- "name": "Rúa das Figueiras, 113",
- "latitude": 42.225940716,
- "longitude": -8.663830813,
- "lines": [
- "15A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:5290",
- "name": "Avda. da Florida, 60",
- "latitude": 42.215060936,
- "longitude": -8.741309568,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:530",
- "name": "Avda. de Ricardo Mella (Estación Coruxo)",
- "latitude": 42.193562859,
- "longitude": -8.78173994,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:5300",
- "name": "Avda. da Florida, 117",
- "latitude": 42.214827343,
- "longitude": -8.741319027,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:5310",
- "name": "Avda. da Florida, 140",
- "latitude": 42.208024308,
- "longitude": -8.750412985,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5320",
- "name": "Avda. da Florida, 145",
- "latitude": 42.213244058,
- "longitude": -8.743657913,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:5330",
- "name": "Avda. da Florida, 3",
- "latitude": 42.220228436,
- "longitude": -8.733426296,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:5340",
- "name": "Avda. da Florida, 197",
- "latitude": 42.208621114,
- "longitude": -8.749572184,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:5350",
- "name": "Avda. da Florida, 40",
- "latitude": 42.216779248,
- "longitude": -8.738705143,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5360",
- "name": "Avda. da Florida, 70",
- "latitude": 42.212804215,
- "longitude": -8.744506761,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5370",
- "name": "Avda. da Florida, 69",
- "latitude": 42.216928527,
- "longitude": -8.738268035,
- "lines": [
- "5A",
- "11",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:5380",
- "name": "Avda. da Florida, 8",
- "latitude": 42.219743053,
- "longitude": -8.734322187,
- "lines": [
- "5A",
- "11",
- "29",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5390",
- "name": "Estrada de Fragoselo (cruce Camiño Río da Barxa)",
- "latitude": 42.179556959,
- "longitude": -8.761854527,
- "lines": [
- "29"
- ]
- },
- {
- "stopId": "vitrasa:540",
- "name": "Avda. de Ricardo Mella (fronte 223)",
- "latitude": 42.189424424,
- "longitude": -8.790733064,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:5400",
- "name": "Avda. do Fragoso, 95",
- "latitude": 42.213518168,
- "longitude": -8.737719785,
- "lines": [
- "7",
- "12B",
- "17",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:5410",
- "name": "Avda. do Fragoso, 12",
- "latitude": 42.219689698,
- "longitude": -8.733384686,
- "lines": [
- "A",
- "16",
- "23",
- "N4",
- "H1",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:5420",
- "name": "Avda. do Fragoso, 3",
- "latitude": 42.220297406,
- "longitude": -8.732924981,
- "lines": [
- "7",
- "12B",
- "17",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:5430",
- "name": "Avda. do Fragoso, 36",
- "latitude": 42.217381871,
- "longitude": -8.734669814,
- "lines": [
- "A",
- "16",
- "23",
- "N4",
- "H1",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:5440",
- "name": "Avda. do Fragoso, 47",
- "latitude": 42.217288508,
- "longitude": -8.73454375,
- "lines": [
- "7",
- "12B",
- "17",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:5450",
- "name": "Avda. do Fragoso, 54",
- "latitude": 42.215348678,
- "longitude": -8.736273638,
- "lines": [
- "A",
- "16",
- "23",
- "N4",
- "H1",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:5460",
- "name": "Avda. do Fragoso, 71",
- "latitude": 42.215301002,
- "longitude": -8.736123434,
- "lines": [
- "7",
- "12B",
- "17",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:5470",
- "name": "Avda. do Fragoso, 86",
- "latitude": 42.21315264,
- "longitude": -8.738470803,
- "lines": [
- "A",
- "16",
- "23",
- "N4",
- "H1",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:5480",
- "name": "Estrada de San Xoán, 25",
- "latitude": 42.186179757,
- "longitude": -8.748888329,
- "lines": [
- "17"
- ]
- },
- {
- "stopId": "vitrasa:5490",
- "name": "Avda. de García Barbón (fronte 120)",
- "latitude": 42.241557555,
- "longitude": -8.707094861,
- "lines": [
- "C3i",
- "5B",
- "10",
- "17",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5500",
- "name": "Avda. de García Barbón, 126",
- "latitude": 42.24178025,
- "longitude": -8.706720936,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:5510",
- "name": "Avda. de García Barbón, 127",
- "latitude": 42.238290358,
- "longitude": -8.71014103,
- "lines": [
- "C3i",
- "5B",
- "10",
- "17",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5520",
- "name": "FORA DE SERVIZO.G.B.",
- "latitude": 42.237485586,
- "longitude": -8.719397801,
- "lines": [
- "C3i",
- "A",
- "4A",
- "4C",
- "5A",
- "5B",
- "6",
- "7",
- "9B",
- "10",
- "11",
- "12B",
- "14",
- "15B",
- "15C",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "24",
- "28",
- "N1",
- "N4",
- "PSA 4",
- "VTS"
- ],
- "amenities": [
- "shelter",
- "display"
- ]
- },
- {
- "stopId": "vitrasa:5530",
- "name": "Avda. de García Barbón, 18",
- "latitude": 42.23720456,
- "longitude": -8.718680736,
- "lines": [
- "C3d",
- "17",
- "H2"
- ],
- "amenities": [
- "shelter",
- "display"
- ]
- },
- {
- "stopId": "vitrasa:5540",
- "name": "Avda. de García Barbón, 28",
- "latitude": 42.236759685,
- "longitude": -8.716384581,
- "lines": [
- "C3d",
- "A",
- "5B",
- "16",
- "17",
- "24",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5560",
- "name": "Avda. de García Barbón, 60",
- "latitude": 42.236896919,
- "longitude": -8.712902905,
- "lines": [
- "C3d",
- "A",
- "5B",
- "10",
- "16",
- "17",
- "24",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5570",
- "name": "Avda. de García Barbón, 87",
- "latitude": 42.237003397,
- "longitude": -8.713586994,
- "lines": [
- "C3i",
- "5B",
- "10",
- "17",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5580",
- "name": "Avda. de García Barbón, 90",
- "latitude": 42.238267348,
- "longitude": -8.709873166,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5590",
- "name": "Avda. da Ponte (Grupo S. Gorxal)",
- "latitude": 42.213057463,
- "longitude": -8.670479203,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:560",
- "name": "Avda. de Ricardo Mella, 518",
- "latitude": 42.181015915,
- "longitude": -8.807696921,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:5600",
- "name": "Avda. da Gran Vía, 107",
- "latitude": 42.225140059,
- "longitude": -8.72184818,
- "lines": [
- "C3i",
- "7",
- "11",
- "13",
- "15A",
- "16",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5610",
- "name": "Avda. da Gran Vía, 12",
- "latitude": 42.233503531,
- "longitude": -8.717236739,
- "lines": [
- "C1",
- "4A",
- "4C",
- "5B",
- "7",
- "12B",
- "14",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:5620",
- "name": "Avda. da Gran Vía, 148",
- "latitude": 42.222321607,
- "longitude": -8.726440421,
- "lines": [
- "C3d",
- "13",
- "15A",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5630",
- "name": "Avda. da Gran Vía, 147",
- "latitude": 42.222790356,
- "longitude": -8.724940076,
- "lines": [
- "C3i",
- "7",
- "11",
- "13",
- "15A",
- "16",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5640",
- "name": "Avda. da Gran Vía, 176",
- "latitude": 42.220868033,
- "longitude": -8.730264447,
- "lines": [
- "C3d",
- "13",
- "15A",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5650",
- "name": "Avda. da Gran Vía, 185",
- "latitude": 42.220971136,
- "longitude": -8.729196245,
- "lines": [
- "C3i",
- "7",
- "11",
- "13",
- "15A",
- "16",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5660",
- "name": "Avda. da Gran Vía, 19",
- "latitude": 42.232957918,
- "longitude": -8.717215735,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "11",
- "12B",
- "14",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:5670",
- "name": "Avda. da Gran Vía, 46",
- "latitude": 42.230988893,
- "longitude": -8.71867283,
- "lines": [
- "C1",
- "12A",
- "12B",
- "14",
- "18A",
- "18B",
- "18H",
- "TUR"
- ]
- },
- {
- "stopId": "vitrasa:5680",
- "name": "Avda. da Gran Vía, 66",
- "latitude": 42.228173802,
- "longitude": -8.720267623,
- "lines": [
- "C3d",
- "13",
- "15A",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5690",
- "name": "Avda. da Gran Vía, 85",
- "latitude": 42.226868266,
- "longitude": -8.720637433,
- "lines": [
- "C3i",
- "7",
- "11",
- "13",
- "15A",
- "16",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:570",
- "name": "Avda. de Ricardo Mella, 250",
- "latitude": 42.195225102,
- "longitude": -8.775226375,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:5700",
- "name": "Avda. da Gran Vía, 104",
- "latitude": 42.225325884,
- "longitude": -8.722106624,
- "lines": [
- "C3d",
- "13",
- "15A",
- "23",
- "29",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5710",
- "name": "Avda. do Alcalde Gregorio Espino, 22",
- "latitude": 42.23003666347398,
- "longitude": -8.707266671978003,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:572",
- "name": "Estrada de Madrid, 210",
- "latitude": 42.214058797,
- "longitude": -8.672946954,
- "lines": [
- "12B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:5720",
- "name": "Avda. do Alcalde Gregorio Espino, 33",
- "latitude": 42.23004933454558,
- "longitude": -8.706947409683313,
- "lines": [
- "4C",
- "23",
- "31",
- "H2",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:5730",
- "name": "Avda. do Alcalde Gregorio Espino, 44",
- "latitude": 42.227850036119314,
- "longitude": -8.708105429626789,
- "lines": [
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:5740",
- "name": "Avda. do Alcalde Gregorio Espino, 57",
- "latitude": 42.22783722597372,
- "longitude": -8.707849091551859,
- "lines": [
- "4C",
- "23",
- "31",
- "N4",
- "H2",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5750",
- "name": "Avda. do Alcalde Gregorio Espino, 79",
- "latitude": 42.225785485,
- "longitude": -8.708786105,
- "lines": [
- "4C",
- "23",
- "31",
- "N4",
- "H2",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5760",
- "name": "Estrada de Valadares, 377",
- "latitude": 42.16929549,
- "longitude": -8.723249687,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:5770",
- "name": "Estrada de Valadares, 310",
- "latitude": 42.16911061,
- "longitude": -8.723904146,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:5790",
- "name": "Hospital do Meixoeiro",
- "latitude": 42.214534062,
- "longitude": -8.684756053,
- "lines": [
- "12A",
- "12B",
- "13",
- "15B",
- "15C",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:580",
- "name": "Avda. de Ricardo Mella, 135",
- "latitude": 42.195766012,
- "longitude": -8.773648966,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:5800",
- "name": "Rúa de Jenaro de la Fuente, 29",
- "latitude": 42.232202275,
- "longitude": -8.703792246,
- "lines": [
- "A",
- "4A",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "24",
- "25",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:5810",
- "name": "Rúa de Jenaro de la Fuente, 10",
- "latitude": 42.232258514,
- "longitude": -8.705770621,
- "lines": [
- "A",
- "4A",
- "4C",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "23",
- "24",
- "25",
- "27",
- "28",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:5820",
- "name": "Rúa de Jenaro de la Fuente, 22",
- "latitude": 42.232042043,
- "longitude": -8.703616807,
- "lines": [
- "A",
- "4A",
- "4C",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "23",
- "24",
- "25",
- "27",
- "28",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:5830",
- "name": "Rúa de Jenaro de la Fuente, 11",
- "latitude": 42.23238699,
- "longitude": -8.705610784,
- "lines": [
- "A",
- "4A",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "24",
- "25",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:5840",
- "name": "Rúa da Lagoa (cruce Rúa do Balde)",
- "latitude": 42.201360896,
- "longitude": -8.702877394,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:5850",
- "name": "Rúa da Lagoa (fronte 21)",
- "latitude": 42.201154253,
- "longitude": -8.702343635,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:5860",
- "name": "Baixada á Laxe (Centro Saúde)",
- "latitude": 42.21669522,
- "longitude": -8.715884298,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:5870",
- "name": "Rúa de López Mora, 10",
- "latitude": 42.226432697,
- "longitude": -8.731262013,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5880",
- "name": "Rúa de López Mora, 19",
- "latitude": 42.226800566,
- "longitude": -8.731799623,
- "lines": [
- "5A",
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:5890",
- "name": "Rúa de López Mora, 84",
- "latitude": 42.222420533,
- "longitude": -8.731996938,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:5900",
- "name": "Rúa de Macal, 8",
- "latitude": 42.202071034,
- "longitude": -8.723541884,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5910",
- "name": "Rúa de Macal, 90",
- "latitude": 42.196213336,
- "longitude": -8.721136467,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5920",
- "name": "Rúa de Macal (cruce Rúa de Ramiro Pascual)",
- "latitude": 42.196173594,
- "longitude": -8.721023814,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5930",
- "name": "Rúa de Macal (frente 8)",
- "latitude": 42.202050775,
- "longitude": -8.723454133,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5940",
- "name": "Rúa de Macal, 39",
- "latitude": 42.198347336,
- "longitude": -8.721488003,
- "lines": [
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5950",
- "name": "Rúa dos Mestres Goldar, 62",
- "latitude": 42.207127325,
- "longitude": -8.726636888,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5960",
- "name": "Rúa dos Mestres Goldar, 77",
- "latitude": 42.206757786,
- "longitude": -8.730056705,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5970",
- "name": "Rúa dos Mestres Goldar, 96",
- "latitude": 42.206880283,
- "longitude": -8.729978952,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:5980",
- "name": "Rúa dos Mestres Goldar, 37",
- "latitude": 42.207198849,
- "longitude": -8.726658346,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:600",
- "name": "Avda. de Ricardo Mella, 273",
- "latitude": 42.189927171,
- "longitude": -8.800634184,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6000",
- "name": "Rúa de Manuel Álvarez, 185",
- "latitude": 42.220887532,
- "longitude": -8.685059571,
- "lines": [
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6010",
- "name": "Rúa de Manuel Álvarez (cruce Camiño Sulevada)",
- "latitude": 42.223077231,
- "longitude": -8.675499751,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6020",
- "name": "Rúa de Manuel Álvarez, 58",
- "latitude": 42.223195307,
- "longitude": -8.681872932,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6030",
- "name": "Rúa de Manuel Álvarez, 102",
- "latitude": 42.220829925,
- "longitude": -8.685158812,
- "lines": [
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6040",
- "name": "Rúa de Manuel Álvarez (fronte cruce Camiño Sulevada)",
- "latitude": 42.22320325,
- "longitude": -8.675213007,
- "lines": [
- "25",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6050",
- "name": "Rúa de Manuel Cominges, 22",
- "latitude": 42.19890849,
- "longitude": -8.73623433,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:6060",
- "name": "Rúa de Manuel Cominges, 135",
- "latitude": 42.196716802,
- "longitude": -8.729966982,
- "lines": [
- "12B"
- ]
- },
- {
- "stopId": "vitrasa:6070",
- "name": "Rúa de Manuel Cominges, 15",
- "latitude": 42.199197066,
- "longitude": -8.736588816,
- "lines": [
- "12B"
- ]
- },
- {
- "stopId": "vitrasa:6080",
- "name": "Rúa de Manuel Cominges, 64",
- "latitude": 42.197736144,
- "longitude": -8.732267294,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:6090",
- "name": "Rúa de Manuel Cominges, 77",
- "latitude": 42.197626151,
- "longitude": -8.732546841,
- "lines": [
- "12B"
- ]
- },
- {
- "stopId": "vitrasa:6100",
- "name": "Rúa de Manuel Cominges, 80",
- "latitude": 42.197066521,
- "longitude": -8.730468609,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:6110",
- "name": "Camiño da Devesa, 6",
- "latitude": 42.243941636,
- "longitude": -8.669169025,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:6130",
- "name": "Estrada do Marco, 105",
- "latitude": 42.207132591,
- "longitude": -8.706967295,
- "lines": [
- "18B",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6140",
- "name": "Estrada do Marco (Colexio)",
- "latitude": 42.206925967,
- "longitude": -8.707050443,
- "lines": [
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:6150",
- "name": "Estrada De Zamáns, 233",
- "latitude": 42.160616846,
- "longitude": -8.691088401,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:6160",
- "name": "Estrada De Zamáns, 150",
- "latitude": 42.160635942,
- "longitude": -8.69145083,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:6180",
- "name": "Rúa de Marín (fronte 30)",
- "latitude": 42.21850454,
- "longitude": -8.753892634,
- "lines": [
- "C3i",
- "5B"
- ]
- },
- {
- "stopId": "vitrasa:6187",
- "name": "Rúa de Martín Echegaray (Parque)",
- "latitude": 42.215244712,
- "longitude": -8.74244225,
- "lines": [
- "23",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:620",
- "name": "Avda. de Ricado Mella, 165",
- "latitude": 42.1935678,
- "longitude": -8.781529566,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6200",
- "name": "Avda. de E. Martínez Garrido, 11",
- "latitude": 42.229298043,
- "longitude": -8.699760249,
- "lines": [
- "6",
- "25",
- "31"
- ]
- },
- {
- "stopId": "vitrasa:6210",
- "name": "Avda. de E. Martínez Garrido, 16",
- "latitude": 42.229259529,
- "longitude": -8.699964485,
- "lines": [
- "4C",
- "6",
- "23",
- "25",
- "31",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6220",
- "name": "Avda. de E. Martínez Garrido, 45",
- "latitude": 42.226116269,
- "longitude": -8.703346362,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:6230",
- "name": "Avda. de E. Martínez Garrido, 69",
- "latitude": 42.224839145,
- "longitude": -8.706082215,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:6240",
- "name": "Avda. de E. Martínez Garrido, 77",
- "latitude": 42.224493844,
- "longitude": -8.707734948,
- "lines": [
- "31"
- ]
- },
- {
- "stopId": "vitrasa:6250",
- "name": "Avda. de E. Martínez Garrido, 80",
- "latitude": 42.22667463,
- "longitude": -8.702581423,
- "lines": [
- "4C",
- "23",
- "31",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6260",
- "name": "Estrada da Balsa, 3",
- "latitude": 42.199568643,
- "longitude": -8.741030554,
- "lines": [
- "12B",
- "17"
- ]
- },
- {
- "stopId": "vitrasa:6280",
- "name": "Rúa Molais (Parque da Grileira)",
- "latitude": 42.223843943,
- "longitude": -8.65334865,
- "lines": [
- "11"
- ]
- },
- {
- "stopId": "vitrasa:6290",
- "name": "Rúa de San Paio (cruce Rúa Muíños)",
- "latitude": 42.202031781,
- "longitude": -8.769502424,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:630",
- "name": "Avda. de Ricardo Mella, 223",
- "latitude": 42.189304527,
- "longitude": -8.79068363,
- "lines": [
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6300",
- "name": "Rúa de Cánovas del Castillo (Centro Comercial)",
- "latitude": 42.240129541,
- "longitude": -8.727159759,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "6",
- "9B",
- "10",
- "11",
- "15B",
- "15C",
- "28",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6305",
- "name": "O Castro",
- "latitude": 42.230800582,
- "longitude": -8.725954962,
- "lines": [
- "TUR"
- ]
- },
- {
- "stopId": "vitrasa:6360",
- "name": "Rúa de Pablo Iglesias (Colexio)",
- "latitude": 42.211426266,
- "longitude": -8.743166543,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:6370",
- "name": "Rúa de Pablo Iglesias (Río)",
- "latitude": 42.210130966,
- "longitude": -8.744872428,
- "lines": [
- "16"
- ]
- },
- {
- "stopId": "vitrasa:6380",
- "name": "Rúa de Pablo Iglesias, 2",
- "latitude": 42.211811672,
- "longitude": -8.742420889,
- "lines": [
- "16",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6390",
- "name": "Rúa de Pablo Iglesias, 20",
- "latitude": 42.210204472,
- "longitude": -8.74559126,
- "lines": [
- "16",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6415",
- "name": "Parque de Castrelos (Museo)",
- "latitude": 42.213852214,
- "longitude": -8.727322863,
- "lines": [
- "TUR"
- ]
- },
- {
- "stopId": "vitrasa:6420",
- "name": "Paseo de Alfonso XII (Mirador)",
- "latitude": 42.235988269,
- "longitude": -8.728520618,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6440",
- "name": "Camiño do Pino Manso, 6",
- "latitude": 42.222951208,
- "longitude": -8.635051581,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6450",
- "name": "Praza de Suárez Llanos",
- "latitude": 42.224306065,
- "longitude": -8.753090783,
- "lines": [
- "C3d",
- "C3i",
- "13",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:6460",
- "name": "Rúa dos Pescadores, 10",
- "latitude": 42.224853579,
- "longitude": -8.752608542,
- "lines": [
- "C3d",
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:6470",
- "name": "Rúa de Pi i Margall, 108",
- "latitude": 42.228458938,
- "longitude": -8.732202674,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6480",
- "name": "Rúa de Pi i Margall, 137",
- "latitude": 42.229149188,
- "longitude": -8.731886908,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6490",
- "name": "Rúa de Pi i Margall, 32",
- "latitude": 42.233972514,
- "longitude": -8.729963004,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:650",
- "name": "Avda. de Ricardo Mella, 289",
- "latitude": 42.181065441,
- "longitude": -8.807509871,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6500",
- "name": "Rúa de Pi i Margall, 51",
- "latitude": 42.233690068,
- "longitude": -8.730100174,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6510",
- "name": "Rúa de Pi i Margall, 86",
- "latitude": 42.230584487,
- "longitude": -8.731459155,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6520",
- "name": "Rúa de Pi i Margall, 95",
- "latitude": 42.232285981,
- "longitude": -8.730816324,
- "lines": [
- "5B",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:6530",
- "name": "Rúa do Pintor Laxeiro, 4",
- "latitude": 42.222480852,
- "longitude": -8.729812967,
- "lines": [
- "C1"
- ]
- },
- {
- "stopId": "vitrasa:6550",
- "name": "Rúa de Pizarro, 10",
- "latitude": 42.229886416,
- "longitude": -8.717463365,
- "lines": [
- "C3i",
- "6",
- "11",
- "15A",
- "23",
- "25",
- "28",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:6560",
- "name": "Rúa de Pizarro, 34",
- "latitude": 42.23113801,
- "longitude": -8.711696824,
- "lines": [
- "C3i",
- "6",
- "11",
- "15A",
- "23",
- "25",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:6570",
- "name": "Rúa de Pizarro, 65",
- "latitude": 42.231357755,
- "longitude": -8.71296778,
- "lines": [
- "C3d",
- "6",
- "15A",
- "23",
- "25",
- "27",
- "28",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:6580",
- "name": "Rúa de Pizarro, 7",
- "latitude": 42.229860487,
- "longitude": -8.717979137,
- "lines": [
- "C3d",
- "6",
- "15A",
- "23",
- "25",
- "27",
- "28",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:660",
- "name": "Avda. do Alcalde Portanet, 34",
- "latitude": 42.211494566,
- "longitude": -8.736022397,
- "lines": [
- "7",
- "12B",
- "17",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6620",
- "name": "Rúa de Policarpo Sanz, 40",
- "latitude": 42.23757846151978,
- "longitude": -8.721031378896738,
- "lines": [
- "28"
- ],
- "amenities": [
- "shelter",
- "display"
- ]
- },
- {
- "stopId": "vitrasa:6640",
- "name": "Rúa do Porriño (fronte Instituto)",
- "latitude": 42.215506175,
- "longitude": -8.753186569,
- "lines": [
- "C3d",
- "C3i",
- "4A",
- "4C",
- "15A",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:6650",
- "name": "Rúa do Porriño (Instituto)",
- "latitude": 42.215554055,
- "longitude": -8.753042462,
- "lines": [
- "C3d",
- "C3i",
- "5B",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:6660",
- "name": "Praza da Porta do Sol",
- "latitude": 42.237915293,
- "longitude": -8.724846587,
- "lines": [
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6670",
- "name": "Estrada da Venda, 109",
- "latitude": 42.183004832,
- "longitude": -8.702601056,
- "lines": [
- "A",
- "6"
- ]
- },
- {
- "stopId": "vitrasa:6680",
- "name": "Rúa do Portoloureiro, 26",
- "latitude": 42.207311837,
- "longitude": -8.718650635,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6690",
- "name": "Rúa do Portoloureiro, 52",
- "latitude": 42.20495956,
- "longitude": -8.715695557,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6700",
- "name": "Rúa do Portoloureiro, 43",
- "latitude": 42.204947406,
- "longitude": -8.715589643,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6720",
- "name": "Rúa do Portoloureiro (fronte 28)",
- "latitude": 42.207385347,
- "longitude": -8.718127604,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6730",
- "name": "Rúa do Couto, 29",
- "latitude": 42.199386411,
- "longitude": -8.695417016,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:6740",
- "name": "Rúa da Vista do Mar, 95",
- "latitude": 42.242957479,
- "longitude": -8.691167762,
- "lines": [
- "4A",
- "24"
- ]
- },
- {
- "stopId": "vitrasa:6750",
- "name": "Avda. de Samil (Praia da Fonte)",
- "latitude": 42.221783554,
- "longitude": -8.773517669,
- "lines": [
- "10",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:6760",
- "name": "Rúa de Canido (Praia da Calzoa)",
- "latitude": 42.201847037,
- "longitude": -8.782205633,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:6780",
- "name": "Avda. de Samil (Dunas)",
- "latitude": 42.210256843,
- "longitude": -8.774740625,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:6790",
- "name": "Avda. de Samil (fronte Hotel)",
- "latitude": 42.214773038,
- "longitude": -8.774765933,
- "lines": [
- "C3d",
- "10",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:680",
- "name": "Avda. do Aeroporto (Aeroclub)",
- "latitude": 42.229005723,
- "longitude": -8.634356866,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:6800",
- "name": "Avda. de Samil, 26",
- "latitude": 42.215578848,
- "longitude": -8.774885538,
- "lines": [
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:6810",
- "name": "Avda. de Samil (Parking)",
- "latitude": 42.207405928,
- "longitude": -8.776153122,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:6820",
- "name": "Avda. de Samil (Polideportivo)",
- "latitude": 42.20362713,
- "longitude": -8.777027535,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:6830",
- "name": "Praia do Vao",
- "latitude": 42.197495083,
- "longitude": -8.790235556,
- "lines": [
- "10"
- ]
- },
- {
- "stopId": "vitrasa:6860",
- "name": "Praza de Compostela",
- "latitude": 42.239118346,
- "longitude": -8.722531274,
- "lines": [
- "C3i",
- "A",
- "5A",
- "5B",
- "6",
- "9B",
- "10",
- "11",
- "15B",
- "15C",
- "28",
- "N1",
- "N4",
- "H1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6880",
- "name": "Praza do Cristo da Vitoria",
- "latitude": 42.215576278,
- "longitude": -8.748885599,
- "lines": [
- "4A",
- "4C",
- "11",
- "15A",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:6890",
- "name": "Rúa da Cruz, 36",
- "latitude": 42.198959642,
- "longitude": -8.68628496,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:690",
- "name": "Avda. do Aeroporto, 656",
- "latitude": 42.233064093,
- "longitude": -8.642742935,
- "lines": [
- "A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:6900",
- "name": "Rúa da Cruz, 49",
- "latitude": 42.199031443,
- "longitude": -8.686165797,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:6930",
- "name": "Praza de América, 1",
- "latitude": 42.220997313,
- "longitude": -8.732835177,
- "lines": [
- "C1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:6940",
- "name": "Praza de América, 3",
- "latitude": 42.220663902,
- "longitude": -8.733419892,
- "lines": [
- "C3d",
- "4A",
- "4C",
- "5A",
- "5B",
- "10",
- "11",
- "12A",
- "12B",
- "13",
- "15A",
- "29",
- "N4",
- "PSA 4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:6950",
- "name": "Praza de España (cruce Rúa de Pizarro)",
- "latitude": 42.229280401,
- "longitude": -8.719123549,
- "lines": [
- "7",
- "12A",
- "12B",
- "14",
- "16",
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:6955",
- "name": "Praza de España (cruce Rúa de Fernando Conde)",
- "latitude": 42.229438377,
- "longitude": -8.719781108,
- "lines": [
- "6",
- "13",
- "18B",
- "18H",
- "25",
- "29"
- ]
- },
- {
- "stopId": "vitrasa:6960",
- "name": "Avda. das Camelias s/n ( Praza do Rei)",
- "latitude": 42.235056275,
- "longitude": -8.726757514,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12A",
- "12B",
- "16",
- "17",
- "27",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:6970",
- "name": "Rúa da Coruña, 52",
- "latitude": 42.223781999,
- "longitude": -8.735258991,
- "lines": [
- "C1",
- "A",
- "10",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:6980",
- "name": "Praza Eugenio Fadrique, 6",
- "latitude": 42.224471236,
- "longitude": -8.73619635,
- "lines": [
- "C3i",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:6990",
- "name": "Praza Eugenio Fadrique, 9",
- "latitude": 42.224099613,
- "longitude": -8.735838344,
- "lines": [
- "C3d",
- "A",
- "9B",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:70",
- "name": "Rúa da Lagoa (cruce Camiño do Casmarcelo)",
- "latitude": 42.20020175,
- "longitude": -8.700621608,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:700",
- "name": "Avda. do Aeroporto (Colexio)",
- "latitude": 42.228674047,
- "longitude": -8.633340309,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:7000",
- "name": "Praza de Fernando O Católico",
- "latitude": 42.232427317,
- "longitude": -8.711371073,
- "lines": [
- "A",
- "4A",
- "4C",
- "5A",
- "9B",
- "11",
- "15B",
- "15C",
- "24",
- "28",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:7030",
- "name": "Rúa de Manuel Castro, 23",
- "latitude": 42.212808952,
- "longitude": -8.740022994,
- "lines": [
- "16",
- "23",
- "N4",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7040",
- "name": "Estrada de Miraflores, 1",
- "latitude": 42.218435348,
- "longitude": -8.709924429,
- "lines": [
- "14",
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:7050",
- "name": "Praza de Miraflores, 4",
- "latitude": 42.218502886,
- "longitude": -8.710133641,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7060",
- "name": "Estrada de Moledo, 70",
- "latitude": 42.210499286,
- "longitude": -8.703983192,
- "lines": [
- "14",
- "18A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7070",
- "name": "Estrada de Moledo, 109",
- "latitude": 42.210620188,
- "longitude": -8.704177049,
- "lines": [
- "14",
- "18A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7080",
- "name": "Rúa da Rabadeira, 95",
- "latitude": 42.238797018,
- "longitude": -8.650399429,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7090",
- "name": "Rúa de Ramiro Pascual, 108",
- "latitude": 42.191918475,
- "longitude": -8.706869692,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:710",
- "name": "Rúa de Aragón (Instituto)",
- "latitude": 42.232478958,
- "longitude": -8.701988706,
- "lines": [
- "A",
- "4A",
- "9B",
- "24",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7100",
- "name": "Rúa de Ramiro Pascual, 16",
- "latitude": 42.1952442,
- "longitude": -8.71956212,
- "lines": [
- "12B",
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7110",
- "name": "Rúa de Ramiro Pascual, 30",
- "latitude": 42.195709195,
- "longitude": -8.716896004,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7120",
- "name": "Rúa de Ramiro Pascual, 33",
- "latitude": 42.195795442,
- "longitude": -8.716893641,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7130",
- "name": "Rúa de Ramiro Pascual, 46",
- "latitude": 42.19350247,
- "longitude": -8.715219623,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7140",
- "name": "Rúa de Ramiro Pascual, 71",
- "latitude": 42.193601829,
- "longitude": -8.715157933,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7150",
- "name": "Rúa de Ramiro Pascual, 74",
- "latitude": 42.192415468,
- "longitude": -8.71184004,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7160",
- "name": "Rúa de Ramiro Pascual, 97",
- "latitude": 42.192526527,
- "longitude": -8.712588696,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7170",
- "name": "Rúa de Ramiro Pascual, 9",
- "latitude": 42.195322512,
- "longitude": -8.719460515,
- "lines": [
- "12B",
- "18B",
- "18H",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:720",
- "name": "Avda. do Aeroporto, 215",
- "latitude": 42.235739016,
- "longitude": -8.684254232,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7200",
- "name": "Avda. de Ramón Nieto, 125",
- "latitude": 42.231023929,
- "longitude": -8.69459232,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7210",
- "name": "Avda. de Ramón Nieto, 136",
- "latitude": 42.229661504,
- "longitude": -8.691416585,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7220",
- "name": "Avda. de Ramón Nieto, 173",
- "latitude": 42.229736581,
- "longitude": -8.691879077,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7230",
- "name": "Avda. de Ramón Nieto, 198",
- "latitude": 42.229560215,
- "longitude": -8.687854611,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7240",
- "name": "Avda. de Ramón Nieto, 252",
- "latitude": 42.229454954,
- "longitude": -8.684539401,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7250",
- "name": "Avda. de Ramón Nieto, 273",
- "latitude": 42.229533333,
- "longitude": -8.684593198,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7260",
- "name": "Avda. de Ramón Nieto, 308",
- "latitude": 42.22953241,
- "longitude": -8.681347572,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7270",
- "name": "Avda. de Ramón Nieto, 341",
- "latitude": 42.229570145,
- "longitude": -8.681232237,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7280",
- "name": "Avda. de Ramón Nieto, 355",
- "latitude": 42.228432118,
- "longitude": -8.67827376,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7290",
- "name": "Avda. de Ramón Nieto, 360",
- "latitude": 42.228411862,
- "longitude": -8.678489489,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:730",
- "name": "Avda. do Aeroporto, 130",
- "latitude": 42.231109162,
- "longitude": -8.690501398,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7300",
- "name": "Avda. de Ramón Nieto, 390",
- "latitude": 42.223957681,
- "longitude": -8.673451332,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7310",
- "name": "Avda. de Ramón Nieto, 406",
- "latitude": 42.223219273,
- "longitude": -8.672272983,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:7320",
- "name": "Avda. de Ramón Nieto, 475",
- "latitude": 42.224462184,
- "longitude": -8.673842935,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7330",
- "name": "Avda. de Ramón Nieto, 50",
- "latitude": 42.231776636,
- "longitude": -8.697735869,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7340",
- "name": "Avda. de Ramón Nieto, 503",
- "latitude": 42.223272423,
- "longitude": -8.67216119,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "25",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7350",
- "name": "Avda. de Ramón Nieto, 57",
- "latitude": 42.231927571,
- "longitude": -8.697668814,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7360",
- "name": "Avda. de Ramón Nieto, 96",
- "latitude": 42.230432101,
- "longitude": -8.694045149,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7370",
- "name": "Avda. de Ramón Nieto, 247",
- "latitude": 42.229607881,
- "longitude": -8.686980211,
- "lines": [
- "11",
- "15A",
- "15B",
- "15C",
- "31",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:7380",
- "name": "Camiño do Raviso, 8",
- "latitude": 42.220087856,
- "longitude": -8.707014826,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7390",
- "name": "Camiño do Raviso, 35",
- "latitude": 42.220167311,
- "longitude": -8.706963864,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:740",
- "name": "Avda. do Aeroporto, 181",
- "latitude": 42.233560754,
- "longitude": -8.686937524,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7410",
- "name": "Rúa de Eduardo Cabello (Igrexa)",
- "latitude": 42.226366639,
- "longitude": -8.752928216,
- "lines": [
- "C3d",
- "C3i",
- "13",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:7440",
- "name": "Rúa Da Cruz, 18",
- "latitude": 42.200640474,
- "longitude": -8.684744444,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7450",
- "name": "Rúa da Cruz, 2",
- "latitude": 42.202168422,
- "longitude": -8.68473908,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7460",
- "name": "Rúa da Cruz, 46",
- "latitude": 42.19807525,
- "longitude": -8.684800771,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7470",
- "name": "Rúa Da Cruz, 63",
- "latitude": 42.198206824,
- "longitude": -8.684878336,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7480",
- "name": "Rúa Da Cruz, 19",
- "latitude": 42.200729887,
- "longitude": -8.684258964,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7490",
- "name": "Rúa do Carballal, 52",
- "latitude": 42.194091099,
- "longitude": -8.683392611,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:750",
- "name": "Avda. do Aeroporto, 184",
- "latitude": 42.233103986,
- "longitude": -8.68716283,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7500",
- "name": "Rúa do Carballal, 18",
- "latitude": 42.196388225,
- "longitude": -8.684151676,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7540",
- "name": "Avda. do Tranvía, 100",
- "latitude": 42.226657624,
- "longitude": -8.659447983,
- "lines": [
- "11",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:7590",
- "name": "Avda. do Tranvía, 40",
- "latitude": 42.225201551,
- "longitude": -8.667101684,
- "lines": [
- "11",
- "15A"
- ]
- },
- {
- "stopId": "vitrasa:760",
- "name": "Avda. do Aeroporto, 240",
- "latitude": 42.236775611,
- "longitude": -8.683736566,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7600",
- "name": "Rúa dos Chans (cruce Subida Chans)",
- "latitude": 42.198544554,
- "longitude": -8.677824939,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7610",
- "name": "Rúa das Chans (Colexio)",
- "latitude": 42.196647395,
- "longitude": -8.677801904,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7620",
- "name": "Rúa das Chans, 97",
- "latitude": 42.189146758,
- "longitude": -8.678708548,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7630",
- "name": "Rúa do Salgueiro, 6",
- "latitude": 42.243135911,
- "longitude": -8.66173721,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7640",
- "name": "Rúa da Rabadeira, 135",
- "latitude": 42.241620781,
- "longitude": -8.652000054,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7650",
- "name": "Rúa da Rabadeira, 64",
- "latitude": 42.239043121,
- "longitude": -8.650247888,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7660",
- "name": "Rúa da Rabadeira, 104",
- "latitude": 42.241610852,
- "longitude": -8.651865944,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7662",
- "name": "Rúa de Recaré, 6",
- "latitude": 42.211013462,
- "longitude": -8.68554295,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7664",
- "name": "Rúa de Recaré (cruce Segade)",
- "latitude": 42.211201327,
- "longitude": -8.688838517,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7666",
- "name": "Rúa de Recaré, 3",
- "latitude": 42.210514541,
- "longitude": -8.685349777,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7668",
- "name": "Rúa de Recaré, 39",
- "latitude": 42.211022529,
- "longitude": -8.688318168,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7670",
- "name": "Rúa San Cristobo, 6",
- "latitude": 42.235169136,
- "longitude": -8.671176685,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:7680",
- "name": "Rúa San Cristobo, 117",
- "latitude": 42.240866745,
- "longitude": -8.669273191,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7690",
- "name": "Rúa San Cristobo, 11",
- "latitude": 42.235468446,
- "longitude": -8.670649153,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:770",
- "name": "Avda. do Aeroporto, 273",
- "latitude": 42.238939528,
- "longitude": -8.681422497,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7700",
- "name": "Rúa San Cristobo, 30",
- "latitude": 42.236478263,
- "longitude": -8.669194381,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:7710",
- "name": "Rúa San Cristobo, 41",
- "latitude": 42.236825775,
- "longitude": -8.669313413,
- "lines": [
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7720",
- "name": "Rúa San Cristobo, 80",
- "latitude": 42.24099726,
- "longitude": -8.669077286,
- "lines": [
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:7730",
- "name": "Rúa do Salgueiro, 24",
- "latitude": 42.241580812,
- "longitude": -8.658065611,
- "lines": [
- "9B",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7740",
- "name": "Rúa de Salgueiro, 23",
- "latitude": 42.241658253,
- "longitude": -8.658202403,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7750",
- "name": "Rúa do Salgueiro, 1",
- "latitude": 42.243330503,
- "longitude": -8.661852545,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:7760",
- "name": "Camiño das Cunchadas (cruce Rúa da Senra)",
- "latitude": 42.193300199,
- "longitude": -8.681021538,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7762",
- "name": "Rúa de Segade, 41",
- "latitude": 42.209575101,
- "longitude": -8.690548833,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:7764",
- "name": "Rúa de Segade, 86",
- "latitude": 42.209654568,
- "longitude": -8.690495189,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:780",
- "name": "Avda. do Aeroporto, 298",
- "latitude": 42.238554288,
- "longitude": -8.680663432,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7810",
- "name": "Estrada Miraflores (Parque Parróco Xesús Alonso)",
- "latitude": 42.217817959,
- "longitude": -8.710940668,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:7830",
- "name": "Rúa de Saa, 72",
- "latitude": 42.20297089,
- "longitude": -8.707945762,
- "lines": [
- "18B",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7840",
- "name": "Rúa da Saa do Monte, 73",
- "latitude": 42.203039989,
- "longitude": -8.710936623,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:7849",
- "name": "Rúa de Saá, 105",
- "latitude": 42.20622236,
- "longitude": -8.707026831,
- "lines": [
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:7850",
- "name": "Rúa de Saa, 57",
- "latitude": 42.202923204,
- "longitude": -8.708085237,
- "lines": [
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:7860",
- "name": "Rúa de Severino Cobas, 73",
- "latitude": 42.225436283,
- "longitude": -8.68893946,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:7870",
- "name": "Baixada á Praia, 4",
- "latitude": 42.166897971,
- "longitude": -8.802204658,
- "lines": [
- "C3d",
- "10",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7880",
- "name": "Barrio da Salgueira, 106",
- "latitude": 42.222364236,
- "longitude": -8.718898254,
- "lines": [
- "18A"
- ]
- },
- {
- "stopId": "vitrasa:7890",
- "name": "Avda. de Cesáreo Vázquez, 61",
- "latitude": 42.180764289,
- "longitude": -8.80256063,
- "lines": [
- "11",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:790",
- "name": "Avda. do Aeroporto, 325",
- "latitude": 42.237426811,
- "longitude": -8.675474476,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:7900",
- "name": "Rúa de San Paio (cruce Camiño da Quintela)",
- "latitude": 42.20492472,
- "longitude": -8.768904292,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7910",
- "name": "Rúa de San Paio (Igrexa)",
- "latitude": 42.208040013,
- "longitude": -8.767458581,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7920",
- "name": "Rúa de San Paio (Torreiro)",
- "latitude": 42.208926096,
- "longitude": -8.765294038,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7930",
- "name": "Rúa de San Paio, 136",
- "latitude": 42.208999211,
- "longitude": -8.765346753,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7940",
- "name": "Rúa de San Paio, 220",
- "latitude": 42.207987966,
- "longitude": -8.767688321,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7950",
- "name": "Rúa de San Paio, 242",
- "latitude": 42.206253649,
- "longitude": -8.768742472,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7960",
- "name": "Rúa de San Paio, 284",
- "latitude": 42.202111343,
- "longitude": -8.769560881,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7970",
- "name": "Rúa de San Paio (fronte 58)",
- "latitude": 42.213820465,
- "longitude": -8.760651176,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7980",
- "name": "Rúa de San Paio, 54",
- "latitude": 42.21430717,
- "longitude": -8.760710185,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:7990",
- "name": "Rúa de San Paio, 76",
- "latitude": 42.212612622,
- "longitude": -8.760868435,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:80",
- "name": "Rúa da Lagoa, 46",
- "latitude": 42.200132216,
- "longitude": -8.700535777,
- "lines": [
- "18A",
- "18B"
- ]
- },
- {
- "stopId": "vitrasa:800",
- "name": "Avda. do Aeroporto, 328",
- "latitude": 42.237801674,
- "longitude": -8.676524783,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8000",
- "name": "Rúa de San Paio, 83",
- "latitude": 42.212034517,
- "longitude": -8.760916715,
- "lines": [
- "4A",
- "12A"
- ]
- },
- {
- "stopId": "vitrasa:8010",
- "name": "Rúa de Sanjurjo Badía, 106",
- "latitude": 42.245018172,
- "longitude": -8.703349646,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8020",
- "name": "Rúa de Sanjurjo Badía, 123",
- "latitude": 42.246941664,
- "longitude": -8.700376378,
- "lines": [
- "C3i",
- "5B",
- "10",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8030",
- "name": "Rúa de Sanjurjo Badía, 136",
- "latitude": 42.246056261,
- "longitude": -8.701684825,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8040",
- "name": "Rúa de Sanjurjo Badía, 167",
- "latitude": 42.24874024,
- "longitude": -8.697546209,
- "lines": [
- "C3i",
- "5B",
- "10",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8050",
- "name": "Rúa de Sanjurjo Badía, 202",
- "latitude": 42.247765296,
- "longitude": -8.698918203,
- "lines": [
- "C3d",
- "5B",
- "10",
- "17",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8060",
- "name": "Rúa de Sanjurjo Badía, 79",
- "latitude": 42.244926864,
- "longitude": -8.703642393,
- "lines": [
- "C3i",
- "5B",
- "10",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8090",
- "name": "Estrada Miraflores (Centro Saúde)",
- "latitude": 42.216151643,
- "longitude": -8.715616477,
- "lines": [
- "18A",
- "18B",
- "18H"
- ]
- },
- {
- "stopId": "vitrasa:810",
- "name": "Avda. do Aeroporto, 350",
- "latitude": 42.235521261,
- "longitude": -8.67465521,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8100",
- "name": "Estrada da Gándara, 79",
- "latitude": 42.160735669,
- "longitude": -8.709771124,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:8110",
- "name": "Estrada da Gándara (Seoane)",
- "latitude": 42.160670051,
- "longitude": -8.709878412,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:8120",
- "name": "Rúa de Severino Cobas (cruce Trav. de Santa Cristina)",
- "latitude": 42.22493632,
- "longitude": -8.694369092,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8130",
- "name": "Rúa de Severino Cobas, 51",
- "latitude": 42.225485938,
- "longitude": -8.692235895,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8140",
- "name": "Rúa de Severino Cobas, 14",
- "latitude": 42.224657696,
- "longitude": -8.696532794,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8150",
- "name": "Rúa de Severino Cobas, 3",
- "latitude": 42.225076787,
- "longitude": -8.697168477,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8160",
- "name": "Rúa de Severino Cobas, 88",
- "latitude": 42.224884679,
- "longitude": -8.694275214,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8170",
- "name": "Rúa de Severino Cobas, 140",
- "latitude": 42.225428901,
- "longitude": -8.688744499,
- "lines": [
- "25"
- ]
- },
- {
- "stopId": "vitrasa:8180",
- "name": "Estrada da Garrida, 291",
- "latitude": 42.173993336,
- "longitude": -8.70329684,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:8190",
- "name": "Subida da Costa (Colina)",
- "latitude": 42.214660701,
- "longitude": -8.722840401,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:820",
- "name": "Avda. do Aeroporto, 377",
- "latitude": 42.234766626,
- "longitude": -8.671305131,
- "lines": [
- "A",
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:8200",
- "name": "Subida da Costa, 21",
- "latitude": 42.214714337,
- "longitude": -8.723068388,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8210",
- "name": "Subida da Costa, 3",
- "latitude": 42.214377129,
- "longitude": -8.725964538,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8220",
- "name": "Camiño da Corredoura, 3",
- "latitude": 42.213993258,
- "longitude": -8.726740824,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8230",
- "name": "Rúa dos Chans (cruce Camiño Regada)",
- "latitude": 42.199146625,
- "longitude": -8.676419461,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:8240",
- "name": "Subida á Madroa (Urbanización)",
- "latitude": 42.243382567,
- "longitude": -8.674125307,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:8250",
- "name": "Subida á Madroa, 15",
- "latitude": 42.242669731,
- "longitude": -8.670096629,
- "lines": [
- "9B",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:8282",
- "name": "Subida á Mouteira, 6",
- "latitude": 42.206854901,
- "longitude": -8.686031058,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:8284",
- "name": "Subida á Mouteira (Parque Monte Calvario)",
- "latitude": 42.206779403,
- "longitude": -8.686218813,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:8290",
- "name": "Subida das Ánimas, 31",
- "latitude": 42.235646525,
- "longitude": -8.685908988,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:830",
- "name": "Avda. do Aeroporto, 378",
- "latitude": 42.234673289,
- "longitude": -8.671348046,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8300",
- "name": "Subida das Ánimas, 32",
- "latitude": 42.23556225,
- "longitude": -8.686044366,
- "lines": [
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:8330",
- "name": "Rúa de Tomás A. Alonso, 86",
- "latitude": 42.223897608,
- "longitude": -8.740424721,
- "lines": [
- "C3i",
- "15B",
- "15C",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:8340",
- "name": "Rúa de Tomás A. Alonso, 137",
- "latitude": 42.223840474,
- "longitude": -8.740432891,
- "lines": [
- "C3d",
- "13",
- "15B",
- "15C",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:8370",
- "name": "Rúa de Tomás A. Alonso, 220",
- "latitude": 42.223984208,
- "longitude": -8.751326546,
- "lines": [
- "C3d",
- "C3i"
- ]
- },
- {
- "stopId": "vitrasa:8390",
- "name": "Rúa de Tomás A. Alonso, 251",
- "latitude": 42.223510532,
- "longitude": -8.748903264,
- "lines": [
- "C3d",
- "13",
- "15B",
- "15C",
- "H"
- ]
- },
- {
- "stopId": "vitrasa:840",
- "name": "Avda. do Aeroporto, 43",
- "latitude": 42.234904325,
- "longitude": -8.699245802,
- "lines": [
- "A",
- "4A",
- "9B",
- "24",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:8410",
- "name": "Rúa de Tomás Paredes (fronte 108)",
- "latitude": 42.218006346,
- "longitude": -8.754154367,
- "lines": [
- "C3d",
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:8420",
- "name": "Rúa de Tomás Paredes, 114",
- "latitude": 42.218031265,
- "longitude": -8.754258995,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:8430",
- "name": "Rúa de Tomás Paredes, 9",
- "latitude": 42.221229518,
- "longitude": -8.753411657,
- "lines": [
- "C3d",
- "10",
- "15B"
- ]
- },
- {
- "stopId": "vitrasa:8440",
- "name": "Rúa de Tomás Paredes, 86",
- "latitude": 42.220192578,
- "longitude": -8.754164587,
- "lines": [
- "C3i",
- "10"
- ]
- },
- {
- "stopId": "vitrasa:8450",
- "name": "Rúa do Conde de Torrecedeira (Parque)",
- "latitude": 42.231511437,
- "longitude": -8.732178,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:8460",
- "name": "Rúa do Conde de Torrecedeira, 105",
- "latitude": 42.227500225,
- "longitude": -8.734096707,
- "lines": [
- "C1",
- "C3d",
- "A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:8470",
- "name": "Rúa do Conde de Torrecedeira, 21",
- "latitude": 42.234106639,
- "longitude": -8.731302569,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:8480",
- "name": "Rúa do Conde de Torrecedeira, 81",
- "latitude": 42.229616766,
- "longitude": -8.732861043,
- "lines": [
- "C1",
- "C3d",
- "A",
- "5A",
- "9B",
- "15C",
- "N4",
- "H1"
- ]
- },
- {
- "stopId": "vitrasa:8490",
- "name": "Rúa da Travesía de Vigo, 202",
- "latitude": 42.244366441,
- "longitude": -8.695452075,
- "lines": [
- "C3i",
- "5A",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:850",
- "name": "Avda. do Aeroporto, 423",
- "latitude": 42.23630176,
- "longitude": -8.665791599,
- "lines": [
- "A",
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:8500",
- "name": "Rúa da Travesía de Vigo, 105",
- "latitude": 42.238455548,
- "longitude": -8.703814812,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:8510",
- "name": "Rúa da Travesía de Vigo, 124",
- "latitude": 42.238413145,
- "longitude": -8.703563202,
- "lines": [
- "C3i",
- "5A",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8520",
- "name": "Rúa da Travesía de Vigo, 153",
- "latitude": 42.241332883,
- "longitude": -8.702059906,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:8530",
- "name": "Rúa da Travesía de Vigo, 158",
- "latitude": 42.241101222,
- "longitude": -8.701974032,
- "lines": [
- "C3i",
- "5A",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8540",
- "name": "Rúa da Travesía de Vigo, 193",
- "latitude": 42.242844316,
- "longitude": -8.698295825,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:8550",
- "name": "Rúa da Travesía de Vigo, 220",
- "latitude": 42.246425568,
- "longitude": -8.692950624,
- "lines": [
- "C3i",
- "5A",
- "5B",
- "N1",
- "H3",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8560",
- "name": "Rúa da Travesía de Vigo, 213",
- "latitude": 42.24409871,
- "longitude": -8.69614733,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8570",
- "name": "Rúa da Travesía de Vigo, 239",
- "latitude": 42.246143319,
- "longitude": -8.69359937,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8580",
- "name": "Rúa da Travesía de Vigo, 32",
- "latitude": 42.233828086,
- "longitude": -8.706311242,
- "lines": [
- "C3i",
- "5A",
- "31",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8590",
- "name": "Rúa da Travesía de Vigo, 37",
- "latitude": 42.233681224,
- "longitude": -8.706702136,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:860",
- "name": "Avda. do Aeroporto, 446",
- "latitude": 42.235612667,
- "longitude": -8.666529207,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8600",
- "name": "Rúa da Travesía de Vigo, 71",
- "latitude": 42.236350093,
- "longitude": -8.70429745,
- "lines": [
- "C3d",
- "5A",
- "31",
- "H2"
- ]
- },
- {
- "stopId": "vitrasa:8610",
- "name": "Rúa da Travesía de Vigo, 8",
- "latitude": 42.232028188,
- "longitude": -8.708203776,
- "lines": [
- "C3i",
- "A",
- "4A",
- "4C",
- "5A",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "23",
- "24",
- "25",
- "27",
- "28",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:8620",
- "name": "Rúa da Travesía de Vigo, 82",
- "latitude": 42.236261792,
- "longitude": -8.703994979,
- "lines": [
- "C3i",
- "5A",
- "N1",
- "VTS"
- ]
- },
- {
- "stopId": "vitrasa:8630",
- "name": "Rúa da Travesía de Vigo, 7",
- "latitude": 42.232045931,
- "longitude": -8.708603793,
- "lines": [
- "C3d",
- "A",
- "4A",
- "4C",
- "5A",
- "6",
- "9B",
- "11",
- "15A",
- "15B",
- "15C",
- "23",
- "25",
- "27",
- "28",
- "N4",
- "H2",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:8660",
- "name": "Química (CUVI)",
- "latitude": 42.168290977,
- "longitude": -8.68342947,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8670",
- "name": "Bioloxía (CUVI)",
- "latitude": 42.167687661,
- "longitude": -8.685994335,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8680",
- "name": "Económicas e Empresariais (CUVI)",
- "latitude": 42.169603028,
- "longitude": -8.680108895,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:870",
- "name": "Avda. do Aeroporto, 447",
- "latitude": 42.23543058,
- "longitude": -8.66197943,
- "lines": [
- "A",
- "9B"
- ]
- },
- {
- "stopId": "vitrasa:8700",
- "name": "Enxeñeiros (CUVI)",
- "latitude": 42.167963445,
- "longitude": -8.688421342,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8710",
- "name": "Universidade.",
- "latitude": 42.167985106,
- "longitude": -8.688425395,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8720",
- "name": "Humanidades (CUVI)",
- "latitude": 42.169678809,
- "longitude": -8.679104749,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8721",
- "name": "Universidade..",
- "latitude": 42.169776602,
- "longitude": -8.678942156,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8730",
- "name": "Telecomunicacións (CUVI) B",
- "latitude": 42.170159671,
- "longitude": -8.68735086,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8740",
- "name": "Telecomunicacións (CUVI)",
- "latitude": 42.170123888,
- "longitude": -8.687270393,
- "lines": [
- "A",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:8750",
- "name": "Rúa de Urzáiz - Est. Intermodal - C.C.",
- "latitude": 42.233722977,
- "longitude": -8.714502762,
- "lines": [
- "A",
- "4A",
- "4C",
- "5A",
- "6",
- "9B",
- "11",
- "15B",
- "15C",
- "24",
- "28",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:8770",
- "name": "Rúa de Urzáiz, 13",
- "latitude": 42.235420929,
- "longitude": -8.718721877,
- "lines": [
- "A",
- "4A",
- "4C",
- "5A",
- "6",
- "7",
- "9B",
- "11",
- "12B",
- "14",
- "15B",
- "15C",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "24",
- "28",
- "N1",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:880",
- "name": "Avda. do Aeroporto, 484",
- "latitude": 42.23544051,
- "longitude": -8.662354939,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8820",
- "name": "Rúa de Urzáiz, 28",
- "latitude": 42.23516998,
- "longitude": -8.718398782,
- "lines": [
- "C1",
- "A",
- "4A",
- "4C",
- "5A",
- "7",
- "9B",
- "12B",
- "14",
- "15B",
- "15C",
- "16",
- "17",
- "18A",
- "18B",
- "18H",
- "24",
- "28",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:8840",
- "name": "Rúa de Urzáiz, 60 - Est. Intermodal - C.C.",
- "latitude": 42.233986283,
- "longitude": -8.71541048,
- "lines": [
- "A",
- "4A",
- "4C",
- "5A",
- "9B",
- "11",
- "15B",
- "15C",
- "24",
- "28",
- "N1",
- "N4"
- ]
- },
- {
- "stopId": "vitrasa:8850",
- "name": "Rúa de Urzáiz, 97",
- "latitude": 42.232341315,
- "longitude": -8.710892054,
- "lines": [
- "A",
- "4A",
- "4C",
- "5A",
- "6",
- "9B",
- "11",
- "15B",
- "15C",
- "28",
- "N4",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:8870",
- "name": "Rúa de Venezuela, 4",
- "latitude": 42.234250043,
- "longitude": -8.724361531,
- "lines": [
- "4A",
- "4C",
- "5B",
- "11",
- "12A",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:8880",
- "name": "Rúa de Venezuela, 20",
- "latitude": 42.233188126,
- "longitude": -8.72155331,
- "lines": [
- "4A",
- "4C",
- "5B",
- "11",
- "12A",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:8890",
- "name": "Rúa de Venezuela, 21",
- "latitude": 42.233283503,
- "longitude": -8.721378959,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12B",
- "16",
- "17",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:890",
- "name": "Avda. do Aeroporto, 491",
- "latitude": 42.232066419,
- "longitude": -8.653842977,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:8900",
- "name": "Rúa de Venezuela, 45",
- "latitude": 42.232243383,
- "longitude": -8.718524158,
- "lines": [
- "4A",
- "4C",
- "5B",
- "7",
- "12B",
- "16",
- "17",
- "PSA 4"
- ]
- },
- {
- "stopId": "vitrasa:8910",
- "name": "Rúa de Venezuela, 42",
- "latitude": 42.232224046,
- "longitude": -8.718985824,
- "lines": [
- "4A",
- "4C",
- "5B",
- "11",
- "12A",
- "12B",
- "17",
- "27",
- "N1"
- ]
- },
- {
- "stopId": "vitrasa:8916",
- "name": "Rúa de Venezuela, 60",
- "latitude": 42.231593651,
- "longitude": -8.71714227,
- "lines": [
- "27"
- ]
- },
- {
- "stopId": "vitrasa:8930",
- "name": "Rúa de Vilagarcía de Arousa (cruce Rúa do Grove)",
- "latitude": 42.22014115,
- "longitude": -8.745082757,
- "lines": [
- "C3i",
- "5B"
- ]
- },
- {
- "stopId": "vitrasa:8950",
- "name": "Rúa de Marín, 5",
- "latitude": 42.218712573,
- "longitude": -8.75011435,
- "lines": [
- "C3i",
- "5B"
- ]
- },
- {
- "stopId": "vitrasa:8970",
- "name": "Rúa do Seixo, 45",
- "latitude": 42.197425383,
- "longitude": -8.713700535,
- "lines": [
- "A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8980",
- "name": "Rúa do Seixo, 38",
- "latitude": 42.197532685,
- "longitude": -8.713614705,
- "lines": [
- "A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:8990",
- "name": "Rúa do Seixo, 75",
- "latitude": 42.200673849,
- "longitude": -8.714185609,
- "lines": [
- "A",
- "18B",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:90",
- "name": "Aeroporto de Peinador",
- "latitude": 42.225956918,
- "longitude": -8.63286469,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:900",
- "name": "Avda. do Aeroporto, 531",
- "latitude": 42.233527998,
- "longitude": -8.648237616,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:9000",
- "name": "Rúa do Seixo (Parque)",
- "latitude": 42.200719549,
- "longitude": -8.714115872,
- "lines": [
- "A",
- "H3"
- ]
- },
- {
- "stopId": "vitrasa:9010",
- "name": "Rúa de Xeme, 71",
- "latitude": 42.203157887,
- "longitude": -8.694293108,
- "lines": [
- "14"
- ]
- },
- {
- "stopId": "vitrasa:9020",
- "name": "Xestoso",
- "latitude": 42.207584622,
- "longitude": -8.670108196,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:9030",
- "name": "Xestoso (B)",
- "latitude": 42.207537397,
- "longitude": -8.670071905,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:9040",
- "name": "Estrada das Plantas (cruce Camiño Monte Vello)",
- "latitude": 42.20831564,
- "longitude": -8.670282438,
- "lines": [
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:9050",
- "name": "Estrada da Igrexa, 45",
- "latitude": 42.154646971,
- "longitude": -8.688349062,
- "lines": [
- "7"
- ]
- },
- {
- "stopId": "vitrasa:910",
- "name": "Avda. do Aeroporto, 54",
- "latitude": 42.234679919,
- "longitude": -8.699623994,
- "lines": [
- "A",
- "4A",
- "9B",
- "24",
- "27",
- "28"
- ]
- },
- {
- "stopId": "vitrasa:920",
- "name": "Avda. do Aeroporto (cruce Camiño das Cereixeiras)",
- "latitude": 42.233499069,
- "longitude": -8.643325214,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:930",
- "name": "Avda. do Aeroporto, 570",
- "latitude": 42.231979036,
- "longitude": -8.65372496,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:940",
- "name": "Avda. do Aeroporto, 605",
- "latitude": 42.230493878,
- "longitude": -8.638023273,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:950",
- "name": "Avda. do Aeroporto, 614",
- "latitude": 42.233626818,
- "longitude": -8.647811163,
- "lines": [
- "A",
- "25"
- ]
- },
- {
- "stopId": "vitrasa:960",
- "name": "Avda. do Aeroporto, 686",
- "latitude": 42.230918888,
- "longitude": -8.638532893,
- "lines": [
- "A"
- ]
- },
- {
- "stopId": "vitrasa:970",
- "name": "Avda. do Aeroporto, 91",
- "latitude": 42.232787318,
- "longitude": -8.693473285,
- "lines": [
- "A",
- "9B",
- "27"
- ]
- },
- {
- "stopId": "vitrasa:980",
- "name": "Avda. da Atlántida, 99",
- "latitude": 42.221170087,
- "longitude": -8.763656977,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- },
- {
- "stopId": "vitrasa:990",
- "name": "Avda. da Atlántida (fronte 148)",
- "latitude": 42.222451366,
- "longitude": -8.769134894,
- "lines": [
- "10",
- "15B",
- "15C"
- ]
- }
-] \ No newline at end of file