えcgppp

package readcsv;
 
import tool.*;
import java.io.*;
import echelon.echelon;
 
public class pro {
 
     int datanumber;
    String[] data=new String[500000];
   String[] code=new String[5000];
     double[] point=new double[5000];
     double[] v=new double[5000];
     int number;
 
       int[] pointx=new int[5000];
 
      String[] city=new String[5000];
      String[] city_map=new String[5000];
      int[] number_dir=new int[2001];
int[][] dir=new int[2001][21];
int number_g;
int[][] group=new int[2001][2001];
int[] number_group=new int[2001];
int dicnumber;
 int[] live=new int[2001];
 
   double[][] lon=new double[5000][11];
   double[][] lat=new double[5000][11];
 
    public static void main(String[] args) {
        pro r=new pro();
    }
    pro(){
 
 
         readfile sub=new readfile();
        sub.makedata("data.csv","UTF-8");
        data=sub.data;
        datanumber=sub.datanumber;
        int s;
 
           for(s=13;s<datanumber+1;s++){
   data[s]=rev_csv(data[s]);
   String[] x=data[s].split(",");     
   code[s]=x[0];
   double v1=num(x[2]);
     double v2=num(x[3]);
    if(v1>0)v[s]=v2/v1;
           }
 
 
 
 
        readfile sub2=new readfile();
        sub2.makedata("citycode.csv","UTF-8");
        data=sub2.data;
        number=sub2.datanumber;   
 
 
 
 
    for(s=2;s<number+1;s++){
    city[s-1]=data[s];        
    }
 
    number=number-1;
 
    int sx;
    for(s=1;s<number+1;s++){
    point[s]=0;
    for(sx=13;sx<datanumber+1;sx++){
    if(city[s].equals(code[sx]))point[s]=v[sx];    
    }
    } 
 
    readfile sub3=new readfile();
        sub3.makedata("link.csv","UTF-8");
        data=sub3.data;
        datanumber=sub3.datanumber;   
 
 
     for(s=2;s<datanumber+1;s++){
    String[] x=data[s].split(",");
    int s1=numx(x[0]);
    int s2=numx(x[1]);
    int s3=numx(x[2]);
    dir[s1][s2]=s3;
    number_dir[s1]=s2;
     } 
 
 
     echelon sub5=new echelon();
    sub5.dir=dir;
    sub5.number_dir=number_dir;
    sub5.point=point;
    sub5.number=number;
    sub5.makedata();
    group=sub5.group;
    number_group=sub5.number_group;
    number_g=sub5.number_g;
 
 System.out.println(number_g);    
 
 int num=0;
 for(int g2=1;g2<number_g+1;g2++){
 live[g2]=100;
 check(g2);
 int h=0;
 if(count_size(g2)>10)h=h+1;
 if(num==0)h=h+1;
 if(h==2)num=g2;
 }
 
 System.out.println(num);
 
 for(s=1;s<number_g+1;s++){
 live[s]=0;
 }
 
 for(int g2=1;g2<num+1;g2++){
 live[g2]=100;
 check(g2);
 }
 
 int[] delta=new int[10000];
 
 for( s=1;s<number_g+1;s++){
 for(sx=1;sx<number_group[s]+1;sx++){
 int s1=group[s][sx];    
 int h=0;
 if(number_group[s]>9)h=h+1;
 if(live[s]>50)h=h+1;
 if(h==2)delta[s1]=100;
 }
 }
 
 
  readx("map.csv");
 
 
 
    for(s=2;s<datanumber+1;s++){
    String[] x=data[s].split(",");    
    int n=Integer.parseInt(x[0]); 
    int m=Integer.parseInt(x[2]);
    lon[n][m]=Double.parseDouble(x[3]);
        lat[n][m]=Double.parseDouble(x[4]);
        city_map[n]=x[1];
   if(city_map[n].length()<5)city_map[n]="0"+city_map[n];
   dicnumber=n;
   }
 
   System.out.println(dicnumber);
 
   for(s=1;s<dicnumber+1;s++){
   pointx[s]=0;
   for(sx=1;sx<number+1;sx++){
   if(city_map[s].equals(city[sx]))pointx[s]=delta[sx];    
   }       
   }
 
 
   graph sub7=new graph();
        sub7.lonx=lon;
        sub7.latx=lat;
        sub7.dicnumber=dicnumber;
        sub7.point=pointx;
        sub7.makedata("map.jpg");
 
 
 
 
    }
 
