De grote vraag is: hoe maak ik treinstations in de Maps API klikbaar zoals ze dat zijn op de Google Maps, de website?
Als ik dit voorbeeld pak en in een html-bestand gooi, dan merk ik dat treinstations gewoon "loze" dingen zijn. Het zijn geen POI's op de kaart die een popup maken en informatie laten zien. Ik hoef niet per se de actuele vertrektijden e.d. te zien in de popup, maar wel op z'n minst basic info zoals naam, adres, en andere metadata. Die popup heb ik nodig om verder dingen mee te gaan doen - maar daarvoor zullen de stations op z'n allerminst klikbaar moeten zijn.
Ik kan nergens vinden hoe/waar je dit aanzet, dus ben ik zelf maar wat gaan klooien - met weinig resultaat waar ik écht blij van wordt. Ik ging er eigenlijk vanuit dat dit standaard(-ish) in Maps ingebouwd zit, omdat op de website heb je het ook - ook al werkt het ontzettend traag. Maar het is er. De gegevens van waar die icoontjes op de kaart precies zitten en wat erachter schuilt, is gewoon beschikbaar - maar waar en hoe?
Ik heb twee dingen geprobeerd. Eerste dat ik vond was de Transit Layer. Deze maakt stations alleen niet klikbaar, en voegt daadwerkelijk gekleurde lijntjes toe, die ik dan weer net niet wil. Qua kleuren wil gewoon de default style. Eigenlijk is deze layer dus precies het tegenovergestelde van waar ik naar op zoek ben.
Tweede wat ik heb geprobeerd, is goochelen met de Places API. Die kun je meenemen in de Maps API, en dan een bounds object eraan meegeven en dan een zooitjes places terugkrijgen. Zo kun je met wat truukerij een volledig transparante "marker" over het station-icoontje heen die dingen toch nog klikbaar krijgen, alleen... net niet. Heel veel stations hebben meerdere "places" over elkaar heen zonder mogelijkheid om te weten welke daarvan moet "winnen", en meer dan een handjevol stationslocaties komen niet overeen tussen de tiles van Maps en de locaties van Places API, zodat je er net naast moet klikken. En uiteraard stations die helemaal niet uit de Places API teruggegeven worden.
Testcase: http://home.thany.nl/apps/MYMaps/test2.html
De halfzwarte vakjes zijn de klikhokjes (mooi woord
) van de stations. Je ziet in deze view wrs wel waarom dit het nét niet is, en waarom het zo veelbelovend leek.
Places API leek dus een veelbelovende oplossing (workaround eigenlijk), maar het is em gewoon net niet. Het is ook duidelijk *niet* wat Google Maps (de website) gebruikt. En ik wil (het liefst) wat de website gebruikt, omdat dat gewoon 100% accuraat is - de stations zijn klikbaar op de juiste plek, er zijn geen rare duplicates, en het zorgt niet voor nóg meer HTTP requests dan er toch al gedaan worden - althans niet voordat je op een station klikt.
Dusss. Lang verhaal
Maar weet iemand dus hoe je treinstations en hun klikbaarheid in de Maps API krijgt zoals op de website?
Als ik dit voorbeeld pak en in een html-bestand gooi, dan merk ik dat treinstations gewoon "loze" dingen zijn. Het zijn geen POI's op de kaart die een popup maken en informatie laten zien. Ik hoef niet per se de actuele vertrektijden e.d. te zien in de popup, maar wel op z'n minst basic info zoals naam, adres, en andere metadata. Die popup heb ik nodig om verder dingen mee te gaan doen - maar daarvoor zullen de stations op z'n allerminst klikbaar moeten zijn.
Ik kan nergens vinden hoe/waar je dit aanzet, dus ben ik zelf maar wat gaan klooien - met weinig resultaat waar ik écht blij van wordt. Ik ging er eigenlijk vanuit dat dit standaard(-ish) in Maps ingebouwd zit, omdat op de website heb je het ook - ook al werkt het ontzettend traag. Maar het is er. De gegevens van waar die icoontjes op de kaart precies zitten en wat erachter schuilt, is gewoon beschikbaar - maar waar en hoe?
Ik heb twee dingen geprobeerd. Eerste dat ik vond was de Transit Layer. Deze maakt stations alleen niet klikbaar, en voegt daadwerkelijk gekleurde lijntjes toe, die ik dan weer net niet wil. Qua kleuren wil gewoon de default style. Eigenlijk is deze layer dus precies het tegenovergestelde van waar ik naar op zoek ben.
Tweede wat ik heb geprobeerd, is goochelen met de Places API. Die kun je meenemen in de Maps API, en dan een bounds object eraan meegeven en dan een zooitjes places terugkrijgen. Zo kun je met wat truukerij een volledig transparante "marker" over het station-icoontje heen die dingen toch nog klikbaar krijgen, alleen... net niet. Heel veel stations hebben meerdere "places" over elkaar heen zonder mogelijkheid om te weten welke daarvan moet "winnen", en meer dan een handjevol stationslocaties komen niet overeen tussen de tiles van Maps en de locaties van Places API, zodat je er net naast moet klikken. En uiteraard stations die helemaal niet uit de Places API teruggegeven worden.
Testcase: http://home.thany.nl/apps/MYMaps/test2.html
De halfzwarte vakjes zijn de klikhokjes (mooi woord
Places API leek dus een veelbelovende oplossing (workaround eigenlijk), maar het is em gewoon net niet. Het is ook duidelijk *niet* wat Google Maps (de website) gebruikt. En ik wil (het liefst) wat de website gebruikt, omdat dat gewoon 100% accuraat is - de stations zijn klikbaar op de juiste plek, er zijn geen rare duplicates, en het zorgt niet voor nóg meer HTTP requests dan er toch al gedaan worden - althans niet voordat je op een station klikt.
Dusss. Lang verhaal
Maar weet iemand dus hoe je treinstations en hun klikbaarheid in de Maps API krijgt zoals op de website?
[ Voor 3% gewijzigd door _Thanatos_ op 14-10-2014 17:20 ]
日本!🎌

