簡體   English   中英

如何在JUNG中使用GIS坐標繪制頂點

[英]How to plot vertices using GIS coordinates in JUNG

我正在嘗試使用GIS緯度和經度值繪制頂點,並使用StaticLayout對其進行布局。 問題是我的值帶有負值,例如:

40.742151  -73.640223
43.122041  -77.622466
32.812091  -96.840159

布置頂點的最佳方法是什么? 現在我的行​​為是這樣的:

Transformer<String, Point2D> locationTransformer = new Transformer<String, Point2D>() {
    @Override
    public Point2D transform(String npi) {
       Vertex doctor;
       if (doctors.containsKey(npi)) {
           doctor = doctors.get(npi);
       } else {
           doctor = referredDoctors.get(npi);
       }
       return new Point2D.Double((double) doctor.getXcor(i), (double) doctor.getYcor(i));
    }
};
StaticLayout<String, String> layout = new StaticLayout<>(g, locationTransformer);
Dimension preferredSize = new Dimension(400, 400);
layout.setSize(preferredSize);

但是結果並不理想:僅顯示了很少的節點,並且它們在圖像的左上角部分可見。 任何幫助都超過了歡迎。

您將需要將GIS坐標轉換為要渲染的坐標系。在這種情況下,這是一個矩形,其X和Y值從0到400。

因此,例如,您可能選擇將lat = 0,long = 0映射到區域的中間(200,200)。

有許多不同的地圖投影( https://en.wikipedia.org/wiki/Map_projection ),您需要確定哪種最適合您的需求。 (例如,如果您的點全部在歐洲,則您的轉換可能不需要能夠顯示地球表面上的所有點。)

您可能會發現此演示很有用: http : //jung.sourceforge.net/site/apidocs/edu/uci/ics/jung/samples/WorldMapGraphDemo.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM