[英]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.