Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JUNG中使用GIS坐标绘制顶点_Java_Gis_Jung - Fatal编程技术网

Java 如何在JUNG中使用GIS坐标绘制顶点

Java 如何在JUNG中使用GIS坐标绘制顶点,java,gis,jung,Java,Gis,Jung,我尝试使用GIS纬度和经度值绘制顶点,并使用静态布局进行布局。问题是我的值是负值,比如: 40.742151 -73.640223 43.122041 -77.622466 32.812091 -96.840159 布局顶点的最佳方法是什么?现在我做的是: Transformer<String, Point2D> locationTransformer = new Transformer<String, Point2D>() { @Override

我尝试使用GIS纬度和经度值绘制顶点,并使用静态布局进行布局。问题是我的值是负值,比如:

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);
变压器位置变压器=新变压器(){
@凌驾
公共点2D变换(字符串npi){
顶点医生;
国际单项体育联合会(康纳斯基医生协会(npi)){
医生=医生。获取(npi);
}否则{
医生=推荐医生。获取(npi);
}
返回新的Point2D.Double((Double)doctor.getXcor(i),(Double)doctor.getYcor(i));
}
};
静态布局=新的静态布局(g,定位变压器);
尺寸首选尺寸=新尺寸(400400);
布局。设置大小(首选大小);

然而,结果并不好:只显示了很少的节点,并且它们在图像的左上角部分可见。欢迎任何帮助

您需要将GIS坐标转换为要渲染的坐标系。在本例中,这是一个矩形,其X和Y值从0到400

例如,您可以选择将lat=0、long=0映射到区域的中间(200200)

有许多不同的地图投影(),您需要找出哪一个最适合您的需要。(例如,如果您的点都位于欧洲,则您的变换可能不需要能够显示地球表面上的所有点。)


您可能会发现此演示非常有用:

您需要将GIS坐标转换为正在渲染的坐标系。在本例中,这是一个矩形,其X和Y值从0到400

例如,您可以选择将lat=0、long=0映射到区域的中间(200200)

有许多不同的地图投影(),您需要找出哪一个最适合您的需要。(例如,如果您的点都位于欧洲,则您的变换可能不需要能够显示地球表面上的所有点。)


您可能会发现此演示非常有用:

请添加更具体的问题陈述-您所说的“不好”是什么意思?请添加更具体的问题陈述-您所说的“不好”是什么意思?所有这些坐标都与纽约州有关,我正在研究示例,但我不能真正理解我需要从样本中挑选什么来进行我需要的转换。。。它是LatLonPixelTransformer类吗?LatLonPixelTransformer至少是一种实现这种转换的方法的指南,是的。输入可能不同(它们是格式化字符串,不清楚它们是否将东/西视为正/负),因此您必须计算出细节,如果您的所有输入都在纽约,您可能会希望适当地缩放。所有这些坐标都与纽约州有关,我正在研究示例,但我不能真正理解我需要从样本中挑选什么来进行我需要的转换。。。它是LatLonPixelTransformer类吗?LatLonPixelTransformer至少是一种实现这种转换的方法的指南,是的。输入可能不同(它们是格式化的字符串,不清楚它们是否将东/西视为正/负),因此您必须确定细节,如果您的所有输入都在纽约,您可能希望适当地进行缩放。