21 |
|
|
22 |
List<Address> alleAdresser; |
List<Address> alleAdresser; |
23 |
|
|
|
/* Mapper mellem db Row ID og adresse noden */ |
|
|
Map<Integer,Address> idAddressMap; |
|
|
|
|
24 |
|
|
25 |
Map<Integer,HundredePctBean> hundredePct; |
Map<Integer,HundredePctBean> hundredePct; |
26 |
|
|
77 |
public void buildSearchStructures() throws SQLException{ |
public void buildSearchStructures() throws SQLException{ |
78 |
searchPostnrVejnavnGadeid = new HashMap<Integer, Map<String,Long>>(); |
searchPostnrVejnavnGadeid = new HashMap<Integer, Map<String,Long>>(); |
79 |
searchGadeidentAdresser = new HashMap<Long, Map<String,Address>>(); |
searchGadeidentAdresser = new HashMap<Long, Map<String,Address>>(); |
80 |
idAddressMap = new HashMap<Integer,Address>(); |
|
|
|
|
81 |
System.out.println("Build -- stage 1"); |
System.out.println("Build -- stage 1"); |
82 |
|
|
83 |
alleAdresser = DatabaseLayer.getAllAdresses(); |
alleAdresser = DatabaseLayer.getAllAdresses(); |
84 |
|
|
85 |
|
/* Mapper mellem db Row ID og adresse noden */ |
86 |
|
Map<Integer,Address> idAddressMap = new HashMap<Integer,Address>( alleAdresser.size() ); |
87 |
|
|
88 |
for (Address a : alleAdresser) { |
for (Address a : alleAdresser) { |
89 |
idAddressMap.put(a.id, a); |
idAddressMap.put(a.id, a); |
90 |
|
|
136 |
orgAddress.extTarget = targetAddress; |
orgAddress.extTarget = targetAddress; |
137 |
orgAddress.extAfstand = eb.afstand; |
orgAddress.extAfstand = eb.afstand; |
138 |
|
|
139 |
orgAddress.rute = calculateExtendedRoute(eb,orgAddress,targetAddress); |
boolean covered = false; |
140 |
|
if (targetAddress.distributor.equals("DAO")) { |
141 |
|
orgAddress.rute = calculateExtendedDaoRoute(eb,orgAddress,targetAddress); |
142 |
|
if (orgAddress.rute != null) { |
143 |
|
orgAddress.koreliste = targetAddress.koreliste; |
144 |
|
covered = true; |
145 |
|
} |
146 |
|
} |
147 |
|
|
148 |
if (orgAddress.rute != null) { |
if (targetAddress.distributor.equals("BK")) { |
149 |
|
orgAddress.koreliste = calculateExtendedBkKoreliste(eb,orgAddress,targetAddress); |
150 |
|
if (orgAddress.koreliste != null) { |
151 |
|
orgAddress.rute = targetAddress.rute; |
152 |
|
covered = true; |
153 |
|
} |
154 |
|
} |
155 |
|
|
156 |
|
if (covered) { //Kopier resten af felterne |
157 |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
|
orgAddress.koreliste = targetAddress.koreliste; |
|
158 |
orgAddress.dbkBane = targetAddress.dbkBane; |
orgAddress.dbkBane = targetAddress.dbkBane; |
159 |
|
|
160 |
/* Sådan gør den gamle service */ |
/* Sådan gør den gamle service */ |
197 |
} |
} |
198 |
|
|
199 |
|
|
200 |
private String calculateExtendedRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
201 |
switch (targetAddress.distributor) { |
|
202 |
case "DAO": |
// /////////////////////////////////////////////////////////////////// |
203 |
// /////////////////////////////////////////////////////////////////// |
switch( eb.transport) { |
204 |
switch( eb.transport) { |
case "cykel": |
205 |
case "cykel": |
if (eb.afstand < 0.151) { |
206 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
207 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 0.501) { |
208 |
} else if (eb.afstand < 0.501) { |
return ".." + targetAddress.rute; |
209 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 0.701) { |
210 |
} else if (eb.afstand < 0.701) { |
return "..." + targetAddress.rute; |
211 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 0.501) { |
212 |
} else if (eb.afstand < 0.501) { |
return "...." + targetAddress.rute; |
213 |
return "...." + targetAddress.rute; |
} |
214 |
} |
break; |
215 |
break; |
case "scooter": |
216 |
case "scooter": |
if (eb.afstand < 0.151) { |
217 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
218 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 0.801) { |
219 |
} else if (eb.afstand < 0.801) { |
return ".." + targetAddress.rute; |
220 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 1.201) { |
221 |
} else if (eb.afstand < 1.201) { |
return "..." + targetAddress.rute; |
222 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 2.101) { |
223 |
} else if (eb.afstand < 2.101) { |
return "...." + targetAddress.rute; |
224 |
return "...." + targetAddress.rute; |
} |
225 |
} |
break; |
226 |
break; |
case "bil": |
227 |
case "bil": |
if (eb.afstand < 0.151) { |
228 |
if (eb.afstand < 0.151) { |
return "." + targetAddress.rute; |
229 |
return "." + targetAddress.rute; |
} else if (eb.afstand < 1.001) { |
230 |
} else if (eb.afstand < 1.001) { |
return ".." + targetAddress.rute; |
231 |
return ".." + targetAddress.rute; |
} else if (eb.afstand < 1.601) { |
232 |
} else if (eb.afstand < 1.601) { |
return "..." + targetAddress.rute; |
233 |
return "..." + targetAddress.rute; |
} else if (eb.afstand < 2.601) { |
234 |
} else if (eb.afstand < 2.601) { |
return "...." + targetAddress.rute; |
|
return "...." + targetAddress.rute; |
|
|
} |
|
|
break; |
|
235 |
} |
} |
236 |
break; |
break; |
237 |
|
} |
|
/////////////////////////////////////////////////////////// |
|
|
|
|
|
case "BK": |
|
|
String inject; |
|
|
if (eb.afstand <= 0.500) { |
|
|
inject = "."; |
|
|
} else { |
|
|
inject = ".."; |
|
|
} |
|
|
return AddressUtils.injectIntoBk(targetAddress.rute, inject); |
|
|
} |
|
238 |
return null; |
return null; |
239 |
} |
} |
240 |
|
|
241 |
|
/////////////////////////////////////////////////////////// |
242 |
|
private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) { |
243 |
|
String inject; |
244 |
|
if (eb.afstand <= 0.500) { |
245 |
|
inject = "."; |
246 |
|
} else { |
247 |
|
inject = ".."; |
248 |
|
} |
249 |
|
return AddressUtils.injectIntoBk(targetAddress.koreliste, inject); |
250 |
|
} |
251 |
|
|
252 |
|
|
253 |
} |
} |