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 |
|
|
67 |
SearchRequest request = new SearchRequest(); |
SearchRequest request = new SearchRequest(); |
68 |
SearchResult result = new SearchResult(); |
SearchResult result = new SearchResult(); |
69 |
|
|
|
|
|
|
String helperSearchKey = ""; |
|
70 |
|
|
71 |
try { |
try { |
72 |
request.postnr = Short.parseShort(postnrStr); |
request.postnr = Short.parseShort(postnrStr); |
109 |
} |
} |
110 |
|
|
111 |
// LookupStreetname er en indkapsling af alm + levenstein + google + osm |
// LookupStreetname er en indkapsling af alm + levenstein + google + osm |
112 |
Integer gadeident = lookupStretname(request, result, helperSearchKey); |
Integer gadeident = lookupStretname(request, result, true); |
113 |
|
|
114 |
|
|
115 |
/* |
/* |
116 |
* 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 |
117 |
* |
* |
118 |
*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>*/ |
119 |
if (gadeident == null) { |
if (gadeident == null) { |
120 |
|
final int MAX_TRIES = 4; |
121 |
|
|
122 |
String vejnavnParts[] = request.vejnavn.split(" "); |
String vejnavnParts[] = request.vejnavn.split(" "); |
123 |
|
|
124 |
for (int i=1; i<=3 && i<vejnavnParts.length; i++) { |
for (int i=1; i<=MAX_TRIES && i<vejnavnParts.length; i++) { |
125 |
String subVejnavn = DaoUtils.joinHelper(vejnavnParts, i); |
String subVejnavn = DaoUtils.joinHelper(vejnavnParts, i); |
126 |
|
|
127 |
request.vejnavn = subVejnavn; |
request.vejnavn = subVejnavn; |
128 |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
129 |
|
|
130 |
gadeident = lookupStretname(request, result, helperSearchKey); |
gadeident = lookupStretname(request, result, false);//prøv opslag MEN UDEN GOOGLE/OSM !!! |
131 |
|
|
132 |
//hvis vi fandt vejen ud fra substrengen |
//hvis vi fandt vejen ud fra substrengen |
133 |
if (gadeident != null) { |
if (gadeident != null) { |
138 |
request.vejnavn = result.splitResult.vej; |
request.vejnavn = result.splitResult.vej; |
139 |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
result.vasketVejnavn = AddressUtils.vaskVejnavn( request.vejnavn ); |
140 |
} |
} |
141 |
}*/ |
} |
142 |
|
|
143 |
|
|
144 |
|
|
189 |
} |
} |
190 |
|
|
191 |
|
|
192 |
private Integer lookupStretname(SearchRequest request, SearchResult result, String helperSearchKey) { |
private Integer lookupStretname(SearchRequest request, SearchResult result, boolean useExternal) { |
193 |
|
String helperSearchKey = ""; |
194 |
|
|
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 |
} |
} |