     int count_size(int g1){
     int sx;
     int   n=0;
     for(sx=1;sx<g1+1;sx++){
     int h=0;
    if(live[sx]>50)h=h+1;
    if(number_group[sx]>10)h=h+1;
    if(h==2)n=n+1;
     }
 
     return n;
     }
 
    int count(int g1){
        int sx,n;
        n=0;
     for(sx=1;sx<g1+1;sx++){
     if(live[sx]>50)n=n+1;
     }
 
    return n;
    }
    void check(int g1){
 
        int sx,tx;
        for(sx=1;sx<g1;sx++){
        for(tx=1;tx<number_group[sx]+1;tx++){
        int s1=group[sx][tx];    
        if(ch_g(g1,s1)>50)live[sx]=0;
        }
        }
 
 
    }
    int ch_g(int g1,int s1){
        int sx;
        int ch=0;
        for(sx=1;sx<number_group[g1]+1;sx++){
        int s2=group[g1][sx];    
        if(s1==s2)ch=100;
        }
        return ch;
    }
 
     int numx(String str){
 
    int nx;
 
    nx=0;
 
 try{
 
    nx=Integer.parseInt(str);
 
 }catch (Exception e) {}
 
 return nx;
 
 
 
}
double num(String str){
 
    double nx;
 
    nx=0;
 
 try{
 
    nx=Double.parseDouble(str);
 
 }catch (Exception e) {}
 
 return nx;
 
 
 
}
 
     String rev_csv(String str){
 
        String str5=str;
        int px=str5.indexOf("\"");
 
 
 
        while(px>-1){
       str5=rev(str5);
       px=str5.indexOf("\"");   
        }
        return str5;
    }
 
    String rev(String str){
 
        int p1=str.indexOf("\"");
        int p2=str.indexOf("\"",p1+1);
 
     String str1=str.substring(0,p1);   
        String str2=str.substring(p1+1,p2);  
        String str3=str.substring(p2+1,str.length());
        str2=str2.replace(",","");
 
        return str1+str2+str3;
 
    }
 void readx(String file){
 
String str;
BufferedReader br;  
int s;
s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"SJIS"));  
while((str = br.readLine()) != null) {  
s=s+1;
data[s]=str;  
}
br.close();
} catch (IOException e) {System.out.println(e);}  
 
datanumber=s;
 
} 
 
 
}
 
 
 readcsv;
 
import java.awt.Polygon;
import java.awt.*; 
import java.awt.Color;   
import java.awt.image.*;   
import java.awt.image.BufferedImage;   
import java.io.*;   
import javax.imageio.ImageIO;   
import java.awt.Polygon;
import java.util.HashMap;
 
class graph{
 
 
       int number_adm;
    int h=700;
    int w=700;
 
 
 
String maxg;  
 
 
 
 
 double z;
 
 int dicnumber;
 String[] dic=new String[20000];
  double[][] lonx=new double[5000][501];
   double[][] latx=new double[5000][501];
     int[] point=new int[6000];
 
 
void makedata(String file){
 
    int w1,h1,mx,nx;
 
 
w1=700;
h1=700;    
BufferedImage off = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_BGR);   
Graphics offsc = off.getGraphics();  
 
offsc.setColor(Color.WHITE);
offsc.fillRect(0,0,700,700);
 
double maxy,maxx,minx,miny;
maxy=0;
maxx=0;
int sx,s;
for(s=1;s<dicnumber+1;s++){
for(sx=1;sx<11;sx++){
if(lonx[s][sx]>maxy)maxy=lonx[s][sx];
if(latx[s][sx]>maxx)maxx=latx[s][sx];
}}
 
minx=99999;
miny=99999;
for(s=1;s<dicnumber+1;s++){
for(sx=1;sx<11;sx++){
if(lonx[s][sx]<miny)miny=lonx[s][sx];
if(latx[s][sx]<minx)minx=latx[s][sx];
}}
 
int x1,y1;
 
for(s=1;s<dicnumber+1;s++){
int[] px=new int[600];
int[] py=new int[600];
 
for(sx=1;sx<11;sx++){
px[sx-1]=(int)(500*(latx[s][sx]-minx)/(maxx-minx));
py[sx-1]=500-(int)((500*(lonx[s][sx]-miny)/(maxy-miny)));
}
offsc.setColor(Color.BLUE); 
 
if(point[s]>50)offsc.setColor(Color.RED); 
Polygon po = new Polygon(px,py,10);
offsc.fillPolygon(po);
}
 
offsc.dispose(); 
 
try { 
ImageIO.write(off, "jpeg", new File(file)); 
} catch (IOException exception) { exception.printStackTrace(); }     
}   
 
}
 
最終更新:2016年06月01日 07:38