package net.osmand.search.core;
import java.util.Collection;
import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.data.LatLon;
import net.osmand.util.MapUtils;
public class SearchResult {
// search phrase that makes search result valid
public SearchPhrase requiredSearchPhrase;
public Object object;
public ObjectType objectType;
public BinaryMapIndexReader file;
public double priority;
public double priorityDistance;
public String wordsSpan ;
public SearchResult parentSearchResult;
public Collection<String> otherWordsMatch = null;
public boolean firstUnknownWordMatches = true;
public SearchResult(SearchPhrase sp) {
this.requiredSearchPhrase = sp;
}
public int getFoundWordCount() {
int inc = 0;
if(firstUnknownWordMatches) {
inc = 1;
}
if(otherWordsMatch != null) {
inc += otherWordsMatch.size();
}
if(parentSearchResult != null) {
inc += parentSearchResult.getFoundWordCount();
}
return inc;
}
public double getSearchDistance(LatLon location) {
double distance = 0;
if (location != null && this.location != null) {
distance = MapUtils.getDistance(location, this.location);
}
return priority - 1 / (1 + priorityDistance * distance);
}
public double getSearchDistance(LatLon location, double pd) {
double distance = 0;
if (location != null && this.location != null) {
distance = MapUtils.getDistance(location, this.location);
}
return priority - 1 / (1 + pd * distance);
}
public LatLon location;
public int preferredZoom = 15;
public String localeName;
public String alternateName;
public Collection<String> otherNames;
public String localeRelatedObjectName;
public Object relatedObject;
public double distRelatedObjectName;
}