package map;
import java.io.*;
public class pro {
String[] data=new String[30000];
int s,datanumber;
double[] lon=new double[30000];
double[] lat=new double[30000];
String[] city=new String[30000];
int[] point=new int[60000];
String[] code=new String[3000];
int[] pop=new int[3000];
int[] big=new int[3000];
String[][] code_big=new String[21][101];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
big[ 1 ]= 1100 ;
big[ 2 ]= 4100 ;
big[ 3 ]= 11100 ;
big[ 4 ]= 12100 ;
big[ 5 ]= 14100 ;
big[ 6 ]= 14130 ;
big[ 7 ]= 14150 ;
big[ 8 ]= 15100 ;
big[ 9 ]= 22100 ;
big[ 10 ]= 22130 ;
big[ 11 ]= 23100 ;
big[ 12 ]= 26100 ;
big[ 13 ]= 27100 ;
big[ 14 ]= 27140 ;
big[ 15 ]= 28100 ;
big[ 16 ]= 33100 ;
big[ 17 ]= 34100 ;
big[ 18 ]= 40100 ;
big[ 19 ]= 40130 ;
big[ 20 ]= 43100 ;
for(s=1;s<21;s++){
int c1=big[s];
big[s]=c1;
}
int sx;
for(s=1;s<21;s++){
for(sx=0;sx<30;sx++){
int m1=big[s]+sx;
code_big[s][sx]=""+m1;
if(code_big[s][sx].length()==4)code_big[s][sx]="0"+code_big[s][sx];
}
}
readx("a.csv");
for(s=2;s<datanumber+1;s++){
data[s]=rev_csv(data[s]);
String[] x=data[s].split(",");
code[s-1]=x[0];
pop[s-1]=(int)(num(x[3])/num(x[2]));
System.out.println(pop[s-1]);
}
int number=datanumber-1;
readx("map.csv");
for(s=2;s<datanumber+1;s++){
data[s]=rev_csv(data[s]);
String[] x=data[s].split(",");
String n1=x[1].replace("\"","");
lat[s-1]=num(n1);
n1=x[0].replace("\"","");;
lon[s-1]=num(n1);
city[s-1]=x[3];
}
datanumber=datanumber-1;
for(s=1;s<datanumber+1;s++){
point[s]=0;
for(sx=1;sx<number+1;sx++){
if(city[s].equals(code[sx]))point[s]=pop[sx];
}
}
for(s=1;s<datanumber+1;s++){
if(point[s]==0){
int m,mx;
for(m=1;m<21;m++){
int p1=0;
for(sx=1;sx<number+1;sx++){
if(code[sx].equals(code_big[m][0]))p1=pop[sx];
}
for(mx=1;mx<30;mx++){
if(city[s].equals(code_big[m][mx]))point[s]=p1;
}
}
}
}
graph sub=new graph();
sub.datanumber=datanumber;
sub.lon=lon;
sub.lat=lat;
sub.point=point;
sub.makedata("map.jpg");
System.out.println(datanumber);
}
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;
}
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;
}
}
package map;
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 datanumber;
String[] dic=new String[20000];
double[] lon=new double[70000];
double[] lat=new double[70000];
int[] delta=new int[6000];
int[] point=new int[60000];
void makedata(String file){
int w1,h1,mx,nx;
w1=500;
h1=500;
BufferedImage off = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_BGR);
Graphics offsc = off.getGraphics();
offsc.setColor(Color.WHITE);
offsc.fillRect(0,0,500,500);
double maxy,maxx,minx,miny;
maxy=0;
maxx=0;
int sx,s;
for(s=1;s<datanumber+1;s++){
if(lon[s]>maxy)maxy=lon[s];
if(lat[s]>maxx)maxx=lat[s];
}
minx=999;
miny=999;
for(s=1;s<datanumber+1;s++){
if(lon[s]<miny)miny=lon[s];
if(lat[s]<minx)minx=lat[s];
}
int x1,y1;
for(s=1;s<datanumber+1;s++){
x1=(int)(500*(lat[s]-minx)/(maxx-minx));
y1=(int)(500*(lon[s]-miny)/(maxy-miny));
offsc.setColor(Color.GREEN);
if(point[s]>2500)offsc.setColor(Color.YELLOW);
if(point[s]>3000)offsc.setColor(Color.PINK);
if(point[s]>3500)offsc.setColor(Color.RED);
offsc.fillRect(x1,500-y1,1,1);
}
offsc.dispose();
try {
ImageIO.write(off, "jpeg", new File(file));
} catch (IOException exception) { exception.printStackTrace(); }
}
}
最終更新:2016年11月14日 09:51