Hi guys
I'm trying to extend the SimpleMapMarker class.
The SimpleMapMarker class displays a sphere at the specified Lat/Long.
It computes the x/y position of the sphere on the screen, so the sphere is at the right location, especially when the map is zoomed or moved.
I tried to implement the onMouseClicked on the sphere to display a "pop up menu" close to the sphere.
This works fine if the PopUp is a Java FX popup.
But then when the map is moved, the Pop up location is not recomputed (Normal !)
So I decided to extend the SimpleMapMarker to ExtendedSimpleMapMarker
When the sphere is clicked, the Node represented by the marker shall be (Sphere + Rectangle Pop up) instead of only sphere.
By looking at the code I changed to
protected the visibility of
@Override
List<? extends Node> createChildren(Point position){
sphere.setTranslateX(position.x - this.radius);
sphere.setTranslateY(position.y - this.radius);
return Collections.singletonList(sphere);
}
so it can be overriden.
As far as I understand, when the map is rendered, it loops on all its mapLayers to render them.
Each mapLayer "createChildren" is called and returns the list of nodes that represent this mapLayer, translated to the new position.
Then, this list of nodes is added to the tiles to be rendered.
(By the way, I don't really understand HOW everything is rendered at the end.. If you could explain in more details)
So for my idea of extended marker, I extended List<? extends Node> createChildren(Point position) in my ExtendedSimpleMapMarker
with a implementation like the folowing:
@Override
List<? extends Node> createChildren(Point position){
StackPane stack=new StackPane();
sphere.setTranslateX(position.x - this.radius);
sphere.setTranslateY(position.y - this.radius);
rectanglePopup.setTranslateX(position.x)
rectanglePopup.setTranslateY(position.y);
stack.getChildren().add(sphere);
stack.getChildren().add(rectanglePopup);
return Collections.singletonList(stack);
}
But that doesn't seem to work
only the rectanglePopup is displayed, and not only the combination of both (in the stack pane)
What am I missing ?
thanks