Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ermittlung von Positionen von svg-Elementen #2

Open
d3d9 opened this issue Dec 2, 2019 · 0 comments
Open

Ermittlung von Positionen von svg-Elementen #2

d3d9 opened this issue Dec 2, 2019 · 0 comments
Labels
bug Something isn't working help wanted Extra attention is needed popups Related to popup content or handling

Comments

@d3d9
Copy link
Owner

d3d9 commented Dec 2, 2019

Da es vor allem in Chromium-basierten Browsern Probleme mit Koordinatenumrechnungen gab, wird aktuell, um das Problem zu umgehen, folgendes gemacht:

  • Beim Klicken auf eine Haltestelle wird die Fake-Geokoordinate (anhand des Mouseclicks ermittelbar) in den Daten gespeichert, an dieser Position wird direkt normal das Popup geöffnet.
  • Wenn nachher z. B. im Linienpopup der Zurück-Knopf geklickt wird, kann auf diese gespeicherte Koordinate dann zurückgegriffen werden.
  • Wenn dies nicht möglich ist, z. B. weil die Haltestelle oder das Linienpopup mit #-link geöffnet wurde, dann wird das Popup ohne Tip und in der Mitte des Bildschirms dargestellt.

Die Ursache liegt eventuell im transform-Attribut am oberen svg-Element. In Firefox machen die Koordinatenumrechnungen keinerlei Probleme.

Dieser Code wurde zuvor verwendet und ist aktuell auskommentiert in js/main.js/stopClicked:

    let point = $("#svg2")[0].createSVGPoint();
    // console.log(stoptext.getBBox());
    point.x = stoptext.getBBox().x + stoptext.getBBox().width / 2;
    point.y = stoptext.getBBox().y + stoptext.getBBox().height / 2;
    // console.log(point);
    let target = point.matrixTransform(stoptext.getCTM());
    // console.log(stoptext.getScreenCTM());
    // console.log(point.matrixTransform(stoptext.getScreenCTM()));
    // console.log(stoptext.getCTM());
    // console.log(target);
    let coords = mymap.layerPointToLatLng(target);
    // console.log(coords);

Wenn das hier beschriebene Problem gelöst werden kann, erschließen sich weitere wichtige Möglichkeiten für Funktionalitäten:

@d3d9 d3d9 added bug Something isn't working enhancement New feature or request help wanted Extra attention is needed and removed enhancement New feature or request labels Dec 2, 2019
@d3d9 d3d9 mentioned this issue Dec 2, 2019
@d3d9 d3d9 added the popups Related to popup content or handling label Dec 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed popups Related to popup content or handling
Projects
None yet
Development

No branches or pull requests

1 participant