152 |
|
|
153 |
/* |
/* |
154 |
* Hvis der ikke er direkte hits, prøver vi at skære ord af vejnavn |
* Hvis der ikke er direkte hits, prøver vi at skære ord af vejnavn |
155 |
* |
**/ |
|
* <strike>Denne sektion er MEGET experimental da den øger antallet af kald til google/OSM væsentligt</strike>*/ |
|
156 |
if (gadeident == null) { |
if (gadeident == null) { |
157 |
final int MAX_TRIES = 4; |
final int MAX_TRIES = 4; |
158 |
|
|
285 |
|
|
286 |
|
|
287 |
// Brug OpenStreetMap før vi prøver google |
// Brug OpenStreetMap før vi prøver google |
288 |
// For google har en request limit, det har OSM ikke! |
// google har en hard request limit, men OSM har en fair usage policy! |
289 |
if ( gadeident == null && useExternal) { |
if ( gadeident == null && useExternal) { |
290 |
String vej = osmHelper.proposeStreetName(request, result); |
String vej = osmHelper.proposeStreetName(request, result); |
291 |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
447 |
for (ExtendedBean eb : extDao) { |
for (ExtendedBean eb : extDao) { |
448 |
|
|
449 |
Address orgAddress = idAddressMap.get(eb.orgId); |
Address orgAddress = idAddressMap.get(eb.orgId); |
450 |
if (orgAddress == null) |
if (orgAddress == null) { |
451 |
continue; |
continue; |
452 |
|
} |
453 |
|
|
454 |
/*if (orgAddress.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) { |
/*if (orgAddress.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) { |
455 |
//kan være at adressen er blevet markeret dækket og - find-nærmeste data ikke er opdateret i mellemtiden |
//kan være at adressen er blevet markeret dækket og - find-nærmeste data ikke er opdateret i mellemtiden |
472 |
continue; |
continue; |
473 |
} |
} |
474 |
|
|
|
orgAddress.extTarget = targetAddress; |
|
|
orgAddress.extAfstand = eb.afstand; |
|
475 |
|
|
476 |
boolean covered = false; |
|
477 |
|
short modifyCounter = 0; |
478 |
|
|
479 |
if (targetAddress.distributor.equals("DAO")) { |
if (targetAddress.distributor.equals("DAO")) { |
480 |
orgAddress.routingMandag.rute = calculateExtendedDaoRoute(eb, targetAddress.routingMandag); |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingMandag, targetAddress.routingMandag, ruteHelper); |
481 |
orgAddress.routingMandag.rute = ruteHelper.getInstance(orgAddress.routingMandag.rute); |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingTirsdag, targetAddress.routingTirsdag, ruteHelper); |
482 |
|
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingOnsdag, targetAddress.routingOnsdag, ruteHelper); |
483 |
if (orgAddress.routingMandag.rute != null) { |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingTorsdag, targetAddress.routingTorsdag, ruteHelper); |
484 |
orgAddress.routingMandag.koreliste = targetAddress.routingMandag.koreliste; |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingFredag, targetAddress.routingFredag, ruteHelper); |
485 |
covered = true; |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingLordag, targetAddress.routingLordag, ruteHelper); |
486 |
} |
modifyCounter += updateRoutingExtendedDAO(eb, orgAddress.routingSondag, targetAddress.routingSondag, ruteHelper); |
487 |
} |
} |
488 |
|
|
489 |
if (targetAddress.distributor.equals("BK")) { |
if (targetAddress.distributor.equals("BK")) { |
490 |
orgAddress.routingMandag.koreliste = calculateExtendedBkKoreliste(eb, targetAddress.routingMandag); |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingMandag, targetAddress.routingMandag, ruteHelper); |
491 |
orgAddress.routingMandag.koreliste = korelisteHelper.getInstance(orgAddress.routingMandag.koreliste); |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingTirsdag, targetAddress.routingTirsdag, ruteHelper); |
492 |
|
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingOnsdag, targetAddress.routingOnsdag, ruteHelper); |
493 |
if (orgAddress.routingMandag.koreliste != null) { |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingTorsdag, targetAddress.routingTorsdag, ruteHelper); |
494 |
orgAddress.routingMandag.rute = targetAddress.routingMandag.rute; |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingFredag, targetAddress.routingFredag, ruteHelper); |
495 |
covered = true; |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingLordag, targetAddress.routingLordag, ruteHelper); |
496 |
} |
modifyCounter += updateRoutingExtendedBK(eb, orgAddress.routingSondag, targetAddress.routingSondag, ruteHelper); |
497 |
|
} |
498 |
|
|
499 |
|
|
500 |
|
if (modifyCounter > 0) { |
501 |
|
orgAddress.extTarget = targetAddress; |
502 |
|
orgAddress.extAfstand = eb.afstand; |
503 |
} |
} |
504 |
|
|
505 |
if (covered) { //Kopier resten af felterne |
if (modifyCounter>0 && orgAddress.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET) { //Kopier resten af felterne |
506 |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET; |
507 |
orgAddress.dbkBane = targetAddress.dbkBane; |
orgAddress.dbkBane = targetAddress.dbkBane; |
508 |
|
|
541 |
} |
} |
542 |
|
|
543 |
short modifyCounter = 0; |
short modifyCounter = 0; |
544 |
modifyCounter += update100PctRouting(bean, addr.routingMandag); |
modifyCounter += updateRouting100Pct(bean, addr.routingMandag); |
545 |
modifyCounter += update100PctRouting(bean, addr.routingTirsdag); |
modifyCounter += updateRouting100Pct(bean, addr.routingTirsdag); |
546 |
modifyCounter += update100PctRouting(bean, addr.routingOnsdag); |
modifyCounter += updateRouting100Pct(bean, addr.routingOnsdag); |
547 |
modifyCounter += update100PctRouting(bean, addr.routingTorsdag); |
modifyCounter += updateRouting100Pct(bean, addr.routingTorsdag); |
548 |
modifyCounter += update100PctRouting(bean, addr.routingFredag); |
modifyCounter += updateRouting100Pct(bean, addr.routingFredag); |
549 |
modifyCounter += update100PctRouting(bean, addr.routingLordag); |
modifyCounter += updateRouting100Pct(bean, addr.routingLordag); |
550 |
modifyCounter += update100PctRouting(bean, addr.routingSondag); |
modifyCounter += updateRouting100Pct(bean, addr.routingSondag); |
551 |
|
|
552 |
|
|
553 |
if (addr.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET && modifyCounter>0) { |
if (addr.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET && modifyCounter>0) { |
603 |
System.out.println("Build Completed"); |
System.out.println("Build Completed"); |
604 |
|
|
605 |
} |
} |
606 |
|
|
607 |
|
|
608 |
public short update100PctRouting(HundredePctBean bean, RoutingInfo routing) { |
public short updateRoutingExtendedBK(ExtendedBean bean, RoutingInfo source, RoutingInfo target, DeduplicateHelper<String> ruteHelper) { |
609 |
|
if (source.rute != null) { |
610 |
|
return 0; |
611 |
|
} |
612 |
|
|
613 |
|
source.rute = calculateExtendedBkRoute(bean, target); |
614 |
|
source.rute = ruteHelper.getInstance(source.rute); |
615 |
|
|
616 |
|
if (source.rute != null) { |
617 |
|
source.koreliste = target.koreliste; |
618 |
|
return 1; |
619 |
|
} else { |
620 |
|
return 0; |
621 |
|
} |
622 |
|
} |
623 |
|
|
624 |
|
public short updateRoutingExtendedDAO(ExtendedBean bean, RoutingInfo source, RoutingInfo target, DeduplicateHelper<String> ruteHelper) { |
625 |
|
if (source.rute != null) { |
626 |
|
return 0; |
627 |
|
} |
628 |
|
|
629 |
|
source.rute = calculateExtendedDaoRoute(bean, target); |
630 |
|
source.rute = ruteHelper.getInstance(source.rute); |
631 |
|
|
632 |
|
if (source.rute != null) { |
633 |
|
source.koreliste = target.koreliste; |
634 |
|
return 1; |
635 |
|
} else { |
636 |
|
return 0; |
637 |
|
} |
638 |
|
|
639 |
|
} |
640 |
|
|
641 |
|
public short updateRouting100Pct(HundredePctBean bean, RoutingInfo routing) { |
642 |
if (routing.rute == null) { |
if (routing.rute == null) { |
643 |
routing.rute = bean.rute; |
routing.rute = bean.rute; |
644 |
routing.koreliste = bean.koreliste; |
routing.koreliste = bean.koreliste; |
667 |
if (targetRoute.rute == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel |
if (targetRoute.rute == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel |
668 |
return null; |
return null; |
669 |
} |
} |
670 |
|
|
671 |
|
if (eb.transport == null) { |
672 |
|
System.out.println("NULL transport type ved rute " + targetRoute.rute ); |
673 |
|
return null; |
674 |
|
} |
675 |
|
|
676 |
// /////////////////////////////////////////////////////////////////// |
// /////////////////////////////////////////////////////////////////// |
677 |
switch( eb.transport) { |
switch( eb.transport) { |
723 |
} |
} |
724 |
|
|
725 |
/////////////////////////////////////////////////////////// |
/////////////////////////////////////////////////////////// |
726 |
private String calculateExtendedBkKoreliste(ExtendedBean eb, RoutingInfo targetRoute) { |
|
727 |
|
|
728 |
|
private String calculateExtendedBkRoute(ExtendedBean eb, RoutingInfo targetRoute) { |
729 |
if (targetRoute.rute == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel |
if (targetRoute.rute == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel |
730 |
return null; |
return null; |
731 |
} |
} |
736 |
} else { |
} else { |
737 |
inject = ".."; |
inject = ".."; |
738 |
} |
} |
739 |
return AddressUtils.injectIntoBk(targetRoute.koreliste, inject); |
return inject + targetRoute.rute; |
740 |
} |
} |
741 |
|
|
742 |
|
|