1
A
回答
3
雖然沒有了上MapView
的頂部繪製直線,折線或多邊形沒有明確的API,該MapLayer
在這裏你可以得出任何的JavaFX Shape
,提供你把它擴展到照顧一層地圖座標。
對於這一點,如果你有一個看看PoiLayer
class,你可以看到,對於任何MapPoint
(經度和緯度定義的),你可以得到一個2D點(x和y所定義的),你可以得出一個在該位置的節點:
MapPoint point = new MapPoint(37.396256,-121.953847);
Node icon = new Circle(5, Color.BLUE);
Point2D mapPoint = baseMap.getMapPoint(point.getLatitude(), point.getLongitude());
icon.setTranslateX(mapPoint.getX());
icon.setTranslateY(mapPoint.getY());
所以,如果你想創建,例如,基於一組點的Polygon
,你有一個Polygon
對象添加到層:
public class PoiLayer extends MapLayer {
private final Polygon polygon;
public PoiLayer() {
polygon = new Polygon();
polygon.setStroke(Color.RED);
polygon.setFill(Color.rgb(255, 0, 0, 0.5));
this.getChildren().add(polygon);
}
@Override
protected void layoutLayer() {
polygon.getPoints().clear();
for (Pair<MapPoint, Node> candidate : points) {
MapPoint point = candidate.getKey();
Node icon = candidate.getValue();
Point2D mapPoint = baseMap.getMapPoint(point.getLatitude(), point.getLongitude());
icon.setTranslateX(mapPoint.getX());
icon.setTranslateY(mapPoint.getY());
polygon.getPoints().addAll(mapPoint.getX(), mapPoint.getY());
}
}
}
現在,在試聽課,打造集mapPoints的,並把它們添加到地圖:
private final List<MapPoint> polPoints = Arrays.asList(
new MapPoint(37.887242, -122.178799), new MapPoint(37.738729, -121.921567),
new MapPoint(37.441704, -121.921567), new MapPoint(37.293191, -122.178799),
new MapPoint(37.441704, -122.436031), new MapPoint(37.738729, -122.436031));
private MapLayer myDemoLayer() {
PoiLayer poi = new PoiLayer();
for (MapPoint mapPoint : polPoints) {
poi.addPoint(mapPoint, new Circle(5, Color.BLUE));
}
return poi;
}
,你將有與它上面的地理定位的多邊形的地圖。
相關問題
- 1. 如何在Box2D中創建橡膠線?
- 2. 使用javascript創建多段線
- 3. 在乳膠中創建符號列表
- 4. 多線程vs創建子進程
- 5. 乳膠多線方程
- 6. 在Google地圖中創建非循環多段線
- 7. 如何在android中創建多線程?
- 8. 在RadioGroup中創建多次片段
- 9. 移動一個MapLayer子元件編程
- 10. 通過在Google地圖中加入多段線創建多邊形
- 11. 從多個mysql點創建谷歌地圖多段線
- 12. Django創建子字段
- 13. 線乳膠表
- 14. 創建多少個線程?
- 15. 如何在C#System.Net.Mail.MailMessage創建多線體
- 16. 在輸入上創建多個字段
- 17. 如何在Google地圖(V3)中爲我的多段線創建方向箭頭?
- 18. 在Titanium中創建線程
- 19. 在DllMain中創建線程?
- 20. 在python中創建線程
- 21. 在XNA中創建曲線
- 22. 在線程中創建PDF
- 23. 在Java中創建線程
- 24. 在Win32中創建線程
- 25. 在C#中創建線程
- 26. 在DLL中創建線程
- 27. 在不創建多線程的情況下創建splashscreen
- 28. 在UITextView中創建段落
- 29. 如何創建一端跟蹤鼠標指針的多段線
- 30. 如何創建沒有自交叉的平行多段線?
謝謝你,優秀的答案和可行的例子:) – Ron