34 |
static final String KML = "application/vnd.google-earth.kml"; |
static final String KML = "application/vnd.google-earth.kml"; |
35 |
static final String KMZ = "application/vnd.google-earth.kmz"; |
static final String KMZ = "application/vnd.google-earth.kmz"; |
36 |
|
|
37 |
Map<String,String> cache = new TimeoutMap<String,String>(2*60*1000); |
Map<String,String> cache = new TimeoutMap<String,String>(30*60*1000); |
38 |
|
|
39 |
class RequestPosition { |
class RequestPosition { |
40 |
public String ip; |
public String ip; |
148 |
sb.append( "<Folder>\n"); |
sb.append( "<Folder>\n"); |
149 |
sb.append( " <name>" ).append(color).append("</name>\n"); |
sb.append( " <name>" ).append(color).append("</name>\n"); |
150 |
sb.append( " <open>0</open>\n" ); |
sb.append( " <open>0</open>\n" ); |
|
sb.append( " <description>Count=").append(list.size()).append("</description>\n"); |
|
151 |
|
|
152 |
for(RequestPosition current : list) { |
for(RequestPosition current : list) { |
153 |
sb.append( " <Placemark>\n" ); |
sb.append( " <Placemark>\n" ); |
154 |
sb.append( " <styleUrl>#" + color + "</styleUrl>\n" ); |
sb.append( " <styleUrl>#").append(color).append("</styleUrl>\n" ); |
155 |
sb.append( " <description>IP=" + current.ip + " Time=" + current.time + "</description>\n" ); |
sb.append( " <description>IP=").append(current.ip).append(" Time=").append(current.time).append("</description>\n" ); |
156 |
sb.append( " <Point><coordinates>" + current.lng + "," + current.lat + ",0</coordinates></Point>\n" ); |
sb.append( " <Point><coordinates>").append(current.lng).append(",").append(current.lat).append(",0</coordinates></Point>\n" ); |
157 |
sb.append( " </Placemark>\n" ); |
sb.append( " </Placemark>\n" ); |
158 |
} |
} |
159 |
|
|
161 |
} |
} |
162 |
|
|
163 |
protected String formatXml(PositionContainer positions) { |
protected String formatXml(PositionContainer positions) { |
164 |
StringBuilder sb = new StringBuilder(); |
StringBuilder sb = new StringBuilder(1024*1024); |
165 |
|
|
166 |
sb.append( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ); |
sb.append( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ); |
167 |
sb.append( "<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n" ); |
sb.append( "<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n" ); |
168 |
sb.append( "<Document>\n" ); |
sb.append( "<Document>\n" ); |
169 |
|
sb.append( " <description><![CDATA["); |
170 |
|
sb.append( " Green:").append(positions.green.size()).append("<br/>\n"); |
171 |
|
sb.append( " Yellow:").append(positions.yellow.size()).append("<br/>\n"); |
172 |
|
sb.append( " Red:").append(positions.red.size()).append("\n"); |
173 |
|
sb.append( " ]]></description>"); |
174 |
|
|
175 |
|
|
176 |
sb.append( " <Style id=\"red\">\n" ); |
sb.append( " <Style id=\"red\">\n" ); |
205 |
|
|
206 |
|
|
207 |
formatPositions(sb, "green", positions.green); |
formatPositions(sb, "green", positions.green); |
208 |
formatPositions(sb, "yello", positions.yellow); |
formatPositions(sb, "yellow", positions.yellow); |
209 |
formatPositions(sb, "red", positions.red); |
formatPositions(sb, "red", positions.red); |
210 |
|
|
211 |
|
|