Custom Connector
Custom Connector
pq file
[DataSource.Kind="TripPinConnector", Publish="TripPinConnector.Publish"]
shared TripPinConnector.Contents = (optional message as text) =>
let
airports = GetAirports(),
#"Expanded Airport" = Table.ExpandRecordColumn(airports, "Column1",
{"IcaoCode", "Name", "IataCode", "Location"}, {"IcaoCode", "Name", "IataCode",
"Location"}),
#"Expanded Location" = Table.ExpandRecordColumn(#"Expanded Airport",
"Location", {"Address", "City", "Loc"}, {"Address", "City", "Loc"}),
#"Expanded City" = Table.ExpandRecordColumn(#"Expanded Location", "City",
{"CountryRegion", "Name", "Region"}, {"CountryRegion", "Name.1", "Region"}),
#"Expanded Loc" = Table.ExpandRecordColumn(#"Expanded City", "Loc", {"type",
"coordinates", "crs"}, {"type", "coordinates", "crs"}),
#"Extracted Values" = Table.TransformColumns(#"Expanded Loc", {"coordinates",
each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Expanded crs" = Table.ExpandRecordColumn(#"Extracted Values", "crs",
{"properties"}, {"properties"}),
airportsDetail = Table.ExpandRecordColumn(#"Expanded crs", "properties",
{"name"}, {"crs"})
in
airportsDetail;
TripPinConnector.Icons = [
Icon16 = { Extension.Contents("TripPinConnector16.png"),
Extension.Contents("TripPinConnector20.png"),
Extension.Contents("TripPinConnector24.png"),
Extension.Contents("TripPinConnector32.png") },
Icon32 = { Extension.Contents("TripPinConnector32.png"),
Extension.Contents("TripPinConnector40.png"),
Extension.Contents("TripPinConnector48.png"),
Extension.Contents("TripPinConnector64.png") }
];
TripPinConnector.query.pq file