27 |
import dk.daoas.daoadresseservice.beans.SearchResult; |
import dk.daoas.daoadresseservice.beans.SearchResult; |
28 |
import dk.daoas.daoadresseservice.beans.SearchResult.Status; |
import dk.daoas.daoadresseservice.beans.SearchResult.Status; |
29 |
import dk.daoas.daoadresseservice.db.DatabaseLayer; |
import dk.daoas.daoadresseservice.db.DatabaseLayer; |
30 |
|
import dk.daoas.daoadresseservice.util.DaoUtils; |
31 |
import dk.daoas.daoadresseservice.util.DeduplicateHelper; |
import dk.daoas.daoadresseservice.util.DeduplicateHelper; |
32 |
import dk.daoas.daoadresseservice.util.NaturalOrderComparator; |
import dk.daoas.daoadresseservice.util.NaturalOrderComparator; |
33 |
|
|
111 |
} |
} |
112 |
|
|
113 |
// LookupStreetname er en indkapsling af alm + levenstein + google + osm |
// LookupStreetname er en indkapsling af alm + levenstein + google + osm |
114 |
Integer gadeident = lookupStretname(request, result, helperSearchKey); |
Integer gadeident = lookupStretname(request, result, helperSearchKey, true); |
115 |
|
|
116 |
|
|
117 |
/* |
/* |
118 |
* Hvis der ikke er direkte hits, prøver vi at skære op til 3 ord vejnavn |
* Hvis der ikke er direkte hits, prøver vi at skære ord af vejnavn |
119 |
* |
* |
120 |
*Denne sektion er MEGET experimental da den øger antallet af kald til google/OSM væsentligt |
* <strike>Denne sektion er MEGET experimental da den øger antallet af kald til google/OSM væsentligt</strike>*/ |
121 |
if (gadeident == null) { |
if (gadeident == null) { |
122 |
|
final int MAX_TRIES = 4; |
123 |
|
|
124 |
String vejnavnParts[] = request.vejnavn.split(" "); |
String vejnavnParts[] = request.vejnavn.split(" "); |
125 |
|
|
126 |
for (int i=1; i<=3 && i<vejnavnParts.length; i++) { |
for (int i=1; i<=MAX_TRIES && i<vejnavnParts.length; i++) { |
127 |
String subVejnavn = DaoUtils.joinHelper(vejnavnParts, i); |
String subVejnavn = DaoUtils.joinHelper(vejnavnParts, i); |
128 |
|
|
129 |
request.vejnavn = subVejnavn; |
request.vejnavn = subVejnavn; |
130 |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
131 |
|
|
132 |
gadeident = lookupStretname(request, result, helperSearchKey); |
gadeident = lookupStretname(request, result, helperSearchKey, false);//prøv opslag MEN UDEN GOOGLE/OSM !!! |
133 |
|
|
134 |
//hvis vi fandt vejen ud fra substrengen |
//hvis vi fandt vejen ud fra substrengen |
135 |
if (gadeident != null) { |
if (gadeident != null) { |
140 |
request.vejnavn = result.splitResult.vej; |
request.vejnavn = result.splitResult.vej; |
141 |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
142 |
} |
} |
143 |
}*/ |
} |
144 |
|
|
145 |
|
|
146 |
|
|
191 |
} |
} |
192 |
|
|
193 |
|
|
194 |
private Integer lookupStretname(SearchRequest request, SearchResult result, String helperSearchKey) { |
private Integer lookupStretname(SearchRequest request, SearchResult result, String helperSearchKey, boolean useExternal) { |
195 |
Integer gadeident = request.streetNames.get(result.vasketVejnavn); |
Integer gadeident = request.streetNames.get(result.vasketVejnavn); |
196 |
|
|
197 |
|
|
210 |
|
|
211 |
// Brug OpenStreetMap før vi prøver google |
// Brug OpenStreetMap før vi prøver google |
212 |
// For google har en request limit, det har OSM ikke! |
// For google har en request limit, det har OSM ikke! |
213 |
if ( gadeident == null) { |
if ( gadeident == null && useExternal) { |
214 |
String vej = osmHelper.proposeStreetName(request, result); |
String vej = osmHelper.proposeStreetName(request, result); |
215 |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
216 |
} |
} |
217 |
|
|
218 |
if ( gadeident == null) { |
if ( gadeident == null && useExternal) { |
219 |
String vej = googleHelper.proposeStreetName(request, result); |
String vej = googleHelper.proposeStreetName(request, result); |
220 |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
gadeident = helperWrapper(vej, request.streetNames, helperSearchKey); |
221 |
} |
} |