diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index 330a21c156..60d835dbec 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -29,6 +29,7 @@ import java.util.TreeSet; public class MapPoiTypes { + private static final String OTHER_MAP_CATEGORY = "Other"; private static MapPoiTypes DEFAULT_INSTANCE = null; private static final Log log = PlatformUtil.getLog(MapRenderingTypes.class); private String resourceName; @@ -96,7 +97,7 @@ public class MapPoiTypes { public PoiCategory getOtherMapCategory() { if (otherMapCategory == null) { - otherMapCategory = getPoiCategoryByName("Other", true); + otherMapCategory = getPoiCategoryByName(OTHER_MAP_CATEGORY, true); } return otherMapCategory; } @@ -111,7 +112,8 @@ public class MapPoiTypes { public List getTopVisibleFilters() { List lf = new ArrayList(); - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); if (pc.isTopVisible()) { lf.add(pc); } @@ -131,7 +133,8 @@ public class MapPoiTypes { } public PoiCategory getOsmwiki() { - for (PoiCategory category : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory category = categories.get(i); if (category.isWiki()) { return category; } @@ -167,7 +170,8 @@ public class MapPoiTypes { } public PoiType getPoiTypeByKey(String name) { - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); PoiType pt = pc.getPoiTypeByKeyName(name); if (pt != null && !pt.isReference()) { return pt; @@ -184,7 +188,8 @@ public class MapPoiTypes { } public AbstractPoiType getAnyPoiTypeByKey(String name) { - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); if (pc.getKeyName().equals(name)) { return pc; } @@ -203,7 +208,8 @@ public class MapPoiTypes { public Map getAllTranslatedNames(boolean skipNonEditable) { Map translation = new HashMap(); - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); if (skipNonEditable && pc.isNotEditableOsm()) { continue; } @@ -231,7 +237,8 @@ public class MapPoiTypes { public List getAllTypesTranslatedNames(StringMatcher matcher) { List tm = new ArrayList(); - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); if (pc == otherMapCategory) { continue; } @@ -294,7 +301,7 @@ public class MapPoiTypes { } if (create) { PoiCategory lastCategory = new PoiCategory(this, name, categories.size()); - if (!lastCategory.getKeyName().equals("Other")) { + if (!lastCategory.getKeyName().equals(OTHER_MAP_CATEGORY)) { lastCategory.setTopVisible(true); } addCategory(lastCategory); @@ -353,6 +360,11 @@ public class MapPoiTypes { final Map allTypes = new LinkedHashMap(); final Map> categoryPoiAdditionalMap = new LinkedHashMap>(); final Map> abstractTypeAdditionalCategories = new LinkedHashMap>(); + final Map poiTypesByTag = new LinkedHashMap(); + final Map deprecatedTags = new LinkedHashMap(); + final Map poiAdditionalCategoryIconNames = new LinkedHashMap(); + final List textPoiAdditionals = new ArrayList(); + List categoriesList = new ArrayList<>(); try { XmlPullParser parser = PlatformUtil.newXMLPullParser(); @@ -365,6 +377,8 @@ public class MapPoiTypes { PoiType lastType = null; Set lastTypePoiAdditionalsCategories = new TreeSet(); String lastPoiAdditionalCategory = null; + PoiCategory localOtherMapCategory = new PoiCategory(this, OTHER_MAP_CATEGORY, categoriesList.size()); + categoriesList.add(localOtherMapCategory); while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) { if (tok == XmlPullParser.START_TAG) { String name = parser.getName(); @@ -404,14 +418,17 @@ public class MapPoiTypes { lastCategory.addPoiType(tp); } else if (name.equals("poi_additional")) { if (lastCategory == null) { - lastCategory = getOtherMapCategory(); + lastCategory = localOtherMapCategory; } - PoiType baseType = parsePoiAdditional(parser, lastCategory, lastFilter, lastType, null, null, lastPoiAdditionalCategory); + PoiType baseType = parsePoiAdditional(parser, lastCategory, lastFilter, lastType, null, null, + lastPoiAdditionalCategory, textPoiAdditionals); if ("true".equals(parser.getAttributeValue("", "lang"))) { for (String lng : MapRenderingTypes.langs) { - parsePoiAdditional(parser, lastCategory, lastFilter, lastType, lng, baseType, lastPoiAdditionalCategory); + parsePoiAdditional(parser, lastCategory, lastFilter, lastType, lng, baseType, + lastPoiAdditionalCategory, textPoiAdditionals); } - parsePoiAdditional(parser, lastCategory, lastFilter, lastType, "en", baseType, lastPoiAdditionalCategory); + parsePoiAdditional(parser, lastCategory, lastFilter, lastType, "en", baseType, + lastPoiAdditionalCategory, textPoiAdditionals); } if (lastPoiAdditionalCategory != null) { List categoryAdditionals = categoryPoiAdditionalMap.get(lastPoiAdditionalCategory); @@ -433,7 +450,7 @@ public class MapPoiTypes { } else if (name.equals("poi_type")) { if (lastCategory == null) { - lastCategory = getOtherMapCategory(); + lastCategory = localOtherMapCategory; } if(!Algorithms.isEmpty(parser.getAttributeValue("", "deprecated_of"))){ String vl = parser.getAttributeValue("", "name"); @@ -482,7 +499,7 @@ public class MapPoiTypes { } } } - categories = categoriesList; + is.close(); } catch (IOException e) { log.error("Unexpected error", e); //$NON-NLS-1$ @@ -510,17 +527,25 @@ public class MapPoiTypes { List poiAdditionals = categoryPoiAdditionalMap.get(category); if (poiAdditionals != null) { for (PoiType poiType : poiAdditionals) { - buildPoiAdditionalReference(poiType, entry.getKey()); + buildPoiAdditionalReference(poiType, entry.getKey(), textPoiAdditionals); } } } } - findDefaultOtherCategory(); + this.categories = categoriesList; + this.poiTypesByTag = poiTypesByTag; + this.deprecatedTags = deprecatedTags; + this.poiAdditionalCategoryIconNames = poiAdditionalCategoryIconNames; + this.textPoiAdditionals = textPoiAdditionals; + otherCategory = getPoiCategoryByName("user_defined_other"); + if (otherCategory == null) { + throw new IllegalArgumentException("No poi category other"); + } init = true; log.info("Time to init poi types " + (System.currentTimeMillis() - time)); //$NON-NLS-1$ } - private PoiType buildPoiAdditionalReference(PoiType poiAdditional, AbstractPoiType parent) { + private PoiType buildPoiAdditionalReference(PoiType poiAdditional, AbstractPoiType parent, List textPoiAdditionals) { PoiCategory lastCategory = null; PoiFilter lastFilter = null; PoiType lastType = null; @@ -571,7 +596,8 @@ public class MapPoiTypes { } private PoiType parsePoiAdditional(XmlPullParser parser, PoiCategory lastCategory, PoiFilter lastFilter, - PoiType lastType, String lang, PoiType langBaseType, String poiAdditionalCategory) { + PoiType lastType, String lang, PoiType langBaseType, + String poiAdditionalCategory, List textPoiAdditionals) { String oname = parser.getAttributeValue("", "name"); if (lang != null) { oname += ":" + lang; @@ -653,13 +679,6 @@ public class MapPoiTypes { return tp; } - private void findDefaultOtherCategory() { - PoiCategory pc = getPoiCategoryByName("user_defined_other"); - if (pc == null) { - throw new IllegalArgumentException("No poi category other"); - } - otherCategory = pc; - } public List getCategories(boolean includeMapCategory) { ArrayList lst = new ArrayList(categories); @@ -705,7 +724,8 @@ public class MapPoiTypes { public AbstractPoiType getAnyPoiAdditionalTypeByKey(String name) { PoiType add = null; - for (PoiCategory pc : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory pc = categories.get(i); add = getPoiAdditionalByKey(pc, name); if (add != null) { return add; @@ -811,7 +831,8 @@ public class MapPoiTypes { if (!poiTypesByTag.isEmpty()) { return; } - for (PoiCategory poic : categories) { + for (int i = 0; i < categories.size(); i++) { + PoiCategory poic = categories.get(i); for (PoiType p : poic.getPoiTypes()) { initPoiType(p); for (PoiType pts : p.getPoiAdditionals()) { diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 89e422ec60..b49ec81d94 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -651,6 +651,10 @@ public class SearchUICore { this.parentSearchResult = parentSearchResult; return prev; } + + public SearchResult getParentSearchResult() { + return parentSearchResult; + } public List getRequestResults() { return requestResults; @@ -730,9 +734,9 @@ public class SearchUICore { object.localeName = object.alternateName; object.alternateName = null; } + object.parentSearchResult = parentSearchResult; if (matcher == null || matcher.publish(object)) { count++; - object.parentSearchResult = parentSearchResult; if (totalLimit == -1 || count < totalLimit) { requestResults.add(object); } @@ -740,6 +744,7 @@ public class SearchUICore { } return false; } + @Override public boolean isCancelled() { boolean cancelled = request != requestNumber.get(); @@ -848,12 +853,121 @@ public class SearchUICore { return json; } } + + private enum ResultCompareStep { + TOP_VISIBLE, + FOUND_WORD_COUNT, + UNKNOWN_PHRASE_MATCH_WEIGHT, + SEARCH_DISTANCE_IF_NOT_BY_NAME, + COMPARE_FIRST_NUMBER_IN_NAME, + COMPARE_DISTANCE_TO_PARENT_SEARCH_RESULT, // makes sense only for inner subqueries + COMPARE_BY_NAME, + COMPARE_BY_DISTANCE, + AMENITY_LAST_AND_SORT_BY_SUBTYPE + ; + + // -1 - means 1st is less (higher) than 2nd + public int compare(SearchResult o1, SearchResult o2, SearchResultComparator c) { + switch(this) { + case TOP_VISIBLE: + boolean topVisible1 = ObjectType.isTopVisible(o1.objectType); + boolean topVisible2 = ObjectType.isTopVisible(o2.objectType); + if (topVisible1 != topVisible2) { + // -1 - means 1st is less than 2nd + return topVisible1 ? -1 : 1; + } + break; + case FOUND_WORD_COUNT: + if (o1.getFoundWordCount() != o2.getFoundWordCount()) { + return -Algorithms.compare(o1.getFoundWordCount(), o2.getFoundWordCount()); + } + break; + case UNKNOWN_PHRASE_MATCH_WEIGHT: + // here we check how much each sub search result matches the phrase + // also we sort it by type house -> street/poi -> city/postcode/village/other + if (o1.getUnknownPhraseMatchWeight() != o2.getUnknownPhraseMatchWeight()) { + return -Double.compare(o1.getUnknownPhraseMatchWeight(), o2.getUnknownPhraseMatchWeight()); + } + break; + case SEARCH_DISTANCE_IF_NOT_BY_NAME: + if (!c.sortByName) { + double s1 = o1.getSearchDistance(c.loc); + double s2 = o2.getSearchDistance(c.loc); + if (s1 != s2) { + return Double.compare(s1, s2); + } + } + break; + case COMPARE_FIRST_NUMBER_IN_NAME: { + String localeName1 = o1.localeName == null ? "" : o1.localeName; + String localeName2 = o2.localeName == null ? "" : o2.localeName; + int st1 = Algorithms.extractFirstIntegerNumber(localeName1); + int st2 = Algorithms.extractFirstIntegerNumber(localeName2); + if (st1 != st2) { + return Algorithms.compare(st1, st2); + } + break; + } + case COMPARE_DISTANCE_TO_PARENT_SEARCH_RESULT: + double ps1 = o1.parentSearchResult == null ? 0 : o1.parentSearchResult.getSearchDistance(c.loc); + double ps2 = o2.parentSearchResult == null ? 0 : o2.parentSearchResult.getSearchDistance(c.loc); + if (ps1 != ps2) { + return Double.compare(ps1, ps2); + } + break; + case COMPARE_BY_NAME: { + String localeName1 = o1.localeName == null ? "" : o1.localeName; + String localeName2 = o2.localeName == null ? "" : o2.localeName; + int cmp = c.collator.compare(localeName1, localeName2); + if (cmp != 0) { + return cmp; + } + break; + } + case COMPARE_BY_DISTANCE: + double s1 = o1.getSearchDistance(c.loc, 1); + double s2 = o2.getSearchDistance(c.loc, 1); + if (s1 != s2) { + return Double.compare(s1, s2); + } + break; + case AMENITY_LAST_AND_SORT_BY_SUBTYPE: { + boolean am1 = o1.object instanceof Amenity; + boolean am2 = o2.object instanceof Amenity; + if (am1 != am2) { + // amenity second + return am1 ? 1 : -1; + } else if (am1 && am2) { + // here 2 points are amenity + Amenity a1 = (Amenity) o1.object; + Amenity a2 = (Amenity) o2.object; + String type1 = a1.getType().getKeyName(); + String type2 = a2.getType().getKeyName(); + int cmp = c.collator.compare(type1, type2); + if (cmp != 0) { + return cmp; + } + + String subType1 = a1.getSubType() == null ? "" : a1.getSubType(); + String subType2 = a2.getSubType() == null ? "" : a2.getSubType(); + cmp = c.collator.compare(subType1, subType2); + if (cmp != 0) { + return cmp; + } + } + break; + } + } + return 0; + } + } public static class SearchResultComparator implements Comparator { private SearchPhrase sp; private Collator collator; private LatLon loc; private boolean sortByName; + public SearchResultComparator(SearchPhrase sp) { this.sp = sp; @@ -865,66 +979,10 @@ public class SearchUICore { @Override public int compare(SearchResult o1, SearchResult o2) { - boolean topVisible1 = ObjectType.isTopVisible(o1.objectType); - boolean topVisible2 = ObjectType.isTopVisible(o2.objectType); - if (topVisible1 != topVisible2) { - // -1 - means 1st is less than 2nd - return topVisible1 ? -1 : 1; - } - if (o1.getUnknownPhraseMatchWeight() != o2.getUnknownPhraseMatchWeight()) { - return -Double.compare(o1.getUnknownPhraseMatchWeight(), o2.getUnknownPhraseMatchWeight()); - } - if (o1.getFoundWordCount() != o2.getFoundWordCount()) { - return -Algorithms.compare(o1.getFoundWordCount(), o2.getFoundWordCount()); - } - if (!sortByName) { - double s1 = o1.getSearchDistance(loc); - double s2 = o2.getSearchDistance(loc); - if (s1 != s2) { - return Double.compare(s1, s2); - } - } - String localeName1 = o1.localeName == null ? "" : o1.localeName; - String localeName2 = o2.localeName == null ? "" : o2.localeName; - int st1 = Algorithms.extractFirstIntegerNumber(localeName1); - int st2 = Algorithms.extractFirstIntegerNumber(localeName2); - if (st1 != st2) { - return Algorithms.compare(st1, st2); - } - double s1 = o1.getSearchDistance(loc, 1); - double s2 = o2.getSearchDistance(loc, 1); - double ps1 = o1.parentSearchResult == null ? 0 : o1.parentSearchResult.getSearchDistance(loc); - double ps2 = o2.parentSearchResult == null ? 0 : o2.parentSearchResult.getSearchDistance(loc); - if (ps1 != ps2) { - return Double.compare(ps1, ps2); - } - int cmp = collator.compare(localeName1, localeName2); - if (cmp != 0) { - return cmp; - } - if (s1 != s2) { - return Double.compare(s1, s2); - } - boolean am1 = o1.object instanceof Amenity; - boolean am2 = o2.object instanceof Amenity; - if (am1 != am2) { - return Boolean.compare(am1, am2); - } else if (am1 && am2) { - // here 2 points are amenity - Amenity a1 = (Amenity) o1.object; - Amenity a2 = (Amenity) o2.object; - String type1 = a1.getType().getKeyName(); - String type2 = a2.getType().getKeyName(); - cmp = collator.compare(type1, type2); - if (cmp != 0) { - return cmp; - } - - String subType1 = a1.getSubType() == null ? "" : a1.getSubType(); - String subType2 = a2.getSubType() == null ? "" : a2.getSubType(); - cmp = collator.compare(subType1, subType2); - if (cmp != 0) { - return cmp; + for(ResultCompareStep step : ResultCompareStep.values()) { + int r = step.compare(o1, o2, this); + if(r != 0) { + return r; } } return 0; diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/ObjectType.java b/OsmAnd-java/src/main/java/net/osmand/search/core/ObjectType.java index 64ed8710cd..9844f52646 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/ObjectType.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/ObjectType.java @@ -45,27 +45,24 @@ public enum ObjectType { return null; } - public static double getTypeWeight(ObjectType t) { + public static int getTypeWeight(ObjectType t) { if (t == null) { - return 1.0; + return 1; } switch (t) { - case CITY: - return 1.0; - case VILLAGE: - return 1.0; - case POSTCODE: - return 1.0; - case STREET: - return 2.0; case HOUSE: - return 3.0; case STREET_INTERSECTION: - return 3.0; + return 4; + case STREET: + return 3; case POI: - return 2.0; + return 2; + case CITY: + case VILLAGE: + case POSTCODE: + return 1; default: - return 1.0; + return 1; } } } diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java index ed9924d69f..0d01c98391 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java @@ -146,7 +146,7 @@ public class SearchCoreFactory { phrase.countUnknownWordsMatch(res); // int cnt = resultMatcher.getCount(); List ws = phrase.getUnknownSearchWords(res.otherWordsMatch); - if(!res.firstUnknownWordMatches) { + if (!res.firstUnknownWordMatches) { ws.add(phrase.getUnknownSearchWord()); } // publish result to set parentSearchResult before search @@ -154,14 +154,10 @@ public class SearchCoreFactory { if (!ws.isEmpty() && api != null && api.isSearchAvailable(phrase)) { SearchPhrase nphrase = phrase.selectWord(res, ws, phrase.isLastUnknownSearchWordComplete()); - SearchResult prev = resultMatcher.setParentSearchResult(res); - res.parentSearchResult = prev; + resultMatcher.setParentSearchResult(res); api.search(nphrase, resultMatcher); - resultMatcher.setParentSearchResult(prev); + resultMatcher.setParentSearchResult(res.parentSearchResult); } -// if (resultMatcher.getCount() == cnt) { -// resultMatcher.publish(res); -// } } @Override diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java index 7a8e506647..3e153f906e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java @@ -121,7 +121,12 @@ public class SearchPhrase { int i1 = CommonWords.getCommonSearch(o1.toLowerCase()); int i2 = CommonWords.getCommonSearch(o2.toLowerCase()); if (i1 != i2) { - return icompare(i1, i2); + if(i1 == -1) { + return -1; + } else if(i2 == -1) { + return 1; + } + return -icompare(i1, i2); } // compare length without numbers to not include house numbers return -icompare(lengthWithoutNumbers(o1), lengthWithoutNumbers(o2)); @@ -458,20 +463,24 @@ public class SearchPhrase { SearchPhrase sp = new SearchPhrase(this.settings, this.clt); addResult(res, sp); SearchResult prnt = res.parentSearchResult; - while(prnt != null) { + while (prnt != null) { addResult(prnt, sp); prnt = prnt.parentSearchResult; } sp.words.addAll(0, this.words); - if(unknownWords != null) { + if (unknownWords != null) { sp.lastUnknownSearchWordComplete = lastComplete; + StringBuilder genUnknownSearchPhrase = new StringBuilder(); for (int i = 0; i < unknownWords.size(); i++) { if (i == 0) { sp.unknownSearchWordTrim = unknownWords.get(0); } else { sp.unknownWords.add(unknownWords.get(i)); } + genUnknownSearchPhrase.append(unknownWords.get(i)).append(" "); } + + sp.rawUnknownSearchPhrase = sp.unknownSearchPhrase = genUnknownSearchPhrase.toString().trim(); } return sp; } @@ -724,16 +733,17 @@ public class SearchPhrase { } public void countUnknownWordsMatch(SearchResult sr, String localeName, Collection otherNames) { - if(unknownWords.size() > 0) { - for(int i = 0; i < unknownWords.size(); i++) { - if(unknownWordsMatcher.size() == i) { - unknownWordsMatcher.add(new NameStringMatcher(unknownWords.get(i), - i < unknownWords.size() - 1 || isLastUnknownSearchWordComplete() ? StringMatcherMode.CHECK_EQUALS_FROM_SPACE : - StringMatcherMode.CHECK_STARTS_FROM_SPACE)); + if (unknownWords.size() > 0) { + for (int i = 0; i < unknownWords.size(); i++) { + if (unknownWordsMatcher.size() == i) { + unknownWordsMatcher.add(new NameStringMatcher(unknownWords.get(i), + i < unknownWords.size() - 1 || isLastUnknownSearchWordComplete() + ? StringMatcherMode.CHECK_EQUALS_FROM_SPACE + : StringMatcherMode.CHECK_STARTS_FROM_SPACE)); } NameStringMatcher ms = unknownWordsMatcher.get(i); - if(ms.matches(localeName) || ms.matches(otherNames)) { - if(sr.otherWordsMatch == null) { + if (ms.matches(localeName) || ms.matches(otherNames)) { + if (sr.otherWordsMatch == null) { sr.otherWordsMatch = new TreeSet<>(); } sr.otherWordsMatch.add(unknownWords.get(i)); diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchResult.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchResult.java index 93f0acfafd..269694eae9 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchResult.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchResult.java @@ -34,17 +34,15 @@ public class SearchResult { } public double getUnknownPhraseMatchWeight() { - return getUnknownPhraseMatchWeight(false); - } - - private double getUnknownPhraseMatchWeight(boolean isHouse) { - double res = 0; - isHouse = isHouse || objectType == ObjectType.HOUSE; + // if result is a complete match in the search we prioritize it highers + double res = 0; if (unknownPhraseMatches) { - res = isHouse ? ObjectType.getTypeWeight(ObjectType.HOUSE) : ObjectType.getTypeWeight(objectType); + res = ObjectType.getTypeWeight(objectType); } - if (res == 0 && parentSearchResult != null) { - return parentSearchResult.getUnknownPhraseMatchWeight(isHouse); + if (parentSearchResult != null) { + // 10 > maximum type + // res = Math.max(res,parentSearchResult.getUnknownPhraseMatchWeight()) ; + res += parentSearchResult.getUnknownPhraseMatchWeight() / 10; } return res; } diff --git a/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreGenericTest.java b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreGenericTest.java new file mode 100644 index 0000000000..aa4d7430d6 --- /dev/null +++ b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreGenericTest.java @@ -0,0 +1,111 @@ +package net.osmand.search; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import net.osmand.OsmAndCollator; +import net.osmand.data.LatLon; +import net.osmand.search.SearchUICore.SearchResultCollection; +import net.osmand.search.core.SearchPhrase; +import net.osmand.search.core.SearchResult; +import net.osmand.search.core.SearchSettings; +import net.osmand.util.MapUtils; + +public class SearchUICoreGenericTest { + + + @BeforeClass + public static void setUp() { + SearchUICoreTest.defaultSetup(); + } + + + @Test + public void testDuplicates() throws IOException { + SearchSettings ss = new SearchSettings((SearchSettings)null); + ss = ss.setOriginalLocation(new LatLon(0, 0)); + SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); + SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); + List rs = new ArrayList<>(); + SearchResult a1 = searchResult(rs, phrase, "a", 100); + SearchResult b2 = searchResult(rs, phrase, "b", 200); + SearchResult b1 = searchResult(rs, phrase, "b", 100); + /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); + cll.addSearchResults(rs, true, true); + Assert.assertEquals(3, cll.getCurrentSearchResults().size()); + Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); + Assert.assertSame(b1, cll.getCurrentSearchResults().get(1)); + Assert.assertSame(b2, cll.getCurrentSearchResults().get(2)); + } + + @Test + public void testNoResort() throws IOException { + SearchSettings ss = new SearchSettings((SearchSettings)null); + ss = ss.setOriginalLocation(new LatLon(0, 0)); + SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); + SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); + List rs = new ArrayList<>(); + SearchResult a1 = searchResult(rs, phrase, "a", 100); + cll.addSearchResults(rs, false, true); + rs.clear(); + + SearchResult b2 = searchResult(rs, phrase, "b", 200); + cll.addSearchResults(rs, false, true); + rs.clear(); + + SearchResult b1 = searchResult(rs, phrase, "b", 100); + cll.addSearchResults(rs, false, true); + rs.clear(); + + /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); + cll.addSearchResults(rs, false, true); + rs.clear(); + + Assert.assertEquals(3, cll.getCurrentSearchResults().size()); + Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); + Assert.assertSame(b2, cll.getCurrentSearchResults().get(1)); + Assert.assertSame(b1, cll.getCurrentSearchResults().get(2)); + + + + } + + + @Test + public void testNoResortDuplicate() throws IOException { + SearchSettings ss = new SearchSettings((SearchSettings)null); + ss = ss.setOriginalLocation(new LatLon(0, 0)); + SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); + SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); + List rs = new ArrayList<>(); + SearchResult a1 = searchResult(rs, phrase, "a", 100); + SearchResult b2 = searchResult(rs, phrase, "b", 200); + SearchResult b1 = searchResult(rs, phrase, "b", 100); + cll.addSearchResults(rs, false, true); + rs.clear(); + /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); + cll.addSearchResults(rs, false, true); + rs.clear(); + + Assert.assertEquals(3, cll.getCurrentSearchResults().size()); + Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); + Assert.assertSame(b1, cll.getCurrentSearchResults().get(1)); + Assert.assertSame(b2, cll.getCurrentSearchResults().get(2)); + } + + private SearchResult searchResult(List rs, SearchPhrase phrase, String text, int dist) { + SearchResult res = new SearchResult(phrase); + res.localeName = text; + double d1 = MapUtils.getDistance(0, 0, 0, 1); + res.location = new LatLon(0, dist / d1); + rs.add(res); + return res; + } + + +} diff --git a/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java similarity index 56% rename from OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java rename to OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java index 80d92b7bf1..13c9668741 100644 --- a/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java +++ b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java @@ -1,12 +1,30 @@ package net.osmand.search; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.xmlpull.v1.XmlPullParserException; + import net.osmand.OsmAndCollator; import net.osmand.ResultMatcher; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.data.Amenity; import net.osmand.data.Building; import net.osmand.data.City; -import net.osmand.data.LatLon; import net.osmand.data.MapObject; import net.osmand.data.Street; import net.osmand.osm.AbstractPoiType; @@ -17,35 +35,31 @@ import net.osmand.search.core.SearchPhrase; import net.osmand.search.core.SearchResult; import net.osmand.search.core.SearchSettings; import net.osmand.util.Algorithms; -import net.osmand.util.MapUtils; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.junit.Assert; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParserException; - -import java.io.File; -import java.io.FilenameFilter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.atomic.AtomicInteger; - -public class SearchCoreUITest { +@RunWith(Parameterized.class) +public class SearchUICoreTest { private static final String SEARCH_RESOURCES_PATH = "src/test/resources/search/"; - private static Map enPhrases = new HashMap<>(); - private static Map phrases = new HashMap<>(); + private static boolean TEST_EXTRA_RESULTS = true; + + private File testFile; - static { + public SearchUICoreTest(String name, File file) { + this.testFile = file; + } + + + @BeforeClass + public static void setUp() { + defaultSetup(); + } + + + static void defaultSetup() { MapPoiTypes.setDefault(new MapPoiTypes("src/test/resources/poi_types.xml")); MapPoiTypes poiTypes = MapPoiTypes.getDefault(); - + Map enPhrases = new HashMap<>(); + Map phrases = new HashMap<>(); try { enPhrases = Algorithms.parseStringsXml(new File("src/test/resources/phrases/en/phrases.xml")); //phrases = Algorithms.parseStringsXml(new File("src/test/resources/phrases/ru/phrases.xml")); @@ -56,178 +70,29 @@ public class SearchCoreUITest { e.printStackTrace(); } - poiTypes.setPoiTranslator(new MapPoiTypes.PoiTranslator() { - - @Override - public String getTranslation(AbstractPoiType type) { - AbstractPoiType baseLangType = type.getBaseLangType(); - if (baseLangType != null) { - return getTranslation(baseLangType) + " (" + type.getLang().toLowerCase() + ")"; - } - return getTranslation(type.getIconKeyName()); - } - - @Override - public String getTranslation(String keyName) { - String val = phrases.get("poi_" + keyName); - if (val != null) { - int ind = val.indexOf(';'); - if (ind > 0) { - return val.substring(0, ind); - } - } - return val; - } - - @Override - public String getSynonyms(AbstractPoiType type) { - AbstractPoiType baseLangType = type.getBaseLangType(); - if (baseLangType != null) { - return getSynonyms(baseLangType); - } - return getSynonyms(type.getIconKeyName()); - } - - - @Override - public String getSynonyms(String keyName) { - String val = phrases.get("poi_" + keyName); - if (val != null) { - int ind = val.indexOf(';'); - if (ind > 0) { - return val.substring(ind + 1); - } - return ""; - } - return null; - } - - @Override - public String getEnTranslation(AbstractPoiType type) { - AbstractPoiType baseLangType = type.getBaseLangType(); - if (baseLangType != null) { - return getEnTranslation(baseLangType) + " (" + type.getLang().toLowerCase() + ")"; - } - return getEnTranslation(type.getIconKeyName()); - } - - @Override - public String getEnTranslation(String keyName) { - if (enPhrases.isEmpty()) { - return Algorithms.capitalizeFirstLetter(keyName.replace('_', ' ')); - } - String val = enPhrases.get("poi_" + keyName); - if (val != null) { - int ind = val.indexOf(';'); - if (ind > 0) { - return val.substring(0, ind); - } - } - return val; - } - }); - } - - @Test - public void testDuplicates() throws IOException { - SearchSettings ss = new SearchSettings((SearchSettings)null); - ss = ss.setOriginalLocation(new LatLon(0, 0)); - SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); - SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); - List rs = new ArrayList<>(); - SearchResult a1 = searchResult(rs, phrase, "a", 100); - SearchResult b2 = searchResult(rs, phrase, "b", 200); - SearchResult b1 = searchResult(rs, phrase, "b", 100); - /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); - cll.addSearchResults(rs, true, true); - Assert.assertEquals(3, cll.getCurrentSearchResults().size()); - Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); - Assert.assertSame(b1, cll.getCurrentSearchResults().get(1)); - Assert.assertSame(b2, cll.getCurrentSearchResults().get(2)); - } - - @Test - public void testNoResort() throws IOException { - SearchSettings ss = new SearchSettings((SearchSettings)null); - ss = ss.setOriginalLocation(new LatLon(0, 0)); - SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); - SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); - List rs = new ArrayList<>(); - SearchResult a1 = searchResult(rs, phrase, "a", 100); - cll.addSearchResults(rs, false, true); - rs.clear(); - - SearchResult b2 = searchResult(rs, phrase, "b", 200); - cll.addSearchResults(rs, false, true); - rs.clear(); - - SearchResult b1 = searchResult(rs, phrase, "b", 100); - cll.addSearchResults(rs, false, true); - rs.clear(); - - /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); - cll.addSearchResults(rs, false, true); - rs.clear(); - - Assert.assertEquals(3, cll.getCurrentSearchResults().size()); - Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); - Assert.assertSame(b2, cll.getCurrentSearchResults().get(1)); - Assert.assertSame(b1, cll.getCurrentSearchResults().get(2)); - - - + poiTypes.setPoiTranslator(new TestSearchTranslator(phrases, enPhrases)); } - @Test - public void testNoResortDuplicate() throws IOException { - SearchSettings ss = new SearchSettings((SearchSettings)null); - ss = ss.setOriginalLocation(new LatLon(0, 0)); - SearchPhrase phrase = new SearchPhrase(ss, OsmAndCollator.primaryCollator()); - SearchResultCollection cll = new SearchUICore.SearchResultCollection(phrase); - List rs = new ArrayList<>(); - SearchResult a1 = searchResult(rs, phrase, "a", 100); - SearchResult b2 = searchResult(rs, phrase, "b", 200); - SearchResult b1 = searchResult(rs, phrase, "b", 100); - cll.addSearchResults(rs, false, true); - rs.clear(); - /*SearchResult a3 = */ searchResult(rs, phrase, "a", 100); - cll.addSearchResults(rs, false, true); - rs.clear(); - - Assert.assertEquals(3, cll.getCurrentSearchResults().size()); - Assert.assertSame(a1, cll.getCurrentSearchResults().get(0)); - Assert.assertSame(b1, cll.getCurrentSearchResults().get(1)); - Assert.assertSame(b2, cll.getCurrentSearchResults().get(2)); - - - } - - private SearchResult searchResult(List rs, SearchPhrase phrase, String text, int dist) { - SearchResult res = new SearchResult(phrase); - res.localeName = text; - double d1 = MapUtils.getDistance(0, 0, 0, 1); - res.location = new LatLon(0, dist / d1); - rs.add(res); - return res; - } - - @Test - public void testSearchJsons() throws IOException { - final File[] files = new File(SEARCH_RESOURCES_PATH).listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String filename) { - return filename.endsWith(".json"); - } - }); - if (files != null) { - for (File f : files) { - testSearchImpl(f); + @Parameterized.Parameters(name = "{index}: {0}") + public static Iterable data() throws IOException { + final File[] files = new File(SEARCH_RESOURCES_PATH).listFiles(); + ArrayList arrayList = new ArrayList<>(); + if (files != null) { + for (File file : files) { + String fileName = file.getName(); + if(fileName.endsWith(".json")) { + String name = fileName.substring(0, fileName.length() - ".json".length()); + arrayList.add(new Object[] {name, file}); + } } } - } + return arrayList; + } - private void testSearchImpl(File jsonFile) throws IOException, JSONException { + @Test + public void testSearch() throws IOException, JSONException { + File jsonFile = testFile; String sourceJsonText = Algorithms.getFileAsString(jsonFile); Assert.assertNotNull(sourceJsonText); Assert.assertTrue(sourceJsonText.length() > 0); @@ -277,6 +142,12 @@ public class SearchCoreUITest { results.add(resultsArr.getString(i)); } } + if (TEST_EXTRA_RESULTS && sourceJson.has("extra-results")) { + JSONArray resultsArr = sourceJson.getJSONArray("extra-results"); + for (int i = 0; i < resultsArr.length(); i++) { + results.add(resultsArr.getString(i)); + } + } SearchSettings s = SearchSettings.parseJSON(settingsJson); s.setOfflineIndexes(Collections.singletonList(reader)); @@ -308,7 +179,15 @@ public class SearchCoreUITest { for (SearchResult result : searchResults) { String expected = results.get(i++); String present = result.toString(); - //System.out.println(present); + if (!Algorithms.stringsEqual(expected, present)) { + System.out.println(String.format("Mismatch for '%s' != '%s' (%d, %.3f, %s). Result: ", expected, + present, result.getFoundWordCount(), result.getUnknownPhraseMatchWeight(), result.objectType.toString())); + for (SearchResult r : searchResults) { +// System.out.println(String.format("\t\"%s\",", r.toString())); + System.out.println(String.format("\"%s\", (%d, %.3f, %s),", r.toString(), + r.getFoundWordCount(), r.getUnknownPhraseMatchWeight(), r.objectType.toString())); + } + } Assert.assertEquals(expected, present); if (i >= results.size()) { break; @@ -316,6 +195,84 @@ public class SearchCoreUITest { } } + static class TestSearchTranslator implements MapPoiTypes.PoiTranslator { + + private Map enPhrases; + private Map phrases; + public TestSearchTranslator(Map phrases, Map enPhrases) { + this.phrases = phrases; + this.enPhrases = enPhrases; + } + + @Override + public String getTranslation(AbstractPoiType type) { + AbstractPoiType baseLangType = type.getBaseLangType(); + if (baseLangType != null) { + return getTranslation(baseLangType) + " (" + type.getLang().toLowerCase() + ")"; + } + return getTranslation(type.getIconKeyName()); + } + + @Override + public String getTranslation(String keyName) { + String val = phrases.get("poi_" + keyName); + if (val != null) { + int ind = val.indexOf(';'); + if (ind > 0) { + return val.substring(0, ind); + } + } + return val; + } + + @Override + public String getSynonyms(AbstractPoiType type) { + AbstractPoiType baseLangType = type.getBaseLangType(); + if (baseLangType != null) { + return getSynonyms(baseLangType); + } + return getSynonyms(type.getIconKeyName()); + } + + + @Override + public String getSynonyms(String keyName) { + String val = phrases.get("poi_" + keyName); + if (val != null) { + int ind = val.indexOf(';'); + if (ind > 0) { + return val.substring(ind + 1); + } + return ""; + } + return null; + } + + @Override + public String getEnTranslation(AbstractPoiType type) { + AbstractPoiType baseLangType = type.getBaseLangType(); + if (baseLangType != null) { + return getEnTranslation(baseLangType) + " (" + type.getLang().toLowerCase() + ")"; + } + return getEnTranslation(type.getIconKeyName()); + } + + @Override + public String getEnTranslation(String keyName) { + if (enPhrases.isEmpty()) { + return Algorithms.capitalizeFirstLetter(keyName.replace('_', ' ')); + } + String val = enPhrases.get("poi_" + keyName); + if (val != null) { + int ind = val.indexOf(';'); + if (ind > 0) { + return val.substring(0, ind); + } + } + return val; + } + }; + private static class BinaryMapIndexReaderTest extends BinaryMapIndexReader { List amenities = Collections.emptyList(); diff --git a/OsmAnd-java/src/test/resources/search/100_bridge_street.json b/OsmAnd-java/src/test/resources/search/100_bridge_street.json new file mode 100644 index 0000000000..84d7b0bc66 --- /dev/null +++ b/OsmAnd-java/src/test/resources/search/100_bridge_street.json @@ -0,0 +1,6866 @@ +{ + "settings": { + "lat": "43.75258", + "lon": "-70.46783", + "radiusLevel": 1, + "totalLimit": -1, + "lang": "", + "transliterateIfMissing": false, + "emptyQueryAllowed": false, + "sortByName": false + }, + "phrase": "100 Bridge Street", + "results": [ + "100.0, ", + "100, Bridge Street, Westbrook", + "100, Bridge Street, Yarmouth", + "Bridge Street", + "Bridge Street Dam", + "Bridge Street" + ], + "amenities": [ + { + "name": "International Avenue Bridge", + "lat": "45.16104", + "lon": "-67.30280", + "id": 736426949, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/International Avenue Bridge" + } + }, + { + "name": "Emerys Bridge Road", + "lat": "43.24381", + "lon": "-70.77249", + "id": 452805855, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "foot_yes": "yes", + "bicycle_yes": "yes", + "horse_yes": "yes", + "alt_name": "Mt Agamenticus Road" + } + }, + { + "name": "Memorial Bridge", + "lat": "43.08149", + "lon": "-70.75185", + "id": 451269827, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "bridge_type_movable": "movable", + "bridge_movable_drawbridge": "drawbridge", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "US 1" + } + }, + { + "name": "Sunday River Covered Bridge", + "lat": "44.49243", + "lon": "-70.84334", + "id": 721923553, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes", + "covered_yes": "yes", + "tourism_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Sunday River Bridge" + } + }, + { + "name": "Town Landing at Bridge End", + "lat": "44.29071", + "lon": "-68.69120", + "id": 14319074654, + "subType": "slipway", + "type": "transportation" + }, + { + "name": "Tukey's Bridge Pathway", + "lat": "43.67673", + "lon": "-70.25669", + "id": 65132233, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "foot_yes": "yes", + "bridge_pedestrian": "yes", + "surface_paved": "paved", + "bicycle_yes": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance" + } + }, + { + "name": "Marsh Bridge Dam", + "lat": "44.02842", + "lon": "-69.59783", + "id": 716455838, + "subType": "dam", + "type": "man_made", + "additionalInfo": { + "ele": "32" + } + }, + { + "name": "Bridge Street", + "lat": "44.54744", + "lon": "-69.62828", + "id": 79664277, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "US 201;ME 137 Business;ME 100" + } + }, + { + "name": "Robyville Bridge", + "lat": "44.94339", + "lon": "-68.96858", + "id": 1414130467, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Robyville Bridge" + } + }, + { + "name": "North Anson Toll Bridge Pylon", + "lat": "44.85873", + "lon": "-69.86378", + "id": 601306297, + "subType": "attraction", + "type": "tourism" + }, + { + "name": "Durham Bridge Road", + "lat": "44.85733", + "lon": "-69.20571", + "id": 881924991, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "43.80652", + "lon": "-70.79869", + "id": 757192465, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes" + } + }, + { + "name": "Sarah Mildred Long Bridge", + "lat": "43.08533", + "lon": "-70.76285", + "id": 1016494949, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "foot_no": "no", + "bridge_car": "yes", + "bicycle_yes": "yes" + } + }, + { + "name": "Ferry Point Bridge", + "lat": "45.19206", + "lon": "-67.28356", + "id": 736427223, + "subType": "bridge", + "type": "man_made" + }, + { + "name": "Bridge Street", + "lat": "44.54734", + "lon": "-69.62828", + "id": 79522447, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "US 201;ME 100;ME 137 Business" + } + }, + { + "name": "Bridges Swamp", + "lat": "43.16828", + "lon": "-70.63703", + "id": 4419289956352, + "subType": "wetland", + "type": "natural", + "additionalInfo": { + "ele": "16" + } + }, + { + "name": "Bridge Street", + "lat": "44.39864", + "lon": "-70.97168", + "id": 661558361, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Chamberlain Bridge", + "lat": "46.17115", + "lon": "-69.20777", + "id": 13624836576, + "subType": "viewpoint", + "type": "tourism" + }, + { + "name": "Bridge Street", + "lat": "47.24314", + "lon": "-68.57999", + "id": 1188446125, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "43.67790", + "lon": "-70.36728", + "id": 1395012635, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "bridge_structure_beam": "beam", + "foot_no": "no", + "network": "lcn", + "operator": "METRO", + "route_bus_ref": "3" + } + }, + { + "name": "Black Bridge Road", + "lat": "44.59258", + "lon": "-70.56328", + "id": 553381561, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "44.54199", + "lon": "-67.88162", + "id": 86354657, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "US 1A" + } + }, + { + "name": "Center Bridge Road", + "lat": "44.25640", + "lon": "-70.17983", + "id": 1533190443, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Sagadahoc Bridge", + "lat": "43.91174", + "lon": "-69.80400", + "id": 22955093, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "US 1" + } + }, + { + "name": "Lovejoy Bridge", + "lat": "44.59343", + "lon": "-70.73369", + "id": 1062686813, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "covered_yes": "yes", + "historic_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Lovejoy Bridge" + } + }, + { + "name": "Bridge Street", + "lat": "44.82459", + "lon": "-70.33898", + "id": 825473529, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Foxwells Bridge Brook Dam", + "lat": "43.55676", + "lon": "-70.38116", + "id": 716457084, + "subType": "dam", + "type": "man_made", + "additionalInfo": { + "ele": "6" + } + }, + { + "name": "Goodwins Bridge Road", + "lat": "43.43187", + "lon": "-70.68775", + "id": 1444433161, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Badger Island Bridge", + "lat": "43.08343", + "lon": "-70.75116", + "id": 353057049, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "bridge_structure_truss": "truss", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "US 1" + } + }, + { + "name": "Lewiston-Auburn Railroad Bridge", + "lat": "44.09292", + "lon": "-70.22298", + "id": 10093557134, + "subType": "information", + "type": "tourism", + "additionalInfo": { + "information_history": "history" + } + }, + { + "name": "Pease Bridge Road", + "lat": "45.14700", + "lon": "-69.49797", + "id": 22965323, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "surface_paved": "paved" + } + }, + { + "name": "Tukey's Bridge", + "lat": "43.67596", + "lon": "-70.25641", + "id": 736361911, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Tukey's Bridge" + } + }, + { + "name": "Adams Bridge Road", + "lat": "43.31228", + "lon": "-70.75440", + "id": 1467631917, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "surface_unpaved": "unpaved" + } + }, + { + "name": "Clair-Fort Kent Bridge", + "lat": "47.25018", + "lon": "-68.60492", + "id": 652983473, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Fort Kent–Clair Border Crossing", + "ref": "NB 161" + } + }, + { + "name": "Edmundston-Madawaska Bridge", + "lat": "47.35893", + "lon": "-68.32863", + "id": 1420577395, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Edmundston–Madawaska Bridge" + } + }, + { + "name": "Androscoggin Swinging Bridge", + "lat": "43.91749", + "lon": "-69.97255", + "id": 79597535, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "foot_yes": "yes", + "bridge_pedestrian": "yes", + "bicycle_yes": "yes", + "historic_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Androscoggin Swinging Bridge", + "start_date": "1892" + } + }, + { + "name": "Broken Bridge Pond", + "lat": "44.31104", + "lon": "-70.81781", + "id": 1351756979, + "subType": "water", + "type": "natural" + }, + { + "name": "Bridge Street", + "lat": "44.23338", + "lon": "-69.77089", + "id": 451132547, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "44.10284", + "lon": "-70.21693", + "id": 793947121, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Flat Rock Bridge Road", + "lat": "43.34319", + "lon": "-70.96619", + "id": 23048699, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "surface_concrete": "concrete" + } + }, + { + "name": "Watson Settlement Bridge", + "lat": "46.20988", + "lon": "-67.79981", + "id": 1417157151, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Watson Settlement Bridge" + } + }, + { + "name": "Milltown Bridge", + "lat": "45.16966", + "lon": "-67.29658", + "id": 179609567, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Grist Mill Bridge", + "lat": "43.39197", + "lon": "-70.85102", + "id": 757186123, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Grist Mill Bridge (Lebanon, Maine)" + } + }, + { + "name": "Jordan Bridge Road", + "lat": "44.10454", + "lon": "-70.10331", + "id": 1224171419, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Clair-Fort Kent Bridge", + "lat": "47.24965", + "lon": "-68.60428", + "id": 22772981, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "US 1;ME 161 Spur" + } + }, + { + "name": "Twin Bridges", + "lat": "44.34216", + "lon": "-70.19017", + "id": 6602003890, + "subType": "hamlet", + "type": "administrative" + }, + { + "name": "Wiggly Bridge", + "lat": "43.13668", + "lon": "-70.64969", + "id": 1355148917, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_structure_suspension": "suspension" + } + }, + { + "name": "Eliot Bridge", + "lat": "43.19046", + "lon": "-70.82525", + "id": 440176713, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "45.05273", + "lon": "-69.88506", + "id": 450152289, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 16" + } + }, + { + "name": "Casco Bay Bridge", + "lat": "43.64738", + "lon": "-70.25965", + "id": 910860541, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Casco Bay Bridge" + } + }, + { + "name": "Bridge Street", + "lat": "46.77422", + "lon": "-67.83216", + "id": 179623875, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "surface_concrete": "concrete", + "ref": "US 1A" + } + }, + { + "name": "Veterans Memorial Bridge", + "lat": "43.64406", + "lon": "-70.28216", + "id": 354835551, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Durrells Bridge Road", + "lat": "43.37887", + "lon": "-70.50510", + "id": 994710771, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "44.58772", + "lon": "-69.59403", + "id": 79521477, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 100;ME 139;ME 11" + } + }, + { + "name": "Bridgewater Corner", + "lat": "46.45116", + "lon": "-67.85169", + "id": 317724554, + "subType": "hamlet", + "type": "administrative", + "additionalInfo": { + "ele": "160" + } + }, + { + "name": "Campbell Field Bridge", + "lat": "45.08625", + "lon": "-70.29606", + "id": 1251230383, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "foot_yes": "yes", + "horse_no": "no", + "bridge_pedestrian": "yes", + "bicycle_yes": "yes", + "motor_vehicle_no": "no" + } + }, + { + "name": "International Avenue Bridge", + "lat": "45.16109", + "lon": "-67.30265", + "id": 310455227, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridgewater", + "lat": "46.42793", + "lon": "-67.84401", + "id": 317751438, + "subType": "village", + "type": "administrative", + "additionalInfo": { + "ele": "130", + "population": "593" + } + }, + { + "name": "Wagner Bridge Road", + "lat": "44.14483", + "lon": "-69.41576", + "id": 523436365, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Ferry Point Bridge", + "lat": "45.19228", + "lon": "-67.28377", + "id": 360101365, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Kittery Bridge Bypass Buoy 4", + "lat": "43.08707", + "lon": "-70.75873", + "id": 6819116278, + "subType": "buoy_lateral", + "type": "seamark", + "additionalInfo": { + "description": "Navigation Buoy" + } + }, + { + "name": "Bridge Hill", + "lat": "43.80370", + "lon": "-69.81061", + "id": 716424886, + "subType": "peak", + "type": "natural", + "additionalInfo": { + "ele": "47" + } + }, + { + "name": "Penobscot Bridge", + "lat": "44.79991", + "lon": "-68.76566", + "id": 86939177, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 15 Business" + } + }, + { + "name": "Bridgeton Junction", + "lat": "43.86784", + "lon": "-70.80167", + "id": 6157601602, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Piscataqua River Bridge", + "lat": "43.09379", + "lon": "-70.76423", + "id": 23052057, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "horse_no": "no", + "foot_no": "no", + "hgv_designated": "designated", + "bicycle_no": "no", + "bridge_structure_humpback": "humpback", + "toll_no": "no", + "ref": "I 95" + } + }, + { + "name": "Saint Leonard–Van Buren Bridge", + "names": { + "fr": "Pont Saint Léonard – Van Buren" + }, + "lat": "47.16006", + "lon": "-67.92950", + "id": 794625557, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridgewater Fire Department", + "lat": "46.42483", + "lon": "-67.84334", + "id": 14359347818, + "subType": "fire_station", + "type": "emergency" + }, + { + "name": "Kittery Bridge Bypass Buoy 6", + "lat": "43.08860", + "lon": "-70.76120", + "id": 6819116280, + "subType": "buoy_lateral", + "type": "seamark", + "additionalInfo": { + "description": "Navigation Buoy" + } + }, + { + "name": "Trout Brook Bridge", + "lat": "44.10374", + "lon": "-69.61772", + "id": 1524565397, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "covered_yes": "yes", + "bridge_railway": "yes", + "operator": "Wiscasset, Waterville and Farmington Railway" + } + }, + { + "name": "Veterans Memorial Bridge Pathway", + "lat": "43.63885", + "lon": "-70.29325", + "id": 354820651, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_paved": "paved", + "bridge_bicycle": "yes", + "network": "lcn" + } + }, + { + "name": "Bridges Cemetery", + "lat": "44.47869", + "lon": "-68.73116", + "id": 716424896, + "subType": "grave_yard", + "type": "tourism", + "additionalInfo": { + "ele": "41" + } + }, + { + "name": "Veterans Bridge Pathway", + "lat": "43.64401", + "lon": "-70.28212", + "id": 365198485, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_paved": "paved", + "foot_yes": "yes", + "bridge_bicycle": "yes", + "network": "lcn" + } + }, + { + "name": "Piscataqua River Bridge", + "lat": "43.09273", + "lon": "-70.76629", + "id": 1417566703, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Piscataqua River Bridge" + } + }, + { + "name": "Jubilee Park Covered Bridge", + "lat": "43.49745", + "lon": "-70.44871", + "id": 10892480814, + "subType": "park", + "type": "entertainment" + }, + { + "name": "Bridges Drive", + "lat": "43.61037", + "lon": "-70.36750", + "id": 22814731, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Swinging Bridge", + "lat": "44.76266", + "lon": "-69.72033", + "id": 550547591, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes" + } + }, + { + "name": "Edgecomb Bridge", + "lat": "43.67383", + "lon": "-70.69539", + "id": 1019238553, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "ref": "ME 117" + } + }, + { + "name": "Bridge Street", + "lat": "44.54351", + "lon": "-70.54656", + "id": 481641389, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Road", + "lat": "45.16926", + "lon": "-69.36068", + "id": 855924057, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 23" + } + }, + { + "name": "Trenton Bridge Lobster Pound", + "lat": "44.43243", + "lon": "-68.36880", + "id": 5905672028, + "subType": "restaurant", + "type": "sustenance", + "openingHours": "Mo-Fr 08:30-16:30", + "additionalInfo": { + "smoking_outside": "outside", + "takeaway_filter_yes": "yes", + "outdoor_seating_yes": "yes", + "outdoor_seating_filter_yes": "yes", + "takeaway_yes": "yes", + "opening_hours": "Mo-Fr 08:30-16:30", + "capacity": "299", + "cuisine": "lobster,_seafood" + } + }, + { + "name": "Big Bridge Hill", + "lat": "43.22232", + "lon": "-70.63368", + "id": 716423598, + "subType": "peak", + "type": "natural", + "additionalInfo": { + "ele": "41" + } + }, + { + "name": "Petit Pont International", + "enName": "Little International Bridge", + "lat": "47.45977", + "lon": "-69.22419", + "id": 1421093035, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes" + } + }, + { + "name": "Bridgeside Market", + "lat": "44.71815", + "lon": "-69.79788", + "id": 5651089200, + "subType": "fuel", + "type": "transportation" + }, + { + "name": "Emery's Bridge", + "lat": "43.24709", + "lon": "-70.72745", + "id": 1487262977, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes" + } + }, + { + "name": "Cobbs Bridge Road", + "lat": "43.97995", + "lon": "-70.26538", + "id": 992741765, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Abol Bridge Campground", + "lat": "45.83562", + "lon": "-68.96625", + "id": 4158722384, + "subType": "camp_site", + "type": "tourism" + }, + { + "name": "Bridge Street Dam", + "lat": "43.80180", + "lon": "-70.18172", + "id": 1062267299, + "subType": "dam", + "type": "man_made" + }, + { + "name": "Tukey's Bridge", + "lat": "43.67704", + "lon": "-70.25658", + "id": 65131861, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "horse_no": "no", + "foot_no": "no", + "hgv_designated": "designated", + "bicycle_no": "no", + "operator": "METRO", + "ref": "I 295;US 1;ME 26", + "route_bus_ref": "BRZ, 9A" + } + }, + { + "name": "Bridge Street", + "lat": "44.58718", + "lon": "-69.59049", + "id": 79521545, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 100;ME 139;ME 11" + } + }, + { + "name": "Veterans Memorial Bridge", + "lat": "43.64440", + "lon": "-70.28141", + "id": 736364371, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Veteran's Memorial Bridge (Portland, Maine)" + } + }, + { + "name": "Tukey's Bridge", + "lat": "43.67704", + "lon": "-70.25632", + "id": 65131863, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "horse_no": "no", + "foot_no": "no", + "hgv_designated": "designated", + "bicycle_no": "no", + "operator": "METRO", + "ref": "I 295;US 1;ME 26", + "route_bus_ref": "BRZ, 9B" + } + }, + { + "name": "Martin Point Bridge", + "lat": "43.69113", + "lon": "-70.24527", + "id": 22821285, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "US 1" + } + }, + { + "name": "Brookline Road", + "lat": "44.60646", + "lon": "-68.87211", + "id": 1270184973, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_dirt": "dirt", + "foot_yes": "yes", + "bridge_pedestrian": "yes", + "bicycle_yes": "yes", + "bridge_structure_truss": "truss", + "motor_vehicle_no": "no", + "artist_name": "American Bridge Company", + "start_date": "1908" + } + }, + { + "name": "Bridge Street", + "lat": "47.36143", + "lon": "-68.32859", + "id": 10178529, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Westport Bridge Road", + "lat": "43.97308", + "lon": "-69.67519", + "id": 22911905, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bennett Bridge", + "lat": "44.91914", + "lon": "-71.03822", + "id": 1300560123, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "wikipedia": "http://en.wikipedia.org/wiki/Bennett Bridge" + } + }, + { + "name": "Bay Bridge Estates", + "lat": "43.93590", + "lon": "-69.87981", + "id": 1176315549, + "subType": "residential", + "type": "administrative" + }, + { + "name": "Bridge Street", + "lat": "44.31692", + "lon": "-69.77303", + "id": 22875357, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "ME 105 Extension" + } + }, + { + "name": "Bridge Street", + "lat": "43.80731", + "lon": "-70.88894", + "id": 757191779, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "ref": "ME 25" + } + }, + { + "name": "Bridge Street", + "lat": "44.23081", + "lon": "-69.77432", + "id": 22875359, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "US 201" + } + }, + { + "name": "Bridge Street", + "lat": "44.66224", + "lon": "-70.15079", + "id": 838960009, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "hgv_yes": "yes", + "ref": "US 2;ME 4;ME 43" + } + }, + { + "name": "International Avenue Bridge", + "lat": "45.16110", + "lon": "-67.30390", + "id": 652976675, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "NB 1" + } + }, + { + "name": "Twin Bridge Market", + "lat": "44.34220", + "lon": "-70.18227", + "id": 10118464656, + "subType": "convenience", + "type": "shop" + }, + { + "name": "Bridge Street", + "lat": "43.46653", + "lon": "-70.79540", + "id": 569183011, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "alt_name": "State Route 224", + "ref": "ME 224" + } + }, + { + "name": "International Avenue Bridge", + "lat": "45.16098", + "lon": "-67.30263", + "id": 652976677, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Bridge Street", + "lat": "44.52567", + "lon": "-67.61491", + "id": 1391500321, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Ferry Point Bridge", + "lat": "45.19187", + "lon": "-67.28360", + "id": 179608805, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "ME 9" + } + }, + { + "name": "Wire Bridge Road", + "lat": "44.89086", + "lon": "-70.09237", + "id": 389800811, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Chester G. Bridges Tennis Complex", + "lat": "44.90527", + "lon": "-68.66603", + "id": 716469478, + "subType": "park", + "type": "entertainment", + "additionalInfo": { + "ele": "35" + } + }, + { + "name": "Bridge Street", + "lat": "44.58758", + "lon": "-69.59255", + "id": 79521519, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 100;ME 139;ME 11" + } + }, + { + "name": "Duck Brook Bridge", + "lat": "44.39161", + "lon": "-68.23587", + "id": 590083197, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "foot_yes": "yes", + "bicycle_yes": "yes", + "horse_yes": "yes", + "motor_vehicle_no": "no" + } + }, + { + "name": "Milltown Bridge", + "lat": "45.16969", + "lon": "-67.29658", + "id": 736427071, + "subType": "bridge", + "type": "man_made" + }, + { + "name": "Piscataqua River Bridge", + "lat": "43.09389", + "lon": "-70.76433", + "id": 58949401, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes", + "horse_no": "no", + "foot_no": "no", + "hgv_designated": "designated", + "bicycle_no": "no", + "bridge_structure_humpback": "humpback", + "toll_no": "no", + "ref": "I 95" + } + }, + { + "name": "Veterans Memorial Bridge", + "lat": "43.64413", + "lon": "-70.28222", + "id": 354850939, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Two Cent Bridge", + "lat": "44.55091", + "lon": "-69.62521", + "id": 22868417, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes" + } + }, + { + "name": "Emerys Bridge", + "lat": "43.24661", + "lon": "-70.72711", + "id": 317646608, + "subType": "hamlet", + "type": "administrative", + "additionalInfo": { + "ele": "32" + } + }, + { + "name": "Sebasticook Bridge Road", + "lat": "44.58568", + "lon": "-69.54985", + "id": 844692347, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "ME 139" + } + }, + { + "name": "Gold Star Memorial Bridge", + "lat": "46.68517", + "lon": "-68.01528", + "id": 194671421, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "surface_concrete": "concrete" + } + }, + { + "name": "Vietnam Veterans Memorial Bridge", + "lat": "44.11534", + "lon": "-70.21401", + "id": 190561149, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "operator": "Lewiston-Auburn Citylink", + "route_bus_ref": "6" + } + }, + { + "name": "Vietnam Veterans Memorial Bridge", + "lat": "44.11526", + "lon": "-70.21412", + "id": 190561137, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "operator": "Lewiston-Auburn Citylink", + "route_bus_ref": "6" + } + }, + { + "name": "Bridgewater Grammar School", + "lat": "46.42172", + "lon": "-67.84504", + "id": 716461146, + "subType": "school", + "type": "education", + "additionalInfo": { + "ele": "125" + } + }, + { + "name": "Bay Bridge Landing Wetland Park", + "lat": "43.93422", + "lon": "-69.88905", + "id": 1244287705, + "subType": "park", + "type": "entertainment" + }, + { + "name": "Wilder Bridge", + "lat": "43.90932", + "lon": "-69.80039", + "id": 255622351, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "ME 127" + } + }, + { + "name": "The Bridge Street Green", + "lat": "44.66229", + "lon": "-70.15522", + "id": 1176243883, + "subType": "park", + "type": "entertainment" + }, + { + "name": "Casco Bay Bridge", + "lat": "43.64230", + "lon": "-70.25656", + "id": 100180481, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "ME 77" + } + }, + { + "name": "Hemlock Bridge", + "lat": "44.07960", + "lon": "-70.90286", + "id": 1004424165, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "covered_yes": "yes", + "historic_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Hemlock Bridge" + } + }, + { + "name": "Casco Bay Bridge", + "lat": "43.64226", + "lon": "-70.25671", + "id": 100180487, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "network": "ncn", + "operator": "East Coast Greenway Alliance", + "ref": "ME 77" + } + }, + { + "name": "Vietnam Veterans Memorial Bridge", + "lat": "44.11729", + "lon": "-70.21719", + "id": 20439497, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "operator": "Lewiston-Auburn Citylink", + "route_bus_ref": "6" + } + }, + { + "name": "Round Pond Bridge", + "lat": "46.22896", + "lon": "-69.56659", + "id": 13624836570, + "subType": "viewpoint", + "type": "tourism" + }, + { + "name": "International Avenue Bridge", + "lat": "45.16099", + "lon": "-67.30390", + "id": 179619895, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "1" + } + }, + { + "name": "Bridge Street Dam", + "lat": "43.46628", + "lon": "-70.79536", + "id": 1467990395, + "subType": "dam", + "type": "man_made", + "additionalInfo": { + "ele": "244" + } + }, + { + "name": "Babb's Bridge", + "lat": "43.76606", + "lon": "-70.44792", + "id": 1378377377, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "covered_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Babb's Bridge" + } + }, + { + "name": "Porter-Parsonsfield Bridge", + "lat": "43.79122", + "lon": "-70.93793", + "id": 1102411581, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes", + "covered_yes": "yes", + "historic_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Porter-Parsonsfield Bridge" + } + }, + { + "name": "Covered Bridge Road", + "lat": "44.94355", + "lon": "-68.96863", + "id": 602618593, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Franklin Delano Roosevelt Bridge", + "lat": "44.85984", + "lon": "-66.97860", + "id": 22994831, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Franklin Delano Roosevelt Bridge" + } + }, + { + "name": "Swetts Bridge Road", + "lat": "43.46312", + "lon": "-70.70809", + "id": 1492069375, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "Caution, wetland,no bridges", + "lat": "46.08203", + "lon": "-68.79149", + "id": 8792738506, + "subType": "information", + "type": "tourism" + }, + { + "name": "Caution, wetland,no bridges", + "lat": "46.08203", + "lon": "-68.79149", + "id": 8792738506, + "subType": "information_guidepost", + "type": "tourism" + }, + { + "name": "Bridge Ruins", + "lat": "43.30496", + "lon": "-70.90621", + "id": 580558153, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "access_no": "no", + "horse_no": "no", + "foot_no": "no", + "bicycle_no": "no", + "motor_vehicle_no": "no" + } + }, + { + "name": "Bridge End Park", + "lat": "44.29056", + "lon": "-68.69157", + "id": 13147170864, + "subType": "park", + "type": "entertainment" + }, + { + "name": "Eliot Bridge", + "lat": "43.19080", + "lon": "-70.82592", + "id": 436896479, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes" + } + }, + { + "name": "Vietnam Veterans Memorial Bridge", + "lat": "44.11723", + "lon": "-70.21731", + "id": 119279563, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "operator": "Lewiston-Auburn Citylink", + "route_bus_ref": "6" + } + }, + { + "name": "Scotland Bridge Road", + "lat": "43.16019", + "lon": "-70.70912", + "id": 755809243, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_asphalt": "asphalt", + "bridge_car": "yes" + } + }, + { + "name": "Armistice Bridge", + "lat": "44.43289", + "lon": "-69.00674", + "id": 263652897, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_pedestrian": "yes", + "surface_paved": "paved", + "motor_vehicle_no": "no", + "network": "ncn", + "operator": "East Coast Greenway Alliance" + } + }, + { + "name": "Bridge Academy Public Library", + "lat": "44.10484", + "lon": "-69.72613", + "id": 1528016587, + "subType": "library", + "type": "education", + "additionalInfo": { + "ele": "6", + "wikipedia": "http://en.wikipedia.org/wiki/Bridge Academy Public Library" + } + }, + { + "name": "Bridge Academy Public Library", + "lat": "44.10484", + "lon": "-69.72613", + "id": 1528016587, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "ele": "6", + "wikipedia": "http://en.wikipedia.org/wiki/Bridge Academy Public Library" + } + }, + { + "name": "Wiggly Bridge", + "lat": "43.13660", + "lon": "-70.64741", + "id": 1355483921, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_asphalt": "asphalt", + "parking_surface": "surface", + "access_private": "private", + "capacity": "6" + } + }, + { + "name": "Carlton Bridge", + "lat": "43.91156", + "lon": "-69.80387", + "id": 350006785, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "access_private": "private", + "wikipedia": "http://en.wikipedia.org/wiki/Carlton Bridge" + } + }, + { + "name": "Bailey Island Bridge", + "lat": "43.74978", + "lon": "-69.98808", + "id": 1019482907, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "historic_yes": "yes", + "wikipedia": "http://en.wikipedia.org/wiki/Bailey Island Bridge", + "ref": "ME 24", + "start_date": "1928" + } + } + ], + "cities": [ + { + "name": "Hermon", + "lat": "44.81010", + "lon": "-68.91380", + "id": 158853983, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Lane", + "lat": "44.81057", + "lon": "-68.91543", + "id": 3669 + } + ], + "matchStreet": 1 + }, + { + "name": "Westbrook", + "lat": "43.67703", + "lon": "-70.37116", + "id": 158859102, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Westbrook Arterial", + "lat": "43.66841", + "lon": "-70.33286", + "id": 148869 + }, + { + "name": "Westbrook Public Works", + "lat": "43.66438", + "lon": "-70.37739", + "id": 121293 + }, + { + "name": "Westbrook Common", + "lat": "43.67653", + "lon": "-70.36657", + "id": 1561 + }, + { + "name": "Bridge Street", + "lat": "43.68016", + "lon": "-70.36840", + "id": 18, + "buildings": [ + { + "name": "3", + "lat": "43.67706", + "lon": "-70.36672", + "postcode": "04092" + }, + { + "name": "41", + "lat": "43.67875", + "lon": "-70.36737", + "postcode": "04092" + }, + { + "name": "42", + "lat": "43.67849", + "lon": "-70.36777", + "postcode": "04092" + }, + { + "name": "51", + "lat": "43.67891", + "lon": "-70.36767", + "postcode": "04092" + }, + { + "name": "67", + "lat": "43.67940", + "lon": "-70.36820", + "postcode": "04092" + }, + { + "name": "72", + "lat": "43.67894", + "lon": "-70.36818", + "postcode": "04092" + }, + { + "name": "75", + "lat": "43.67956", + "lon": "-70.36835", + "postcode": "04092" + }, + { + "name": "77", + "lat": "43.67959", + "lon": "-70.36838", + "postcode": "04092" + }, + { + "name": "80", + "lat": "43.67925", + "lon": "-70.36863", + "postcode": "04092" + }, + { + "name": "87", + "lat": "43.68016", + "lon": "-70.36840" + }, + { + "name": "90", + "lat": "43.67914", + "lon": "-70.36857", + "postcode": "04092" + }, + { + "name": "98", + "lat": "43.68001", + "lon": "-70.36953", + "postcode": "04092" + }, + { + "name": "100", + "lat": "43.68026", + "lon": "-70.36921", + "postcode": "04092" + }, + { + "name": "108", + "lat": "43.68044", + "lon": "-70.36898", + "postcode": "04092" + }, + { + "name": "116", + "lat": "43.68072", + "lon": "-70.36876", + "postcode": "04092" + }, + { + "name": "119", + "lat": "43.68060", + "lon": "-70.36825", + "postcode": "04092" + }, + { + "name": "128", + "lat": "43.68109", + "lon": "-70.36853", + "postcode": "04092" + }, + { + "name": "131", + "lat": "43.68085", + "lon": "-70.36784", + "postcode": "04092" + }, + { + "name": "134", + "lat": "43.68130", + "lon": "-70.36833", + "postcode": "04092" + }, + { + "name": "135", + "lat": "43.68113", + "lon": "-70.36780", + "postcode": "04092" + }, + { + "name": "146", + "lat": "43.68161", + "lon": "-70.36810", + "postcode": "04092" + }, + { + "name": "150", + "lat": "43.68168", + "lon": "-70.36801", + "postcode": "04092" + }, + { + "name": "151", + "lat": "43.68150", + "lon": "-70.36754", + "postcode": "04092" + }, + { + "name": "155", + "lat": "43.68173", + "lon": "-70.36732", + "postcode": "04092" + }, + { + "name": "159", + "lat": "43.68185", + "lon": "-70.36724", + "postcode": "04092" + }, + { + "name": "160", + "lat": "43.68206", + "lon": "-70.36782", + "postcode": "04092" + }, + { + "name": "162", + "lat": "43.68209", + "lon": "-70.36780", + "postcode": "04092" + }, + { + "name": "163", + "lat": "43.68203", + "lon": "-70.36709", + "postcode": "04092" + }, + { + "name": "172", + "lat": "43.68241", + "lon": "-70.36754", + "postcode": "04092" + }, + { + "name": "173", + "lat": "43.68220", + "lon": "-70.36694", + "postcode": "04092" + }, + { + "name": "178", + "lat": "43.68257", + "lon": "-70.36735", + "postcode": "04092" + }, + { + "name": "181", + "lat": "43.68252", + "lon": "-70.36681", + "postcode": "04092" + }, + { + "name": "182", + "lat": "43.68266", + "lon": "-70.36720", + "postcode": "04092" + }, + { + "name": "186", + "lat": "43.68277", + "lon": "-70.36709", + "postcode": "04092" + }, + { + "name": "192", + "lat": "43.68296", + "lon": "-70.36709", + "postcode": "04092" + }, + { + "name": "194", + "lat": "43.68300", + "lon": "-70.36705", + "postcode": "04092" + }, + { + "name": "196", + "lat": "43.68311", + "lon": "-70.36692", + "postcode": "04092" + }, + { + "name": "197", + "lat": "43.68296", + "lon": "-70.36640", + "postcode": "04092" + }, + { + "name": "204", + "lat": "43.68338", + "lon": "-70.36681", + "postcode": "04092" + }, + { + "name": "210", + "lat": "43.68356", + "lon": "-70.36668", + "postcode": "04092" + }, + { + "name": "221", + "lat": "43.68353", + "lon": "-70.36593", + "postcode": "04092" + }, + { + "name": "224", + "lat": "43.68404", + "lon": "-70.36604", + "postcode": "04092" + }, + { + "name": "225", + "lat": "43.68350", + "lon": "-70.36567", + "postcode": "04092" + }, + { + "name": "231", + "lat": "43.68381", + "lon": "-70.36561", + "postcode": "04092" + }, + { + "name": "234", + "lat": "43.68423", + "lon": "-70.36584", + "postcode": "04092" + }, + { + "name": "237", + "lat": "43.68403", + "lon": "-70.36531", + "postcode": "04092" + }, + { + "name": "238", + "lat": "43.68438", + "lon": "-70.36546", + "postcode": "04092" + }, + { + "name": "243", + "lat": "43.68417", + "lon": "-70.36509", + "postcode": "04092" + }, + { + "name": "248", + "lat": "43.68459", + "lon": "-70.36524", + "postcode": "04092" + }, + { + "name": "249", + "lat": "43.68440", + "lon": "-70.36486", + "postcode": "04092" + }, + { + "name": "259", + "lat": "43.68463", + "lon": "-70.36460", + "postcode": "04092" + }, + { + "name": "262", + "lat": "43.68496", + "lon": "-70.36488", + "postcode": "04092" + }, + { + "name": "271", + "lat": "43.68491", + "lon": "-70.36423", + "postcode": "04092" + }, + { + "name": "272", + "lat": "43.68518", + "lon": "-70.36460", + "postcode": "04092" + }, + { + "name": "281", + "lat": "43.68518", + "lon": "-70.36400", + "postcode": "04092" + }, + { + "name": "282", + "lat": "43.68538", + "lon": "-70.36430", + "postcode": "04092" + }, + { + "name": "286", + "lat": "43.68559", + "lon": "-70.36413", + "postcode": "04092" + }, + { + "name": "287", + "lat": "43.68544", + "lon": "-70.36366", + "postcode": "04092" + }, + { + "name": "296", + "lat": "43.68575", + "lon": "-70.36396", + "postcode": "04092" + }, + { + "name": "299", + "lat": "43.68570", + "lon": "-70.36346", + "postcode": "04092" + }, + { + "name": "300", + "lat": "43.68587", + "lon": "-70.36372", + "postcode": "04092" + }, + { + "name": "315", + "lat": "43.68601", + "lon": "-70.36271", + "postcode": "04092" + }, + { + "name": "316", + "lat": "43.68637", + "lon": "-70.36331", + "postcode": "04092" + }, + { + "name": "324", + "lat": "43.68660", + "lon": "-70.36301", + "postcode": "04092" + }, + { + "name": "330", + "lat": "43.68670", + "lon": "-70.36295", + "postcode": "04092" + }, + { + "name": "331", + "lat": "43.68653", + "lon": "-70.36252", + "postcode": "04092" + }, + { + "name": "332", + "lat": "43.68680", + "lon": "-70.36282", + "postcode": "04092" + }, + { + "name": "339", + "lat": "43.68671", + "lon": "-70.36235", + "postcode": "04092" + }, + { + "name": "344", + "lat": "43.68712", + "lon": "-70.36258", + "postcode": "04092" + }, + { + "name": "347", + "lat": "43.68698", + "lon": "-70.36205", + "postcode": "04092" + }, + { + "name": "348", + "lat": "43.68732", + "lon": "-70.36243", + "postcode": "04092" + }, + { + "name": "352", + "lat": "43.68741", + "lon": "-70.36226", + "postcode": "04092" + }, + { + "name": "356", + "lat": "43.68749", + "lon": "-70.36217", + "postcode": "04092" + }, + { + "name": "359", + "lat": "43.68725", + "lon": "-70.36183", + "postcode": "04092" + }, + { + "name": "360", + "lat": "43.68764", + "lon": "-70.36211", + "postcode": "04092" + }, + { + "name": "363", + "lat": "43.68755", + "lon": "-70.36155", + "postcode": "04092" + }, + { + "name": "364", + "lat": "43.68775", + "lon": "-70.36198", + "postcode": "04092" + }, + { + "name": "365", + "lat": "43.68767", + "lon": "-70.36149", + "postcode": "04092" + }, + { + "name": "366", + "lat": "43.68786", + "lon": "-70.36187", + "postcode": "04092" + }, + { + "name": "368", + "lat": "43.68797", + "lon": "-70.36179", + "postcode": "04092" + }, + { + "name": "369", + "lat": "43.68778", + "lon": "-70.36134", + "postcode": "04092" + }, + { + "name": "373", + "lat": "43.68797", + "lon": "-70.36125", + "postcode": "04092" + }, + { + "name": "376", + "lat": "43.68823", + "lon": "-70.36157", + "postcode": "04092" + }, + { + "name": "382", + "lat": "43.68839", + "lon": "-70.36136", + "postcode": "04092" + }, + { + "name": "406", + "lat": "43.68935", + "lon": "-70.36022", + "postcode": "04092" + }, + { + "name": "410", + "lat": "43.69023", + "lon": "-70.36160", + "postcode": "04092" + }, + { + "name": "418", + "lat": "43.68957", + "lon": "-70.35994", + "postcode": "04092" + }, + { + "name": "422", + "lat": "43.68989", + "lon": "-70.35962", + "postcode": "04092" + }, + { + "name": "426", + "lat": "43.69134", + "lon": "-70.36035", + "postcode": "04092" + }, + { + "name": "429", + "lat": "43.69047", + "lon": "-70.35820", + "postcode": "04092" + }, + { + "name": "430", + "lat": "43.69033", + "lon": "-70.35939", + "postcode": "04092" + }, + { + "name": "436", + "lat": "43.69065", + "lon": "-70.35921", + "postcode": "04092" + }, + { + "name": "455", + "lat": "43.69090", + "lon": "-70.35868", + "postcode": "04092" + }, + { + "name": "461", + "lat": "43.69109", + "lon": "-70.35866", + "postcode": "04092" + }, + { + "name": "508", + "lat": "43.69158", + "lon": "-70.35917", + "postcode": "04092" + }, + { + "name": "511", + "lat": "43.69188", + "lon": "-70.35866", + "postcode": "04092" + }, + { + "name": "516", + "lat": "43.69188", + "lon": "-70.35926", + "postcode": "04092" + }, + { + "name": "517", + "lat": "43.69217", + "lon": "-70.35876", + "postcode": "04092" + }, + { + "name": "524", + "lat": "43.69213", + "lon": "-70.35930", + "postcode": "04092" + }, + { + "name": "527", + "lat": "43.69256", + "lon": "-70.35825", + "postcode": "04092" + }, + { + "name": "530", + "lat": "43.69236", + "lon": "-70.35941", + "postcode": "04092" + }, + { + "name": "536", + "lat": "43.69267", + "lon": "-70.35986", + "postcode": "04092" + }, + { + "name": "542", + "lat": "43.69282", + "lon": "-70.35928", + "postcode": "04092" + }, + { + "name": "545", + "lat": "43.69276", + "lon": "-70.35868", + "postcode": "04092" + }, + { + "name": "547", + "lat": "43.69296", + "lon": "-70.35861", + "postcode": "04092" + }, + { + "name": "548", + "lat": "43.69317", + "lon": "-70.35906", + "postcode": "04092" + }, + { + "name": "555", + "lat": "43.69332", + "lon": "-70.35848", + "postcode": "04092" + }, + { + "name": "556", + "lat": "43.69338", + "lon": "-70.35896", + "postcode": "04092" + }, + { + "name": "561", + "lat": "43.69351", + "lon": "-70.35838", + "postcode": "04092" + }, + { + "name": "565", + "lat": "43.69371", + "lon": "-70.35829", + "postcode": "04092" + }, + { + "name": "570", + "lat": "43.69396", + "lon": "-70.35870", + "postcode": "04092" + }, + { + "name": "573", + "lat": "43.69391", + "lon": "-70.35816", + "postcode": "04092" + }, + { + "name": "581", + "lat": "43.69408", + "lon": "-70.35799", + "postcode": "04092" + }, + { + "name": "585", + "lat": "43.69424", + "lon": "-70.35793", + "postcode": "04092" + }, + { + "name": "591", + "lat": "43.69449", + "lon": "-70.35780", + "postcode": "04092" + }, + { + "name": "598", + "lat": "43.69511", + "lon": "-70.35893", + "postcode": "04092" + }, + { + "name": "604", + "lat": "43.69494", + "lon": "-70.35823", + "postcode": "04092" + } + ], + "intersectedStreets": [ + { + "name": "Main Street", + "names": { + "old_name": "State Route 25 (Bus)" + }, + "lat": "43.67692", + "lon": "-70.36775" + }, + { + "name": "Riverbank Footpath", + "lat": "43.67745", + "lon": "-70.36754" + }, + { + "name": "Myrtle Street", + "lat": "43.68516", + "lon": "-70.36430" + }, + { + "name": "Falmouth Street", + "lat": "43.68642", + "lon": "-70.36295" + }, + { + "name": "Everett Street", + "lat": "43.68696", + "lon": "-70.36239" + }, + { + "name": "Beechwood Avenue", + "lat": "43.68752", + "lon": "-70.36187" + }, + { + "name": "Cumberland Street", + "lat": "43.68859", + "lon": "-70.36099" + }, + { + "name": "West Jr High", + "lat": "43.69000", + "lon": "-70.35919" + }, + { + "name": "Graham Road", + "lat": "43.69132", + "lon": "-70.35893" + }, + { + "name": "Lugrin Street", + "lat": "43.69309", + "lon": "-70.35883" + }, + { + "name": "East Bridge Street", + "lat": "43.69517", + "lon": "-70.35778" + }, + { + "name": "Methodist Road", + "lat": "43.69517", + "lon": "-70.35778" + }, + { + "name": "Brown Street", + "lat": "43.67875", + "lon": "-70.36762" + }, + { + "name": "Winslow Street", + "lat": "43.67914", + "lon": "-70.36810" + }, + { + "name": "Lincoln Street", + "lat": "43.68049", + "lon": "-70.36861" + }, + { + "name": "Dodge Street", + "lat": "43.68133", + "lon": "-70.36793" + }, + { + "name": "Mitchell Street", + "lat": "43.68209", + "lon": "-70.36735" + }, + { + "name": "Walker Street", + "lat": "43.68285", + "lon": "-70.36679" + }, + { + "name": "North Street", + "lat": "43.68347", + "lon": "-70.36621" + }, + { + "name": "Pierce Street", + "lat": "43.68347", + "lon": "-70.36621" + }, + { + "name": "King Street", + "lat": "43.68401", + "lon": "-70.36559" + }, + { + "name": "Lyman Street", + "lat": "43.68463", + "lon": "-70.36490" + }, + { + "name": "Dana Court", + "lat": "43.67850", + "lon": "-70.36735" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Newry", + "lat": "44.48769", + "lon": "-70.78766", + "id": 158819677, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street (North Newry)", + "lat": "44.54147", + "lon": "-70.83165", + "id": 17280 + } + ], + "matchStreet": 1 + }, + { + "name": "Livermore Falls", + "lat": "44.47534", + "lon": "-70.18811", + "id": 158910039, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.47405", + "lon": "-70.19068", + "id": 50246, + "buildings": [ + { + "name": "3", + "lat": "44.47405", + "lon": "-70.19068", + "postcode": "04254" + }, + { + "name": "8", + "lat": "44.47359", + "lon": "-70.19077", + "postcode": "04254" + } + ], + "intersectedStreets": [ + { + "name": "Federal Road", + "lat": "44.47310", + "lon": "-70.19156" + }, + { + "name": "Water Street", + "lat": "44.47331", + "lon": "-70.19141" + }, + { + "name": "Main Street", + "lat": "44.47402", + "lon": "-70.19019" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Howland", + "lat": "45.23867", + "lon": "-68.66364", + "id": 158835521, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.23728", + "lon": "-68.65758", + "id": 45703 + } + ], + "matchStreet": 1 + }, + { + "name": "Bangor", + "enName": "Bangor", + "names": { + "ru": "Бангор", + "uk": "Бангор", + "he": "בנגור" + }, + "lat": "44.80118", + "lon": "-68.77781", + "id": 158862401, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Lane", + "lat": "44.81055", + "lon": "-68.91543", + "id": 3668 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Fort Fairfield", + "lat": "46.76983", + "lon": "-67.83457", + "id": 158826319, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "46.77297", + "lon": "-67.83513", + "id": 122576 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Bath", + "lat": "43.91076", + "lon": "-69.82086", + "id": 158843471, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.87553", + "lon": "-69.82548", + "id": 105727, + "buildings": [ + { + "name": "7", + "lat": "43.87553", + "lon": "-69.82548", + "postcode": "04530" + }, + { + "name": "8", + "lat": "43.87595", + "lon": "-69.82487", + "postcode": "04530" + }, + { + "name": "10", + "lat": "43.87630", + "lon": "-69.82479", + "postcode": "04530" + } + ], + "intersectedStreets": [ + { + "name": "High Street", + "lat": "43.87647", + "lon": "-69.82545" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Richmond", + "lat": "44.08730", + "lon": "-69.79893", + "id": 158844495, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.09249", + "lon": "-69.79715", + "id": 76629, + "buildings": [ + { + "name": "3", + "lat": "44.09101", + "lon": "-69.79659", + "postcode": "04357" + }, + { + "name": "5", + "lat": "44.09116", + "lon": "-69.79676", + "postcode": "04357" + }, + { + "name": "10", + "lat": "44.09125", + "lon": "-69.79737", + "postcode": "04357" + }, + { + "name": "11", + "lat": "44.09150", + "lon": "-69.79698", + "postcode": "04357" + }, + { + "name": "20", + "lat": "44.09255", + "lon": "-69.79842", + "postcode": "04357" + }, + { + "name": "21", + "lat": "44.09188", + "lon": "-69.79743", + "postcode": "04357" + }, + { + "name": "26", + "lat": "44.09249", + "lon": "-69.79715", + "postcode": "04357" + } + ], + "intersectedStreets": [ + { + "name": "North Front Street", + "lat": "44.09027", + "lon": "-69.79625" + }, + { + "name": "Arch Street", + "lat": "44.09093", + "lon": "-69.79683" + }, + { + "name": "Hill Street", + "lat": "44.09159", + "lon": "-69.79754" + }, + { + "name": "Hillside Street", + "lat": "44.09204", + "lon": "-69.79792" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Presque Isle", + "enName": "Presque Isle", + "names": { + "ru": "Преск-Айл", + "uk": "Преск-Айл" + }, + "lat": "46.68148", + "lon": "-68.01636", + "id": 158814029, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Gorham", + "lat": "43.67969", + "lon": "-70.44293", + "id": 158860614, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "East Millinocket", + "lat": "45.62755", + "lon": "-68.57448", + "id": 158856521, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Lewiston", + "lat": "44.10035", + "lon": "-70.21478", + "id": 158821172, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.10392", + "lon": "-70.21916", + "id": 115087, + "intersectedStreets": [ + { + "name": "EAST COAST GREENWAY", + "lat": "44.10350", + "lon": "-70.21832" + }, + { + "name": "Spring Street", + "lat": "44.10355", + "lon": "-70.21837" + }, + { + "name": "Summer Street", + "lat": "44.10392", + "lon": "-70.21916" + }, + { + "name": "Winter Street", + "lat": "44.10438", + "lon": "-70.21987" + }, + { + "name": "Hammond Street", + "lat": "44.10264", + "lon": "-70.21620" + }, + { + "name": "High Street", + "lat": "44.10264", + "lon": "-70.21620" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Milbridge", + "lat": "44.53535", + "lon": "-67.88117", + "id": 158816308, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.54060", + "lon": "-67.88197", + "id": 144065 + } + ], + "matchStreet": 1 + }, + { + "name": "Old Town", + "lat": "44.93467", + "lon": "-68.64533", + "id": 158842929, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.94519", + "lon": "-68.65249", + "id": 78681 + } + ], + "matchStreet": 1 + }, + { + "name": "Topsham", + "lat": "43.92758", + "lon": "-69.97588", + "id": 158868530, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.92176", + "lon": "-69.97308", + "id": 89197, + "buildings": [ + { + "name": "5", + "lat": "43.91709", + "lon": "-69.97544", + "postcode": "04086" + }, + { + "name": "7", + "lat": "43.91745", + "lon": "-69.97536", + "postcode": "04086" + }, + { + "name": "9", + "lat": "43.91796", + "lon": "-69.97461", + "postcode": "04086" + }, + { + "name": "11", + "lat": "43.91811", + "lon": "-69.97426", + "postcode": "04086" + }, + { + "name": "15", + "lat": "43.91827", + "lon": "-69.97401", + "postcode": "04086" + }, + { + "name": "19", + "lat": "43.91867", + "lon": "-69.97390", + "postcode": "04086" + }, + { + "name": "21", + "lat": "43.91893", + "lon": "-69.97379", + "postcode": "04086" + }, + { + "name": "22", + "lat": "43.91952", + "lon": "-69.97313", + "postcode": "04086" + }, + { + "name": "23", + "lat": "43.91913", + "lon": "-69.97364", + "postcode": "04086" + }, + { + "name": "25", + "lat": "43.91927", + "lon": "-69.97364", + "postcode": "04086" + }, + { + "name": "29", + "lat": "43.91981", + "lon": "-69.97360", + "postcode": "04086" + }, + { + "name": "30", + "lat": "43.92008", + "lon": "-69.97295", + "postcode": "04086" + }, + { + "name": "31", + "lat": "43.92003", + "lon": "-69.97355", + "postcode": "04086" + }, + { + "name": "32", + "lat": "43.92023", + "lon": "-69.97289", + "postcode": "04086" + }, + { + "name": "33", + "lat": "43.92049", + "lon": "-69.97340", + "postcode": "04086" + }, + { + "name": "34", + "lat": "43.92043", + "lon": "-69.97289", + "postcode": "04086" + }, + { + "name": "35", + "lat": "43.92062", + "lon": "-69.97334", + "postcode": "04086" + }, + { + "name": "38", + "lat": "43.92079", + "lon": "-69.97272", + "postcode": "04086" + }, + { + "name": "39", + "lat": "43.92100", + "lon": "-69.97328", + "postcode": "04086" + }, + { + "name": "41", + "lat": "43.92116", + "lon": "-69.97323", + "postcode": "04086" + }, + { + "name": "42", + "lat": "43.92111", + "lon": "-69.97270", + "postcode": "04086" + }, + { + "name": "43", + "lat": "43.92147", + "lon": "-69.97353", + "postcode": "04086" + }, + { + "name": "44", + "lat": "43.92127", + "lon": "-69.97259", + "postcode": "04086" + }, + { + "name": "47", + "lat": "43.92176", + "lon": "-69.97308", + "postcode": "04086" + }, + { + "name": "49", + "lat": "43.92198", + "lon": "-69.97304", + "postcode": "04086" + }, + { + "name": "50", + "lat": "43.92193", + "lon": "-69.97259", + "postcode": "04086" + }, + { + "name": "51", + "lat": "43.92233", + "lon": "-69.97317", + "postcode": "04086" + }, + { + "name": "52", + "lat": "43.92227", + "lon": "-69.97252", + "postcode": "04086" + }, + { + "name": "53", + "lat": "43.92284", + "lon": "-69.97295", + "postcode": "04086" + }, + { + "name": "56", + "lat": "43.92272", + "lon": "-69.97229", + "postcode": "04086" + }, + { + "name": "58", + "lat": "43.92303", + "lon": "-69.97229", + "postcode": "04086" + }, + { + "name": "62", + "lat": "43.92334", + "lon": "-69.97216", + "postcode": "04086" + }, + { + "name": "63", + "lat": "43.92340", + "lon": "-69.97272", + "postcode": "04086" + }, + { + "name": "64", + "lat": "43.92354", + "lon": "-69.97214", + "postcode": "04086" + }, + { + "name": "67", + "lat": "43.92389", + "lon": "-69.97259", + "postcode": "04086" + }, + { + "name": "72", + "lat": "43.92440", + "lon": "-69.97192", + "postcode": "04086" + }, + { + "name": "73", + "lat": "43.92467", + "lon": "-69.97242", + "postcode": "04086" + }, + { + "name": "76", + "lat": "43.92485", + "lon": "-69.97188", + "postcode": "04086" + }, + { + "name": "77", + "lat": "43.92501", + "lon": "-69.97235", + "postcode": "04086" + }, + { + "name": "78", + "lat": "43.92502", + "lon": "-69.97173", + "postcode": "04086" + }, + { + "name": "79", + "lat": "43.92521", + "lon": "-69.97222", + "postcode": "04086" + }, + { + "name": "80", + "lat": "43.92519", + "lon": "-69.97173", + "postcode": "04086" + }, + { + "name": "83", + "lat": "43.92578", + "lon": "-69.97210", + "postcode": "04086" + }, + { + "name": "84", + "lat": "43.92572", + "lon": "-69.97162", + "postcode": "04086" + }, + { + "name": "86", + "lat": "43.92595", + "lon": "-69.97160", + "postcode": "04086" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Fairfield", + "lat": "44.58851", + "lon": "-69.59908", + "id": 158862392, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.58773", + "lon": "-69.59457", + "id": 144847 + } + ], + "matchStreet": 1 + }, + { + "name": "Auburn", + "lat": "44.09785", + "lon": "-70.23117", + "id": 158855461, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Newfield", + "lat": "43.64850", + "lon": "-70.84740", + "id": 158816037, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.64808", + "lon": "-70.84744", + "id": 9994, + "buildings": [ + { + "name": "8", + "lat": "43.62721", + "lon": "-70.84002", + "postcode": "04095" + }, + { + "name": "44", + "lat": "43.62862", + "lon": "-70.83956", + "postcode": "04095" + }, + { + "name": "54", + "lat": "43.62902", + "lon": "-70.84004", + "postcode": "04095" + }, + { + "name": "58", + "lat": "43.62960", + "lon": "-70.84079", + "postcode": "04095" + }, + { + "name": "132", + "lat": "43.63325", + "lon": "-70.84162", + "postcode": "04095" + }, + { + "name": "134", + "lat": "43.63379", + "lon": "-70.84203", + "postcode": "04095" + }, + { + "name": "136", + "lat": "43.63418", + "lon": "-70.84225", + "postcode": "04095" + }, + { + "name": "137", + "lat": "43.63430", + "lon": "-70.84141", + "postcode": "04095" + }, + { + "name": "161", + "lat": "43.63572", + "lon": "-70.84208", + "postcode": "04095" + }, + { + "name": "167", + "lat": "43.63621", + "lon": "-70.84156", + "postcode": "04095" + }, + { + "name": "177", + "lat": "43.63676", + "lon": "-70.84199", + "postcode": "04095" + }, + { + "name": "187", + "lat": "43.63718", + "lon": "-70.84265", + "postcode": "04095" + }, + { + "name": "193", + "lat": "43.63795", + "lon": "-70.84304", + "postcode": "04095" + }, + { + "name": "210", + "lat": "43.63836", + "lon": "-70.84532", + "postcode": "04095" + }, + { + "name": "223", + "lat": "43.63996", + "lon": "-70.84349", + "postcode": "04095" + }, + { + "name": "226", + "lat": "43.63923", + "lon": "-70.84574", + "postcode": "04095" + }, + { + "name": "231", + "lat": "43.64007", + "lon": "-70.84238", + "postcode": "04095" + }, + { + "name": "238", + "lat": "43.64063", + "lon": "-70.84493", + "postcode": "04095" + }, + { + "name": "247", + "lat": "43.64126", + "lon": "-70.84403", + "postcode": "04095" + }, + { + "name": "253", + "lat": "43.64177", + "lon": "-70.84433", + "postcode": "04095" + }, + { + "name": "267", + "lat": "43.64258", + "lon": "-70.84435", + "postcode": "04095" + }, + { + "name": "274", + "lat": "43.64337", + "lon": "-70.84514", + "postcode": "04095" + }, + { + "name": "275", + "lat": "43.64350", + "lon": "-70.84411", + "postcode": "04095" + }, + { + "name": "293", + "lat": "43.64423", + "lon": "-70.84368", + "postcode": "04095" + }, + { + "name": "305", + "lat": "43.64542", + "lon": "-70.84433", + "postcode": "04095" + }, + { + "name": "311", + "lat": "43.64575", + "lon": "-70.84478", + "postcode": "04095" + }, + { + "name": "320", + "lat": "43.64573", + "lon": "-70.84607", + "postcode": "04095" + }, + { + "name": "333", + "lat": "43.64663", + "lon": "-70.84615", + "postcode": "04095" + }, + { + "name": "340", + "lat": "43.64684", + "lon": "-70.84731", + "postcode": "04095" + }, + { + "name": "341", + "lat": "43.64704", + "lon": "-70.84667", + "postcode": "04095" + }, + { + "name": "357", + "lat": "43.64808", + "lon": "-70.84744", + "postcode": "04095" + }, + { + "name": "358", + "lat": "43.64799", + "lon": "-70.84791", + "postcode": "04095" + }, + { + "name": "360", + "lat": "43.64825", + "lon": "-70.84804", + "postcode": "04095" + } + ], + "intersectedStreets": [ + { + "name": "Water Street", + "lat": "43.64845", + "lon": "-70.84778" + }, + { + "name": "North Shore Road (Sprague City)", + "lat": "43.62539", + "lon": "-70.83875" + }, + { + "name": "Poverty Pond Road", + "lat": "43.63281", + "lon": "-70.84098" + }, + { + "name": "Carroll Pit Road", + "lat": "43.64457", + "lon": "-70.84439" + }, + { + "name": "Tuttle Lane", + "lat": "43.64640", + "lon": "-70.84643" + }, + { + "name": "Pickett Mtn Road", + "lat": "43.64640", + "lon": "-70.84643" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Lincoln", + "lat": "45.36224", + "lon": "-68.50472", + "id": 158802992, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.43055", + "lon": "-68.45733", + "id": 86634 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Yarmouth", + "lat": "43.80064", + "lon": "-70.18672", + "id": 158803248, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.80009", + "lon": "-70.18345", + "id": 99270, + "buildings": [ + { + "name": "8", + "lat": "43.79985", + "lon": "-70.18356", + "postcode": "04096" + }, + { + "name": "17", + "lat": "43.79975", + "lon": "-70.18283", + "postcode": "04096" + }, + { + "name": "18", + "lat": "43.80009", + "lon": "-70.18345", + "postcode": "04096" + }, + { + "name": "20", + "lat": "43.80019", + "lon": "-70.18339", + "postcode": "04096" + }, + { + "name": "21", + "lat": "43.80000", + "lon": "-70.18292", + "postcode": "04096" + }, + { + "name": "23", + "lat": "43.80003", + "lon": "-70.18287", + "postcode": "04096" + }, + { + "name": "25", + "lat": "43.80006", + "lon": "-70.18283", + "postcode": "04096" + }, + { + "name": "28", + "lat": "43.80037", + "lon": "-70.18300", + "postcode": "04096" + }, + { + "name": "31", + "lat": "43.80028", + "lon": "-70.18255", + "postcode": "04096" + }, + { + "name": "38", + "lat": "43.80064", + "lon": "-70.18270", + "postcode": "04096" + }, + { + "name": "43", + "lat": "43.80062", + "lon": "-70.18221", + "postcode": "04096" + }, + { + "name": "49", + "lat": "43.80070", + "lon": "-70.18146", + "postcode": "04096" + }, + { + "name": "51", + "lat": "43.80071", + "lon": "-70.18118", + "postcode": "04096" + }, + { + "name": "80", + "lat": "43.80170", + "lon": "-70.18142", + "postcode": "04096" + }, + { + "name": "81", + "lat": "43.80149", + "lon": "-70.18105", + "postcode": "04096" + }, + { + "name": "89", + "lat": "43.80180", + "lon": "-70.18079", + "postcode": "04096" + }, + { + "name": "100", + "lat": "43.80221", + "lon": "-70.18096", + "postcode": "04096" + }, + { + "name": "103", + "lat": "43.80181", + "lon": "-70.17974", + "postcode": "04096" + }, + { + "name": "107", + "lat": "43.80209", + "lon": "-70.17972", + "postcode": "04096" + }, + { + "name": "109", + "lat": "43.80232", + "lon": "-70.18000", + "postcode": "04096" + }, + { + "name": "110", + "lat": "43.80260", + "lon": "-70.18062", + "postcode": "04096" + }, + { + "name": "124", + "lat": "43.80280", + "lon": "-70.18013", + "postcode": "04096" + }, + { + "name": "125", + "lat": "43.80259", + "lon": "-70.17940", + "postcode": "04096" + }, + { + "name": "132", + "lat": "43.80305", + "lon": "-70.17974", + "postcode": "04096" + }, + { + "name": "137", + "lat": "43.80294", + "lon": "-70.17918", + "postcode": "04096" + } + ], + "intersectedStreets": [ + { + "name": "Main Street", + "lat": "43.79941", + "lon": "-70.18367" + }, + { + "name": "Willow Street", + "lat": "43.80342", + "lon": "-70.17893" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Sangerville", + "lat": "45.16478", + "lon": "-69.35644", + "id": 158806316, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.16971", + "lon": "-69.36081", + "id": 139808 + } + ], + "matchStreet": 1 + }, + { + "name": "Fort Kent", + "lat": "47.25873", + "lon": "-68.58971", + "id": 158842923, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "47.24309", + "lon": "-68.58011", + "id": 93959 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Gilead", + "lat": "44.39454", + "lon": "-70.97305", + "id": 158842409, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.39494", + "lon": "-70.97314", + "id": 22840, + "buildings": [ + { + "name": "6", + "lat": "44.39445", + "lon": "-70.97299", + "postcode": "04217" + }, + { + "name": "8", + "lat": "44.39459", + "lon": "-70.97301", + "postcode": "04217" + }, + { + "name": "12", + "lat": "44.39494", + "lon": "-70.97314", + "postcode": "04217" + }, + { + "name": "15", + "lat": "44.39520", + "lon": "-70.97275", + "postcode": "04217" + }, + { + "name": "20", + "lat": "44.39552", + "lon": "-70.97288", + "postcode": "04217" + }, + { + "name": "26", + "lat": "44.39598", + "lon": "-70.97282", + "postcode": "04217" + }, + { + "name": "30", + "lat": "44.39624", + "lon": "-70.97247", + "postcode": "04217" + } + ], + "intersectedStreets": [ + { + "name": "Depot Street", + "lat": "44.39440", + "lon": "-70.97286" + }, + { + "name": "Fire Lane 100", + "lat": "44.39617", + "lon": "-70.97243" + }, + { + "name": "North Road", + "names": { + "alt_name": "North Side Road" + }, + "lat": "44.39873", + "lon": "-70.97172" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Van Buren", + "lat": "47.15751", + "lon": "-67.93533", + "id": 158909978, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "47.15786", + "lon": "-67.93467", + "id": 18084 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "North Brooksville", + "lat": "44.39535", + "lon": "-68.71058", + "id": 158908703, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "44.39531", + "lon": "-68.71047", + "id": 56244 + } + ], + "matchStreet": 1 + }, + { + "name": "Grand Falls", + "enName": "Grand Falls", + "names": { + "fr": "Grand-Sault" + }, + "lat": "47.04670", + "lon": "-67.77684", + "id": 1097017, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "North Dexter", + "lat": "45.07617", + "lon": "-69.33421", + "id": 158859281, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.08243", + "lon": "-69.39289", + "id": 139807 + } + ], + "matchStreet": 1 + }, + { + "name": "Belfast", + "lat": "44.42612", + "lon": "-69.00674", + "id": 158823967, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.42810", + "lon": "-69.00972", + "id": 85919 + } + ], + "matchStreet": 1 + }, + { + "name": "Sprague City", + "lat": "43.62625", + "lon": "-70.83923", + "id": 158853406, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.62719", + "lon": "-70.83999", + "id": 10409, + "buildings": [ + { + "name": "8", + "lat": "43.62719", + "lon": "-70.83999", + "postcode": "04095" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Calais", + "lat": "45.18903", + "lon": "-67.27814", + "id": 5964911273, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "North Waterford", + "lat": "44.23174", + "lon": "-70.76868", + "id": 158814982, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "44.20966", + "lon": "-70.81047", + "id": 31314, + "buildings": [ + { + "name": "11", + "lat": "44.21193", + "lon": "-70.80860", + "postcode": "04088" + }, + { + "name": "20", + "lat": "44.21136", + "lon": "-70.80886", + "postcode": "04088" + }, + { + "name": "26", + "lat": "44.21100", + "lon": "-70.80909", + "postcode": "04088" + }, + { + "name": "32", + "lat": "44.21070", + "lon": "-70.80959", + "postcode": "04088" + }, + { + "name": "52", + "lat": "44.20966", + "lon": "-70.81047", + "postcode": "04088" + } + ], + "intersectedStreets": [ + { + "name": "Button Bend", + "lat": "44.21110", + "lon": "-70.80899" + }, + { + "name": "Point Road", + "lat": "44.21156", + "lon": "-70.80860" + }, + { + "name": "Five Kezar Ponds Road", + "lat": "44.21246", + "lon": "-70.80787" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Saint-Léonard", + "lat": "47.16520", + "lon": "-67.92447", + "id": 34705955, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Edgecomb", + "lat": "43.95841", + "lon": "-69.63060", + "id": 158915597, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "43.97111", + "lon": "-69.67169", + "id": 112282, + "buildings": [ + { + "name": "21", + "lat": "43.97111", + "lon": "-69.67169", + "postcode": "04578" + }, + { + "name": "51", + "lat": "43.96942", + "lon": "-69.67192", + "postcode": "04578" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Bar Harbor", + "lat": "44.39121", + "lon": "-68.20073", + "id": 4307278286, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.39054", + "lon": "-68.20971", + "id": 125419 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Norridgewock", + "lat": "44.71307", + "lon": "-69.79065", + "id": 158821634, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.71423", + "lon": "-69.79737", + "id": 50348 + } + ], + "matchStreet": 1 + }, + { + "name": "Saint-Leonard", + "lat": "47.16390", + "lon": "-67.92423", + "id": 1099568, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Boothbay Harbor", + "lat": "43.85227", + "lon": "-69.62809", + "id": 158857975, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.85180", + "lon": "-69.62710", + "id": 96905, + "buildings": [ + { + "name": "3", + "lat": "43.85174", + "lon": "-69.62751", + "postcode": "04538" + }, + { + "name": "4", + "lat": "43.85188", + "lon": "-69.62755", + "postcode": "04538" + }, + { + "name": "6", + "lat": "43.85186", + "lon": "-69.62746", + "postcode": "04538" + }, + { + "name": "8", + "lat": "43.85184", + "lon": "-69.62740", + "postcode": "04538" + }, + { + "name": "10", + "lat": "43.85183", + "lon": "-69.62734", + "postcode": "04538" + }, + { + "name": "11", + "lat": "43.85166", + "lon": "-69.62718", + "postcode": "04538" + }, + { + "name": "12", + "lat": "43.85180", + "lon": "-69.62710", + "postcode": "04538" + } + ], + "intersectedStreets": [ + { + "name": "Townsend Avenue", + "lat": "43.85188", + "lon": "-69.62774" + }, + { + "name": "By-Way", + "lat": "43.85174", + "lon": "-69.62740" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "West Farmington", + "lat": "44.66284", + "lon": "-70.15534", + "id": 158826737, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.66247", + "lon": "-70.15350", + "id": 148813 + } + ], + "matchStreet": 1 + }, + { + "name": "Waldo", + "lat": "44.51257", + "lon": "-69.07615", + "id": 158816768, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street (Belfast)", + "lat": "44.42808", + "lon": "-69.00972", + "id": 85920 + } + ], + "matchStreet": 1 + }, + { + "name": "Rockwood", + "lat": "45.67782", + "lon": "-69.74089", + "id": 158835199, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.68730", + "lon": "-69.78050", + "id": 145420 + } + ], + "matchStreet": 1 + }, + { + "name": "Hampden", + "lat": "44.74452", + "lon": "-68.83698", + "id": 158862067, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Westbrook Terrace", + "lat": "44.75271", + "lon": "-68.82847", + "id": 137974 + } + ], + "init": 1 + }, + { + "name": "Brunswick", + "lat": "43.91452", + "lon": "-69.96533", + "id": 158864618, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.91858", + "lon": "-69.97362", + "id": 138895, + "intersectedStreets": [ + { + "name": "Front Street", + "lat": "43.91695", + "lon": "-69.97538" + }, + { + "name": "Prospect Street", + "lat": "43.91734", + "lon": "-69.97495" + }, + { + "name": "Union Street", + "lat": "43.91841", + "lon": "-69.97366" + }, + { + "name": "Oak Street", + "lat": "43.92124", + "lon": "-69.97302" + }, + { + "name": "Maple Street (Topsham)", + "lat": "43.92209", + "lon": "-69.97278" + }, + { + "name": "Maple Street Extension", + "lat": "43.92209", + "lon": "-69.97278" + }, + { + "name": "Walnut Street (Topsham)", + "lat": "43.92368", + "lon": "-69.97242" + }, + { + "name": "Winter Street (Topsham)", + "lat": "43.92638", + "lon": "-69.97169" + } + ] + }, + { + "name": "Bridge Road", + "lat": "43.93465", + "lon": "-69.86912", + "id": 102481, + "buildings": [ + { + "name": "14", + "lat": "43.93408", + "lon": "-69.86719", + "postcode": "04011" + }, + { + "name": "15", + "lat": "43.93465", + "lon": "-69.86912", + "postcode": "04011" + }, + { + "name": "26", + "lat": "43.93471", + "lon": "-69.86740", + "postcode": "04011" + }, + { + "name": "36", + "lat": "43.93531", + "lon": "-69.86708", + "postcode": "04011" + }, + { + "name": "38", + "lat": "43.93669", + "lon": "-69.86457", + "postcode": "04011" + }, + { + "name": "40", + "lat": "43.93626", + "lon": "-69.86558", + "postcode": "04011" + }, + { + "name": "57", + "lat": "43.93695", + "lon": "-69.86785", + "postcode": "04011" + }, + { + "name": "73", + "lat": "43.93816", + "lon": "-69.86721", + "postcode": "04011" + }, + { + "name": "83", + "lat": "43.93888", + "lon": "-69.86695", + "postcode": "04011" + }, + { + "name": "110", + "lat": "43.93992", + "lon": "-69.86442", + "postcode": "04011" + }, + { + "name": "121", + "lat": "43.94095", + "lon": "-69.86481", + "postcode": "04011" + }, + { + "name": "128", + "lat": "43.94097", + "lon": "-69.86391", + "postcode": "04011" + }, + { + "name": "131", + "lat": "43.94137", + "lon": "-69.86444", + "postcode": "04011" + }, + { + "name": "140", + "lat": "43.94159", + "lon": "-69.86318", + "postcode": "04011" + }, + { + "name": "156", + "lat": "43.94236", + "lon": "-69.86221", + "postcode": "04011" + }, + { + "name": "171", + "lat": "43.94344", + "lon": "-69.86230", + "postcode": "04011" + }, + { + "name": "172", + "lat": "43.94315", + "lon": "-69.86163", + "postcode": "04011" + }, + { + "name": "190", + "lat": "43.94367", + "lon": "-69.86088", + "postcode": "04011" + }, + { + "name": "196", + "lat": "43.94401", + "lon": "-69.86002", + "postcode": "04011" + }, + { + "name": "204", + "lat": "43.94451", + "lon": "-69.85985", + "postcode": "04011" + }, + { + "name": "218", + "lat": "43.94539", + "lon": "-69.85901", + "postcode": "04011" + } + ], + "intersectedStreets": [ + { + "name": "Eagle Brook Lane", + "lat": "43.93499", + "lon": "-69.86764" + }, + { + "name": "Old Bath Road", + "lat": "43.93315", + "lon": "-69.86824" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Edmundston", + "enName": "Edmundston", + "names": { + "ru": "Эдмундстон", + "uk": "Едмундстон" + }, + "lat": "47.36441", + "lon": "-68.32809", + "id": 34699332, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "47.36144", + "lon": "-68.32859", + "id": 113235 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "York", + "lat": "43.15210", + "lon": "-70.64932", + "id": 6357513599, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Biddeford", + "lat": "43.49258", + "lon": "-70.45338", + "id": 158859755, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "43.44072", + "lon": "-70.37863", + "id": 19069, + "buildings": [ + { + "name": "7", + "lat": "43.44072", + "lon": "-70.37863", + "postcode": "04005" + }, + { + "name": "9", + "lat": "43.44033", + "lon": "-70.37797", + "postcode": "04005" + }, + { + "name": "12", + "lat": "43.43932", + "lon": "-70.37737", + "postcode": "04005" + }, + { + "name": "15", + "lat": "43.44005", + "lon": "-70.37715", + "postcode": "04005" + }, + { + "name": "16", + "lat": "43.43866", + "lon": "-70.37722", + "postcode": "04005" + }, + { + "name": "17", + "lat": "43.43972", + "lon": "-70.37619", + "postcode": "04005" + }, + { + "name": "19", + "lat": "43.43955", + "lon": "-70.37586", + "postcode": "04005" + }, + { + "name": "31", + "lat": "43.43977", + "lon": "-70.37286", + "postcode": "04005" + }, + { + "name": "35", + "lat": "43.43971", + "lon": "-70.37230", + "postcode": "04005" + }, + { + "name": "37", + "lat": "43.43863", + "lon": "-70.37277", + "postcode": "04005" + }, + { + "name": "39", + "lat": "43.43846", + "lon": "-70.37258", + "postcode": "04005" + }, + { + "name": "41", + "lat": "43.43834", + "lon": "-70.37247", + "postcode": "04005" + }, + { + "name": "51", + "lat": "43.43764", + "lon": "-70.37179", + "postcode": "04005" + }, + { + "name": "58", + "lat": "43.43722", + "lon": "-70.37166", + "postcode": "04005" + }, + { + "name": "69", + "lat": "43.43739", + "lon": "-70.37106", + "postcode": "04005" + }, + { + "name": "73", + "lat": "43.43712", + "lon": "-70.37024" + } + ], + "intersectedStreets": [ + { + "name": "Pool Street", + "names": { + "alt_name": "State Route 208" + }, + "lat": "43.44134", + "lon": "-70.38084" + }, + { + "name": "Winter Harbor Lane", + "lat": "43.43898", + "lon": "-70.37518" + }, + { + "name": "Leighton Point Lane", + "lat": "43.43736", + "lon": "-70.37151" + }, + { + "name": "Beach Avenue", + "lat": "43.43669", + "lon": "-70.36958" + }, + { + "name": "Mile Stretch Road", + "lat": "43.43669", + "lon": "-70.36958" + }, + { + "name": "Fortunes Rocks Road", + "lat": "43.43669", + "lon": "-70.36958" + }, + { + "name": "Old Pool Road", + "lat": "43.44060", + "lon": "-70.37956" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Parkman", + "lat": "45.13367", + "lon": "-69.43310", + "id": 158821862, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.08593", + "lon": "-69.39647", + "id": 68103 + }, + { + "name": "Bridge Road", + "lat": "45.07719", + "lon": "-69.39072", + "id": 70183 + } + ], + "matchStreet": 1 + }, + { + "name": "Anson", + "lat": "44.79840", + "lon": "-69.88953", + "id": 158816752, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.79782", + "lon": "-69.89204", + "id": 144849 + } + ], + "matchStreet": 1 + }, + { + "name": "Randolph", + "lat": "44.23035", + "lon": "-69.76671", + "id": 158806509, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.23315", + "lon": "-69.76818", + "id": 150807, + "intersectedStreets": [ + { + "name": "Water Street", + "lat": "44.23313", + "lon": "-69.76782" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Benton Station", + "lat": "44.58923", + "lon": "-69.58505", + "id": 158818539, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.58686", + "lon": "-69.58768", + "id": 125640 + } + ], + "matchStreet": 1 + }, + { + "name": "Berwick", + "lat": "43.27259", + "lon": "-70.86732", + "id": 158846698, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.26688", + "lon": "-70.86630", + "id": 97194, + "buildings": [ + { + "name": "1", + "lat": "43.26621", + "lon": "-70.86619", + "postcode": "03901" + }, + { + "name": "2", + "lat": "43.26646", + "lon": "-70.86583", + "postcode": "03901" + }, + { + "name": "3", + "lat": "43.26611", + "lon": "-70.86714", + "postcode": "03901" + }, + { + "name": "4", + "lat": "43.26660", + "lon": "-70.86602", + "postcode": "03901" + }, + { + "name": "8", + "lat": "43.26688", + "lon": "-70.86630", + "postcode": "03901" + }, + { + "name": "11", + "lat": "43.26683", + "lon": "-70.86679", + "postcode": "03901" + }, + { + "name": "12", + "lat": "43.26707", + "lon": "-70.86652", + "postcode": "03901" + }, + { + "name": "12 R", + "lat": "43.26708", + "lon": "-70.86652", + "postcode": "03901" + }, + { + "name": "15", + "lat": "43.26702", + "lon": "-70.86705", + "postcode": "03901" + }, + { + "name": "16", + "lat": "43.26741", + "lon": "-70.86686", + "postcode": "03901" + }, + { + "name": "17", + "lat": "43.26710", + "lon": "-70.86716", + "postcode": "03901" + }, + { + "name": "19", + "lat": "43.26733", + "lon": "-70.86733", + "postcode": "03901" + }, + { + "name": "20", + "lat": "43.26752", + "lon": "-70.86705", + "postcode": "03901" + }, + { + "name": "27", + "lat": "43.26768", + "lon": "-70.86780", + "postcode": "03901" + }, + { + "name": "31", + "lat": "43.26789", + "lon": "-70.86808", + "postcode": "03901" + }, + { + "name": "35", + "lat": "43.26810", + "lon": "-70.86832", + "postcode": "03901" + }, + { + "name": "40", + "lat": "43.26855", + "lon": "-70.86815", + "postcode": "03901" + }, + { + "name": "41", + "lat": "43.26843", + "lon": "-70.86864", + "postcode": "03901" + }, + { + "name": "42", + "lat": "43.26868", + "lon": "-70.86836", + "postcode": "03901" + }, + { + "name": "44", + "lat": "43.26880", + "lon": "-70.86851", + "postcode": "03901" + }, + { + "name": "45", + "lat": "43.26868", + "lon": "-70.86888", + "postcode": "03901" + }, + { + "name": "51", + "lat": "43.26893", + "lon": "-70.86931", + "postcode": "03901" + }, + { + "name": "53", + "lat": "43.26910", + "lon": "-70.86943", + "postcode": "03901" + }, + { + "name": "57", + "lat": "43.26921", + "lon": "-70.86954", + "postcode": "03901" + }, + { + "name": "59", + "lat": "43.26935", + "lon": "-70.86967", + "postcode": "03901" + }, + { + "name": "63", + "lat": "43.26950", + "lon": "-70.86991", + "postcode": "03901" + }, + { + "name": "64", + "lat": "43.26971", + "lon": "-70.86969", + "postcode": "03901" + }, + { + "name": "65", + "lat": "43.26964", + "lon": "-70.87003", + "postcode": "03901" + }, + { + "name": "69", + "lat": "43.26977", + "lon": "-70.87021", + "postcode": "03901" + }, + { + "name": "71", + "lat": "43.26991", + "lon": "-70.87040", + "postcode": "03901" + }, + { + "name": "79", + "lat": "43.27011", + "lon": "-70.87061", + "postcode": "03901" + } + ], + "intersectedStreets": [ + { + "name": "Bow Street", + "lat": "43.26627", + "lon": "-70.86589" + }, + { + "name": "Penny Lane", + "lat": "43.26685", + "lon": "-70.86656" + }, + { + "name": "River Street", + "lat": "43.26830", + "lon": "-70.86823" + }, + { + "name": "Charles Street", + "lat": "43.26949", + "lon": "-70.86965" + }, + { + "name": "Rochester Street", + "lat": "43.27016", + "lon": "-70.87034" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Brooksville", + "lat": "44.34693", + "lon": "-68.68378", + "id": 158853354, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road (North Brooksville)", + "lat": "44.39531", + "lon": "-68.71047", + "id": 56243 + } + ], + "matchStreet": 1 + }, + { + "name": "Kennebunk", + "lat": "43.38409", + "lon": "-70.54527", + "id": 158807785, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Winslow", + "lat": "44.54742", + "lon": "-69.62174", + "id": 158843866, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.54731", + "lon": "-69.62669", + "id": 76220 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Washburn", + "lat": "46.79019", + "lon": "-68.15781", + "id": 158800583, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "46.79089", + "lon": "-68.15839", + "id": 122574 + } + ], + "matchStreet": 1 + }, + { + "name": "Carrabassett", + "lat": "45.07783", + "lon": "-70.21201", + "id": 158839238, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street (Bigelow)", + "lat": "45.07314", + "lon": "-70.31048", + "id": 107622 + } + ], + "matchStreet": 1 + }, + { + "name": "Sanford", + "lat": "43.43887", + "lon": "-70.77419", + "id": 158837189, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street (Springvale)", + "names": { + "alt_name": "State Route 224 (Springvale)" + }, + "lat": "43.46610", + "lon": "-70.79607", + "id": 146134, + "buildings": [ + { + "name": "17", + "lat": "43.46572", + "lon": "-70.79551", + "postcode": "04083" + }, + { + "name": "17", + "lat": "43.46600", + "lon": "-70.79571", + "postcode": "04083" + }, + { + "name": "22", + "lat": "43.46652", + "lon": "-70.79590", + "postcode": "04083" + } + ], + "intersectedStreets": [ + { + "name": "Main Street", + "names": { + "alt_name": "State Route 11; State Route 109 (Springvale)" + }, + "lat": "43.46541", + "lon": "-70.79669" + }, + { + "name": "Oak Street", + "names": { + "alt_name": "State Route 11A" + }, + "lat": "43.46541", + "lon": "-70.79669" + }, + { + "name": "Payne Street (Springvale)", + "lat": "43.46669", + "lon": "-70.79491" + }, + { + "name": "Pleasant Street (Springvale)", + "names": { + "alt_name": "State Route 224 (Springvale)" + }, + "lat": "43.46669", + "lon": "-70.79491" + }, + { + "name": "Water Street (Springvale)", + "lat": "43.46669", + "lon": "-70.79491" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Houlton", + "lat": "46.12513", + "lon": "-67.84079", + "id": 1895709513, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "46.12858", + "lon": "-67.85064", + "id": 61267 + }, + { + "name": "Bridge Road", + "lat": "46.19847", + "lon": "-67.98359", + "id": 122846 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Jay", + "lat": "44.50434", + "lon": "-70.21637", + "id": 158800578, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.50417", + "lon": "-70.22096", + "id": 91138, + "buildings": [ + { + "name": "1", + "lat": "44.50443", + "lon": "-70.22161", + "postcode": "04239" + }, + { + "name": "5", + "lat": "44.50431", + "lon": "-70.22167", + "postcode": "04239" + }, + { + "name": "7", + "lat": "44.50420", + "lon": "-70.22184", + "postcode": "04239" + }, + { + "name": "9", + "lat": "44.50408", + "lon": "-70.22197", + "postcode": "04239" + }, + { + "name": "12", + "lat": "44.50417", + "lon": "-70.22096", + "postcode": "04239" + }, + { + "name": "22", + "lat": "44.50388", + "lon": "-70.22236", + "postcode": "04239" + }, + { + "name": "26", + "lat": "44.50408", + "lon": "-70.22246", + "postcode": "04239" + }, + { + "name": "31", + "lat": "44.50459", + "lon": "-70.22246", + "postcode": "04239" + }, + { + "name": "34", + "lat": "44.50465", + "lon": "-70.22296", + "postcode": "04239" + }, + { + "name": "38", + "lat": "44.50491", + "lon": "-70.22313", + "postcode": "04239" + } + ], + "intersectedStreets": [ + { + "name": "Intervale Road", + "lat": "44.50431", + "lon": "-70.22096" + }, + { + "name": "Knight Lane", + "lat": "44.50393", + "lon": "-70.22214" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Oak Terrace", + "lat": "43.08950", + "lon": "-70.75880", + "id": 158808001, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.08903", + "lon": "-70.75682", + "id": 10973, + "buildings": [ + { + "name": "19", + "lat": "43.08903", + "lon": "-70.75682", + "postcode": "03904" + }, + { + "name": "22", + "lat": "43.08943", + "lon": "-70.75661", + "postcode": "03904" + }, + { + "name": "28", + "lat": "43.08875", + "lon": "-70.75908", + "postcode": "03904" + }, + { + "name": "30", + "lat": "43.08889", + "lon": "-70.75923", + "postcode": "03904" + } + ], + "intersectedStreets": [ + { + "name": "Oak Terrace", + "lat": "43.08942", + "lon": "-70.75951" + }, + { + "name": "US 1 Bypass", + "lat": "43.08950", + "lon": "-70.75747" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Kittery", + "lat": "43.08845", + "lon": "-70.73685", + "id": 158863554, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street (Oak Terrace)", + "lat": "43.08906", + "lon": "-70.75506", + "id": 10972, + "buildings": [ + { + "name": "2", + "lat": "43.08959", + "lon": "-70.75449", + "postcode": "03904" + }, + { + "name": "5", + "lat": "43.08906", + "lon": "-70.75506", + "postcode": "03904" + }, + { + "name": "6", + "lat": "43.08948", + "lon": "-70.75489", + "postcode": "03904" + }, + { + "name": "7", + "lat": "43.08917", + "lon": "-70.75552", + "postcode": "03904" + }, + { + "name": "8", + "lat": "43.08954", + "lon": "-70.75517", + "postcode": "03904" + }, + { + "name": "9", + "lat": "43.08915", + "lon": "-70.75571", + "postcode": "03904" + }, + { + "name": "10", + "lat": "43.08951", + "lon": "-70.75536", + "postcode": "03904" + }, + { + "name": "11", + "lat": "43.08914", + "lon": "-70.75599", + "postcode": "03904" + }, + { + "name": "12", + "lat": "43.08958", + "lon": "-70.75575", + "postcode": "03904" + }, + { + "name": "12", + "lat": "43.08959", + "lon": "-70.75592", + "postcode": "03904" + }, + { + "name": "12", + "lat": "43.08959", + "lon": "-70.75584", + "postcode": "03904" + }, + { + "name": "12", + "lat": "43.08959", + "lon": "-70.75579", + "postcode": "03904" + }, + { + "name": "13", + "lat": "43.08917", + "lon": "-70.75618", + "postcode": "03904" + }, + { + "name": "18", + "lat": "43.08947", + "lon": "-70.75637", + "postcode": "03904" + }, + { + "name": "19", + "lat": "43.08906", + "lon": "-70.75682", + "postcode": "03904" + }, + { + "name": "22", + "lat": "43.08945", + "lon": "-70.75661", + "postcode": "03904" + }, + { + "name": "28", + "lat": "43.08876", + "lon": "-70.75908", + "postcode": "03904" + }, + { + "name": "30", + "lat": "43.08890", + "lon": "-70.75923", + "postcode": "03904" + } + ], + "intersectedStreets": [ + { + "name": "Cook Street (Oak Terrace)", + "lat": "43.08907", + "lon": "-70.75459" + }, + { + "name": "Government Street (Kittery Foreside)", + "lat": "43.08907", + "lon": "-70.75459" + }, + { + "name": "Moores Court", + "lat": "43.08925", + "lon": "-70.75494" + }, + { + "name": "Old Post Road (Remick Corners)", + "lat": "43.08934", + "lon": "-70.75710" + }, + { + "name": "Oak Terrace", + "lat": "43.08943", + "lon": "-70.75951" + }, + { + "name": "US 1 Bypass", + "lat": "43.08951", + "lon": "-70.75747" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Saco", + "lat": "43.50092", + "lon": "-70.44283", + "id": 158808782, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Wells", + "lat": "43.32218", + "lon": "-70.58098", + "id": 158808778, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Rumford", + "lat": "44.55427", + "lon": "-70.55145", + "id": 158809528, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.54271", + "lon": "-70.54847", + "id": 136804 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Phillips", + "lat": "44.82311", + "lon": "-70.33951", + "id": 158914491, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.82352", + "lon": "-70.33986", + "id": 123389 + } + ], + "matchStreet": 1 + }, + { + "name": "Frenchtown", + "lat": "43.68346", + "lon": "-70.36017", + "id": 45250075539, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.68018", + "lon": "-70.36840", + "id": 19, + "buildings": [ + { + "name": "41", + "lat": "43.67877", + "lon": "-70.36737", + "postcode": "04092" + }, + { + "name": "42", + "lat": "43.67850", + "lon": "-70.36777", + "postcode": "04092" + }, + { + "name": "51", + "lat": "43.67892", + "lon": "-70.36767", + "postcode": "04092" + }, + { + "name": "67", + "lat": "43.67942", + "lon": "-70.36820", + "postcode": "04092" + }, + { + "name": "72", + "lat": "43.67895", + "lon": "-70.36818", + "postcode": "04092" + }, + { + "name": "75", + "lat": "43.67957", + "lon": "-70.36835", + "postcode": "04092" + }, + { + "name": "77", + "lat": "43.67960", + "lon": "-70.36838", + "postcode": "04092" + }, + { + "name": "80", + "lat": "43.67926", + "lon": "-70.36863", + "postcode": "04092" + }, + { + "name": "87", + "lat": "43.68018", + "lon": "-70.36840" + }, + { + "name": "90", + "lat": "43.67915", + "lon": "-70.36857", + "postcode": "04092" + }, + { + "name": "119", + "lat": "43.68061", + "lon": "-70.36825", + "postcode": "04092" + }, + { + "name": "131", + "lat": "43.68086", + "lon": "-70.36784", + "postcode": "04092" + }, + { + "name": "135", + "lat": "43.68114", + "lon": "-70.36780", + "postcode": "04092" + }, + { + "name": "151", + "lat": "43.68151", + "lon": "-70.36754", + "postcode": "04092" + }, + { + "name": "155", + "lat": "43.68175", + "lon": "-70.36732", + "postcode": "04092" + }, + { + "name": "159", + "lat": "43.68187", + "lon": "-70.36724", + "postcode": "04092" + }, + { + "name": "163", + "lat": "43.68204", + "lon": "-70.36709", + "postcode": "04092" + }, + { + "name": "173", + "lat": "43.68221", + "lon": "-70.36694", + "postcode": "04092" + }, + { + "name": "181", + "lat": "43.68254", + "lon": "-70.36681", + "postcode": "04092" + }, + { + "name": "197", + "lat": "43.68297", + "lon": "-70.36640", + "postcode": "04092" + }, + { + "name": "221", + "lat": "43.68355", + "lon": "-70.36593", + "postcode": "04092" + }, + { + "name": "225", + "lat": "43.68352", + "lon": "-70.36567", + "postcode": "04092" + }, + { + "name": "231", + "lat": "43.68383", + "lon": "-70.36561", + "postcode": "04092" + }, + { + "name": "237", + "lat": "43.68404", + "lon": "-70.36531", + "postcode": "04092" + }, + { + "name": "243", + "lat": "43.68418", + "lon": "-70.36509", + "postcode": "04092" + }, + { + "name": "249", + "lat": "43.68442", + "lon": "-70.36486", + "postcode": "04092" + }, + { + "name": "259", + "lat": "43.68465", + "lon": "-70.36460", + "postcode": "04092" + }, + { + "name": "271", + "lat": "43.68493", + "lon": "-70.36423", + "postcode": "04092" + }, + { + "name": "281", + "lat": "43.68519", + "lon": "-70.36400", + "postcode": "04092" + }, + { + "name": "287", + "lat": "43.68545", + "lon": "-70.36366", + "postcode": "04092" + }, + { + "name": "299", + "lat": "43.68572", + "lon": "-70.36346", + "postcode": "04092" + }, + { + "name": "315", + "lat": "43.68603", + "lon": "-70.36271", + "postcode": "04092" + }, + { + "name": "331", + "lat": "43.68654", + "lon": "-70.36252", + "postcode": "04092" + }, + { + "name": "339", + "lat": "43.68673", + "lon": "-70.36235", + "postcode": "04092" + }, + { + "name": "347", + "lat": "43.68699", + "lon": "-70.36205", + "postcode": "04092" + }, + { + "name": "359", + "lat": "43.68727", + "lon": "-70.36183", + "postcode": "04092" + }, + { + "name": "363", + "lat": "43.68757", + "lon": "-70.36155", + "postcode": "04092" + }, + { + "name": "365", + "lat": "43.68769", + "lon": "-70.36149", + "postcode": "04092" + }, + { + "name": "369", + "lat": "43.68780", + "lon": "-70.36134", + "postcode": "04092" + }, + { + "name": "373", + "lat": "43.68798", + "lon": "-70.36125", + "postcode": "04092" + } + ], + "intersectedStreets": [ + { + "name": "Riverbank Footpath", + "lat": "43.67827", + "lon": "-70.36720" + }, + { + "name": "Dana Court", + "lat": "43.67852", + "lon": "-70.36735" + }, + { + "name": "Brown Street", + "lat": "43.67877", + "lon": "-70.36762" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Milton", + "lat": "43.46802", + "lon": "-70.96797", + "id": 368004, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Beals", + "lat": "44.52001", + "lon": "-67.61536", + "id": 158843569, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.52178", + "lon": "-67.61407", + "id": 144064 + } + ], + "matchStreet": 1 + }, + { + "name": "Madawaska", + "lat": "47.35557", + "lon": "-68.32192", + "id": 158821309, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "47.35676", + "lon": "-68.32865", + "id": 122575 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Farmington", + "lat": "44.67109", + "lon": "-70.15183", + "id": 158855357, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street (West Farmington)", + "lat": "44.66243", + "lon": "-70.15041", + "id": 123388 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Deer Isle", + "lat": "44.22404", + "lon": "-68.67760", + "id": 158806461, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.22286", + "lon": "-68.68376", + "id": 6478 + } + ], + "matchStreet": 1 + }, + { + "name": "Jonesport", + "lat": "44.53323", + "lon": "-67.59888", + "id": 158837181, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street (West Jonesport)", + "lat": "44.52875", + "lon": "-67.61606", + "id": 38527 + } + ], + "matchStreet": 1 + }, + { + "name": "Harpswell", + "lat": "43.80753", + "lon": "-69.93488", + "id": 7414987064, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Milford", + "lat": "44.94618", + "lon": "-68.64392", + "id": 158853798, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.94346", + "lon": "-68.64305", + "id": 138136 + } + ], + "matchStreet": 1 + }, + { + "name": "Cornish", + "lat": "43.80480", + "lon": "-70.80139", + "id": 158918051, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.80533", + "lon": "-70.80092", + "id": 22064, + "buildings": [ + { + "name": "4", + "lat": "43.80528", + "lon": "-70.80116", + "postcode": "04020" + }, + { + "name": "6", + "lat": "43.80533", + "lon": "-70.80092", + "postcode": "04020" + }, + { + "name": "13", + "lat": "43.80531", + "lon": "-70.80017", + "postcode": "04020" + }, + { + "name": "14", + "lat": "43.80556", + "lon": "-70.80045", + "postcode": "04020" + }, + { + "name": "16", + "lat": "43.80559", + "lon": "-70.80028", + "postcode": "04020" + }, + { + "name": "18", + "lat": "43.80568", + "lon": "-70.80010", + "postcode": "04020" + }, + { + "name": "19", + "lat": "43.80551", + "lon": "-70.79978", + "postcode": "04020" + }, + { + "name": "20", + "lat": "43.80576", + "lon": "-70.79985", + "postcode": "04020" + }, + { + "name": "25", + "lat": "43.80570", + "lon": "-70.79907", + "postcode": "04020" + } + ], + "intersectedStreets": [ + { + "name": "Main Street", + "lat": "43.80503", + "lon": "-70.80118" + }, + { + "name": "High Street", + "lat": "43.80506", + "lon": "-70.80143" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "South Portland", + "lat": "43.64147", + "lon": "-70.24088", + "id": 158897572, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Westbrook Street (Thornton Heights)", + "lat": "43.62326", + "lon": "-70.30615", + "id": 53667 + }, + { + "name": "Westbrook St Dead End", + "lat": "43.62025", + "lon": "-70.30544", + "id": 121415 + } + ], + "init": 1 + }, + { + "name": "Bingham", + "lat": "45.05897", + "lon": "-69.88266", + "id": 158803373, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "45.05317", + "lon": "-69.88296", + "id": 87554 + } + ], + "matchStreet": 1 + }, + { + "name": "Old Orchard Beach", + "lat": "43.51768", + "lon": "-70.37773", + "id": 158809517, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street (Ocean Park)", + "lat": "43.50292", + "lon": "-70.39269", + "id": 23573, + "buildings": [ + { + "name": "7", + "lat": "43.50292", + "lon": "-70.39269", + "postcode": "04064" + } + ], + "intersectedStreets": [ + { + "name": "Temple Avenue", + "lat": "43.50351", + "lon": "-70.39185" + }, + { + "name": "Randall Avenue (Ocean Park)", + "lat": "43.50310", + "lon": "-70.39219" + }, + { + "name": "Maine Avenue (Ocean Park)", + "lat": "43.50270", + "lon": "-70.39256" + }, + { + "name": "Massachusetts Avenue (Ocean Park)", + "lat": "43.50232", + "lon": "-70.39290" + }, + { + "name": "Connecticut Avenue (Ocean Park)", + "lat": "43.50189", + "lon": "-70.39327" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Skowhegan", + "lat": "44.76526", + "lon": "-69.71924", + "id": 158901925, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.76214", + "lon": "-69.72134", + "id": 104395 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Augusta", + "enName": "Augusta", + "names": { + "ru": "Огаста", + "uk": "Огаста", + "pl": "Augusta", + "ta": "அகஸ்தா" + }, + "lat": "44.31058", + "lon": "-69.77966", + "id": 158860186, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.31692", + "lon": "-69.77303", + "id": 125643, + "intersectedStreets": [ + { + "name": "Cony Street", + "lat": "44.31668", + "lon": "-69.77144" + }, + { + "name": "State Street", + "names": { + "alt_name": "Memorial Circle" + }, + "lat": "44.31749", + "lon": "-69.77649" + }, + { + "name": "Pleasant Street", + "lat": "44.31751", + "lon": "-69.77739" + }, + { + "name": "Summer Street", + "lat": "44.31739", + "lon": "-69.77848" + }, + { + "name": "Elm Street", + "lat": "44.31740", + "lon": "-69.77949" + }, + { + "name": "Winter Street", + "lat": "44.31754", + "lon": "-69.78026" + }, + { + "name": "Spring Street", + "lat": "44.31781", + "lon": "-69.78140" + }, + { + "name": "North Street", + "lat": "44.31797", + "lon": "-69.78194" + }, + { + "name": "North Chestnut Street", + "lat": "44.31801", + "lon": "-69.78226" + }, + { + "name": "Commercial Street", + "lat": "44.31708", + "lon": "-69.77389" + }, + { + "name": "Crosby Street", + "lat": "44.31739", + "lon": "-69.77533" + }, + { + "name": "Front Street", + "lat": "44.31694", + "lon": "-69.77312" + }, + { + "name": "Water Street", + "lat": "44.31700", + "lon": "-69.77346" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Portland", + "enName": "Portland", + "names": { + "ru": "Портленд", + "uk": "Портленд" + }, + "lat": "43.66103", + "lon": "-70.25486", + "id": 158867610, + "type": "CITY", + "listOfStreets": [ + { + "name": "Westbrook Arterial (Sagamore Village)", + "lat": "43.66658", + "lon": "-70.32952", + "id": 148868 + }, + { + "name": "Westbrook Street", + "lat": "43.66126", + "lon": "-70.33387", + "id": 148884 + } + ], + "init": 1 + }, + { + "name": "Ogunquit", + "lat": "43.24898", + "lon": "-70.59922", + "id": 158844055, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Lane", + "lat": "43.24961", + "lon": "-70.59701", + "id": 147766, + "intersectedStreets": [ + { + "name": "Beach Street", + "lat": "43.24992", + "lon": "-70.59701" + } + ] + }, + { + "name": "Bridge Street", + "lat": "43.24945", + "lon": "-70.59716", + "id": 97101, + "buildings": [ + { + "name": "14", + "lat": "43.24945", + "lon": "-70.59716", + "postcode": "03907" + }, + { + "name": "22", + "lat": "43.24919", + "lon": "-70.59726", + "postcode": "03907" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "West Jonesport", + "lat": "44.52897", + "lon": "-67.62110", + "id": 158856597, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.52777", + "lon": "-67.61538", + "id": 156758 + } + ], + "matchStreet": 1 + }, + { + "name": "Caribou", + "names": { + "ko": "카리부" + }, + "lat": "46.86056", + "lon": "-68.01197", + "id": 158869918, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "46.85784", + "lon": "-68.00593", + "id": 122577 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "North Lincoln", + "lat": "45.42700", + "lon": "-68.46197", + "id": 158817426, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.43089", + "lon": "-68.45763", + "id": 138406 + } + ], + "matchStreet": 1 + }, + { + "name": "West Enfield", + "lat": "45.24339", + "lon": "-68.64975", + "id": 158866578, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "45.23741", + "lon": "-68.64837", + "id": 80408 + } + ], + "matchStreet": 1 + }, + { + "name": "Kezar Falls", + "lat": "43.80785", + "lon": "-70.88895", + "id": 158856838, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "43.80801", + "lon": "-70.88868", + "id": 136808, + "intersectedStreets": [ + { + "name": "High Street", + "lat": "43.80921", + "lon": "-70.88892" + }, + { + "name": "Main Street", + "lat": "43.80921", + "lon": "-70.88892" + }, + { + "name": "River Street", + "lat": "43.80802", + "lon": "-70.88868" + }, + { + "name": "Ridlon Lane", + "lat": "43.80793", + "lon": "-70.88870" + }, + { + "name": "School Street", + "lat": "43.80770", + "lon": "-70.88887" + }, + { + "name": "Ossipee Trail", + "lat": "43.80742", + "lon": "-70.88909" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Eastport", + "lat": "44.90647", + "lon": "-66.99051", + "id": 158853506, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Rollinsford", + "lat": "43.22773", + "lon": "-70.82966", + "id": 370355, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Waterville", + "lat": "44.55201", + "lon": "-69.63171", + "id": 158813569, + "type": "CITY", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.54733", + "lon": "-69.62667", + "id": 76219 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Cambridge", + "lat": "45.02452", + "lon": "-69.47411", + "id": 158844047, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "45.05433", + "lon": "-69.39559", + "id": 101383 + }, + { + "name": "Bridge Road", + "lat": "45.09278", + "lon": "-69.39276", + "id": 70084 + }, + { + "name": "Bridge Road", + "lat": "45.07443", + "lon": "-69.38963", + "id": 70094 + } + ], + "matchStreet": 1 + }, + { + "name": "Gardiner", + "lat": "44.23044", + "lon": "-69.77554", + "id": 158877314, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.23347", + "lon": "-69.77209", + "id": 125641, + "intersectedStreets": [ + { + "name": "Maine Avenue", + "lat": "44.23347", + "lon": "-69.77222" + }, + { + "name": "Summer Street", + "lat": "44.23124", + "lon": "-69.77417" + }, + { + "name": "Highland Avenue", + "lat": "44.23159", + "lon": "-69.77400" + }, + { + "name": "Middle Street", + "lat": "44.23239", + "lon": "-69.77333" + }, + { + "name": "Spring Street", + "lat": "44.23285", + "lon": "-69.77297" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "West Newfield", + "lat": "43.64397", + "lon": "-70.92367", + "id": 158800779, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Bridge Street (Newfield)", + "lat": "43.64806", + "lon": "-70.84742", + "id": 9995, + "buildings": [ + { + "name": "193", + "lat": "43.63794", + "lon": "-70.84302", + "postcode": "04095" + }, + { + "name": "210", + "lat": "43.63834", + "lon": "-70.84529", + "postcode": "04095" + }, + { + "name": "223", + "lat": "43.63994", + "lon": "-70.84347", + "postcode": "04095" + }, + { + "name": "226", + "lat": "43.63921", + "lon": "-70.84572", + "postcode": "04095" + }, + { + "name": "231", + "lat": "43.64005", + "lon": "-70.84235", + "postcode": "04095" + }, + { + "name": "238", + "lat": "43.64061", + "lon": "-70.84491", + "postcode": "04095" + }, + { + "name": "247", + "lat": "43.64125", + "lon": "-70.84401", + "postcode": "04095" + }, + { + "name": "253", + "lat": "43.64176", + "lon": "-70.84431", + "postcode": "04095" + }, + { + "name": "267", + "lat": "43.64257", + "lon": "-70.84433", + "postcode": "04095" + }, + { + "name": "274", + "lat": "43.64336", + "lon": "-70.84512", + "postcode": "04095" + }, + { + "name": "275", + "lat": "43.64348", + "lon": "-70.84409", + "postcode": "04095" + }, + { + "name": "293", + "lat": "43.64421", + "lon": "-70.84366", + "postcode": "04095" + }, + { + "name": "305", + "lat": "43.64541", + "lon": "-70.84431", + "postcode": "04095" + }, + { + "name": "311", + "lat": "43.64573", + "lon": "-70.84476", + "postcode": "04095" + }, + { + "name": "320", + "lat": "43.64572", + "lon": "-70.84605", + "postcode": "04095" + }, + { + "name": "333", + "lat": "43.64662", + "lon": "-70.84613", + "postcode": "04095" + }, + { + "name": "340", + "lat": "43.64682", + "lon": "-70.84729", + "postcode": "04095" + }, + { + "name": "341", + "lat": "43.64702", + "lon": "-70.84665", + "postcode": "04095" + }, + { + "name": "357", + "lat": "43.64806", + "lon": "-70.84742", + "postcode": "04095" + }, + { + "name": "358", + "lat": "43.64797", + "lon": "-70.84789", + "postcode": "04095" + }, + { + "name": "360", + "lat": "43.64823", + "lon": "-70.84802", + "postcode": "04095" + } + ] + }, + { + "name": "Bridge Street (Sprague City)", + "lat": "43.63620", + "lon": "-70.84154", + "id": 9997, + "buildings": [ + { + "name": "8", + "lat": "43.62719", + "lon": "-70.84002", + "postcode": "04095" + }, + { + "name": "44", + "lat": "43.62860", + "lon": "-70.83956", + "postcode": "04095" + }, + { + "name": "54", + "lat": "43.62901", + "lon": "-70.84004", + "postcode": "04095" + }, + { + "name": "58", + "lat": "43.62958", + "lon": "-70.84079", + "postcode": "04095" + }, + { + "name": "132", + "lat": "43.63323", + "lon": "-70.84160", + "postcode": "04095" + }, + { + "name": "134", + "lat": "43.63379", + "lon": "-70.84201", + "postcode": "04095" + }, + { + "name": "136", + "lat": "43.63416", + "lon": "-70.84225", + "postcode": "04095" + }, + { + "name": "137", + "lat": "43.63429", + "lon": "-70.84139", + "postcode": "04095" + }, + { + "name": "161", + "lat": "43.63570", + "lon": "-70.84205", + "postcode": "04095" + }, + { + "name": "167", + "lat": "43.63620", + "lon": "-70.84154", + "postcode": "04095" + }, + { + "name": "177", + "lat": "43.63674", + "lon": "-70.84197", + "postcode": "04095" + }, + { + "name": "187", + "lat": "43.63716", + "lon": "-70.84265", + "postcode": "04095" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "St. Stephen", + "lat": "45.20040", + "lon": "-67.27986", + "id": 204489936, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Bucksport", + "lat": "44.57369", + "lon": "-68.79559", + "id": 158853239, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "44.57167", + "lon": "-68.78789", + "id": 94122 + } + ], + "matchStreet": 1 + }, + { + "name": "Wiscasset", + "lat": "44.00319", + "lon": "-69.66568", + "id": 158858870, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "43.97138", + "lon": "-69.67147", + "id": 133436, + "intersectedStreets": [ + { + "name": "Burnell Road", + "lat": "43.97222", + "lon": "-69.67186" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Ellsworth", + "lat": "44.54348", + "lon": "-68.42018", + "id": 158907508, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Easton", + "lat": "46.64115", + "lon": "-67.90947", + "id": 158874485, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Road", + "lat": "46.65045", + "lon": "-67.91029", + "id": 41826 + } + ], + "matchStreet": 1 + }, + { + "name": "Mars Hill", + "lat": "46.51588", + "lon": "-67.86641", + "id": 158821990, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "lat": "46.51811", + "lon": "-67.86611", + "id": 122573 + } + ], + "matchStreet": 1 + }, + { + "name": "Mexico", + "lat": "44.56112", + "lon": "-70.54596", + "id": 158855781, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Millinocket", + "lat": "45.65773", + "lon": "-68.70987", + "id": 158903664, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Springvale", + "lat": "43.46509", + "lon": "-70.79479", + "id": 158903656, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Bridge Street", + "names": { + "alt_name": "State Route 224" + }, + "lat": "43.46608", + "lon": "-70.79607", + "id": 146135, + "buildings": [ + { + "name": "17", + "lat": "43.46571", + "lon": "-70.79551", + "postcode": "04083" + }, + { + "name": "17", + "lat": "43.46599", + "lon": "-70.79571", + "postcode": "04083" + }, + { + "name": "22", + "lat": "43.46650", + "lon": "-70.79590", + "postcode": "04083" + } + ], + "intersectedStreets": [ + { + "name": "Water Street", + "lat": "43.46667", + "lon": "-70.79491" + } + ] + } + ], + "matchStreet": 1 + } + ] +} \ No newline at end of file diff --git a/OsmAnd-java/src/test/resources/search/carrer_de_vic.json b/OsmAnd-java/src/test/resources/search/carrer_de_vic.json new file mode 100644 index 0000000000..83ce2d7810 --- /dev/null +++ b/OsmAnd-java/src/test/resources/search/carrer_de_vic.json @@ -0,0 +1,6956 @@ +{ + "settings": { + "lat": "41.42389", + "lon": "1.96645", + "radiusLevel": 1, + "totalLimit": -1, + "lang": "", + "transliterateIfMissing": false, + "emptyQueryAllowed": false, + "sortByName": false + }, + "phrase": "carrer de Vic, Sant Bartomeu del grau", + "results": [ + "Carrer de Sant Bartomeu del Grau, Vic", + "Carrer de Vic, Sant Bartomeu del Grau", + "carrer Ponent, Sant Bartomeu del Grau", + "Carrer Pla de l'Oratori, Sant Bartomeu del Grau", + "carrer de Dalt, Sant Bartomeu del Grau", + "Carrer de la Migjorn, Sant Bartomeu del Grau", + "Carrer de la Tramuntana, Sant Bartomeu del Grau", + "Carrer de la Codina (Xalet Mas Reig), Sant Bartomeu del Grau", + "Carrer de Sant Bartomeu, Sant Cugat del Vallès", + "Carretera de Sant Bartomeu del Grau, Muntanyola", + "Carretera de Sant Bartomeu del Grau, Sant Bartomeu del Grau", + "Carretera de Sant Bartomeu, Sant Bartomeu del Grau", + "Carretera de Sant Bartomeu del Grau, Xalet Mas Reig", + "Camí de St. Bartomeu al Sorreig (Xalet Mas Reig), Sant Bartomeu del Grau", + "Carrer Tres Creus, Sant Bartomeu del Grau", + "Carrer del Mig, Sant Bartomeu del Grau", + "carrer Vell, Sant Bartomeu del Grau", + "Carrer Nou, Sant Bartomeu del Grau" + ], + "amenities": [ + { + "name": "Collada de Sant Bartomeu", + "lat": "42.13254", + "lon": "2.36052", + "id": 7047523056, + "subType": "saddle", + "type": "natural", + "additionalInfo": { + "ele": "1289" + } + }, + { + "name": "Esgèsia de Sant Bartomeu", + "lat": "41.26087", + "lon": "1.43803", + "id": 626076983, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Esgèsia de Sant Bartomeu", + "lat": "41.26087", + "lon": "1.43803", + "id": 626076983, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.16079", + "lon": "0.92000", + "id": 773636589, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_chapel": "chapel", + "abandoned": "yes", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "ruins": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.16079", + "lon": "0.92000", + "id": 773636589, + "subType": "abandoned_poi", + "type": "man_made", + "additionalInfo": { + "building_type_chapel": "chapel", + "abandoned": "yes", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "ruins": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.16079", + "lon": "0.92000", + "id": 773636589, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_chapel": "chapel", + "abandoned": "yes", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "ruins": "yes" + } + }, + { + "name": "Esglèsia de Sant Bartomeu", + "lat": "41.24611", + "lon": "1.48642", + "id": 589407255, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Església de Sant Bartomeu", + "lat": "42.12274", + "lon": "2.96206", + "id": 594632519, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Església de Sant Bartomeu", + "lat": "42.12274", + "lon": "2.96206", + "id": 594632519, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.95210", + "lon": "2.23660", + "id": 192305229, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "BV-4601" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.20114", + "lon": "2.19935", + "id": 1199378759, + "subType": "building", + "type": "man_made" + }, + { + "name": "riera de Sant Bartomeu", + "lat": "41.93689", + "lon": "2.17600", + "id": 761300829, + "subType": "stream", + "type": "natural" + }, + { + "name": "Coll de Sant Bartomeu", + "lat": "41.56389", + "lon": "2.34339", + "id": 2834790858, + "subType": "saddle", + "type": "natural" + }, + { + "name": "Cal Bartomeus", + "lat": "41.89541", + "lon": "1.78277", + "id": 442258781, + "subType": "building", + "type": "man_made" + }, + { + "name": "Sant Bartomeu", + "lat": "41.51886", + "lon": "1.70758", + "id": 595599237, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.51886", + "lon": "1.70758", + "id": 595599237, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian" + } + }, + { + "name": "Monument a Bartomeu Robert", + "names": { + "ca": "Monument a Bartomeu Robert" + }, + "lat": "41.39489", + "lon": "2.17555", + "id": 4538261640, + "subType": "monument", + "type": "tourism", + "additionalInfo": { + "artwork_type_statue": "statue", + "material_metal": "metal", + "length": "11.25", + "artist_name": "Josep Llimona", + "end_date": "1010-11-13", + "alt_name": "Monument al Doctor Robert", + "height": "12.6", + "width": "9.26", + "start_date": "1904-01-31", + "wikipedia": "http://ca.wikipedia.org/wiki/Monument al Doctor Robert" + } + }, + { + "name": "Sant Bartomeu i Santa Tecla", + "lat": "41.23469", + "lon": "1.81169", + "id": 463621227, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu i Santa Tecla", + "lat": "41.23469", + "lon": "1.81169", + "id": 463621227, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Mas Bartomeu", + "lat": "41.20394", + "lon": "1.54401", + "id": 8655443378, + "subType": "internet_access_wlan", + "type": "service", + "additionalInfo": { + "website": "http://www.barthomeus.com/en/rural-tourism/", + "phone": "+34 6007188857" + } + }, + { + "name": "Mas Bartomeu", + "lat": "41.20394", + "lon": "1.54401", + "id": 8655443378, + "subType": "isolated_dwelling", + "type": "administrative", + "additionalInfo": { + "website": "http://www.barthomeus.com/en/rural-tourism/", + "phone": "+34 6007188857" + } + }, + { + "name": "Sant Bartomeu de Favà", + "lat": "42.24723", + "lon": "1.20547", + "id": 1566711339, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Favà" + } + }, + { + "name": "Sant Bartomeu de Favà", + "lat": "42.24723", + "lon": "1.20547", + "id": 1566711339, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Favà" + } + }, + { + "name": "Ferrer i Bassa - Bartomeu Bermejo", + "lat": "41.38650", + "lon": "2.09169", + "id": 10822050304, + "subType": "public_transport_platform", + "type": "transportation", + "additionalInfo": { + "ref": "108121", + "route_bus_ref": "EP2" + } + }, + { + "name": "Sant Bartomeu Sesgorgues", + "lat": "42.01482", + "lon": "2.36041", + "id": 591049713, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu Sesgorgues", + "lat": "42.01482", + "lon": "2.36041", + "id": 591049713, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.75358", + "lon": "1.90508", + "id": 668389083, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "route_hiking_ref_poi": "GR 151", + "operator": "GR" + } + }, + { + "name": "Torrent de Mas Bartomeu", + "lat": "41.29506", + "lon": "1.49365", + "id": 1142622473, + "subType": "stream", + "type": "natural" + }, + { + "name": "Circumval·lació - Sant Bartomeu", + "lat": "41.44305", + "lon": "2.21619", + "id": 11194749018, + "subType": "public_transport_stop_position", + "type": "transportation", + "additionalInfo": { + "bus_yes": "yes", + "ref": "101619", + "route_bus_ref": "B3, B5, B81", + "operator": "AMT (Autoritat Metropolitana del Transport)" + } + }, + { + "name": "Sant Bartomeu de Cabanyes", + "lat": "41.56242", + "lon": "2.34329", + "id": 396898673, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_chapel": "chapel", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Cabanyes" + } + }, + { + "name": "Sant Bartomeu de Cabanyes", + "lat": "41.56242", + "lon": "2.34329", + "id": 396898673, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_chapel": "chapel", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Cabanyes" + } + }, + { + "name": "Circumval·lació - Sant Bartomeu", + "lat": "41.44302", + "lon": "2.21623", + "id": 4298586344, + "subType": "public_transport_platform", + "type": "transportation", + "additionalInfo": { + "covered_yes": "yes", + "bench_yes": "yes", + "bus_yes": "yes", + "operator": "AMT (Autoritat Metropolitana del Transport)", + "ref": "101619", + "route_bus_ref": "B3, B5, B81" + } + }, + { + "name": "Bartomeu", + "lat": "41.60580", + "lon": "1.84918", + "id": 13759518204, + "subType": "restaurant", + "type": "sustenance" + }, + { + "name": "Riera de Sant Bartomeu", + "lat": "41.42218", + "lon": "2.03183", + "id": 569985689, + "subType": "stream", + "type": "natural" + }, + { + "name": "Barranc de Sant Bartomeu", + "lat": "41.32223", + "lon": "0.81964", + "id": 1345538897, + "subType": "stream", + "type": "natural", + "additionalInfo": { + "intermittent": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.33647", + "lon": "1.68994", + "id": 14053259716, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Ermita de Sant Bartomeu", + "lat": "42.51543", + "lon": "1.14232", + "id": 455023675, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Ermita de Sant Bartomeu", + "lat": "42.51543", + "lon": "1.14232", + "id": 455023675, + "subType": "historic_ruins", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Ermita de Sant Bartomeu", + "lat": "42.51543", + "lon": "1.14232", + "id": 455023675, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Riera de Sant Bartomeu", + "lat": "41.41853", + "lon": "2.02412", + "id": 569985685, + "subType": "stream", + "type": "natural", + "additionalInfo": { + "tunnel_waterway": "yes" + } + }, + { + "name": "Riera de Sant Bartomeu", + "lat": "41.41853", + "lon": "2.02412", + "id": 569985685, + "subType": "tunnel", + "type": "man_made", + "additionalInfo": { + "tunnel_waterway": "yes" + } + }, + { + "name": "Riera de Sant Bartomeu", + "lat": "41.41623", + "lon": "2.01698", + "id": 569985687, + "subType": "stream", + "type": "natural" + }, + { + "name": "Torrent de Sant Bartomeu", + "lat": "41.56362", + "lon": "2.33994", + "id": 1533043985, + "subType": "stream", + "type": "natural", + "additionalInfo": { + "tunnel_waterway": "yes" + } + }, + { + "name": "Torrent de Sant Bartomeu", + "lat": "41.56362", + "lon": "2.33994", + "id": 1533043985, + "subType": "tunnel", + "type": "man_made", + "additionalInfo": { + "tunnel_waterway": "yes" + } + }, + { + "name": "Sant Bartomeu - Av. Amèrica", + "lat": "41.44208", + "lon": "2.21696", + "id": 1209841198, + "subType": "public_transport_platform", + "type": "transportation", + "additionalInfo": { + "covered_yes": "yes", + "bench_yes": "yes", + "bus_yes": "yes", + "operator": "AMT (Autoritat Metropolitana del Transport)", + "ref": "106952", + "route_bus_ref": "B3" + } + }, + { + "name": "Torrent de Sant Bartomeu", + "lat": "41.56328", + "lon": "2.34007", + "id": 1533043987, + "subType": "stream", + "type": "natural" + }, + { + "name": "CEIP Sant Bartomeu", + "lat": "41.77346", + "lon": "0.95373", + "id": 4567668722, + "subType": "school", + "type": "education" + }, + { + "name": "Serra de Sant Bartomeu", + "lat": "42.04293", + "lon": "0.67967", + "id": 2483310648, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Sant Bartomeu", + "lat": "41.25161", + "lon": "0.48567", + "id": 4818161750, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Plana del Mas de Bartomeu", + "lat": "41.32518", + "lon": "1.50174", + "id": 2483585588, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Sant Bartomeu de Covildases", + "lat": "42.12366", + "lon": "2.36092", + "id": 408311831, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Covildases" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.09004", + "lon": "1.83173", + "id": 751409033, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Valldan" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.09004", + "lon": "1.83173", + "id": 751409033, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Valldan" + } + }, + { + "name": "Sant Bartomeu", + "lat": "40.98393", + "lon": "0.40540", + "id": 365424263, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "40.98393", + "lon": "0.40540", + "id": 365424263, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.12533", + "lon": "2.36084", + "id": 408311829, + "subType": "isolated_dwelling", + "type": "administrative" + }, + { + "name": "Sant Bartomeu", + "lat": "42.12533", + "lon": "2.36084", + "id": 408311829, + "subType": "building", + "type": "man_made" + }, + { + "name": "Riera de Sant Bartomeu", + "lat": "42.12108", + "lon": "2.36333", + "id": 408311827, + "subType": "stream", + "type": "natural" + }, + { + "name": "Parròquia de Sant Bartomeu", + "lat": "41.35682", + "lon": "2.14362", + "id": 4416472365056, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.08986", + "lon": "1.83047", + "id": 14626078594, + "subType": "public_transport_stop_position", + "type": "transportation", + "additionalInfo": { + "bus_yes": "yes", + "route_bus_ref": "L2" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.20096", + "lon": "2.19939", + "id": 11409298500, + "subType": "peak", + "type": "natural", + "additionalInfo": { + "ele": "907.3" + } + }, + { + "name": "Font de Sant Bartomeu", + "lat": "41.56263", + "lon": "2.34039", + "id": 2838332968, + "subType": "drinking_water", + "type": "man_made" + }, + { + "name": "Sant Bartomeu", + "lat": "42.14971", + "lon": "2.43931", + "id": 6957707196, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.14971", + "lon": "2.43931", + "id": 6957707196, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.45913", + "lon": "0.35922", + "id": 881250253, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "tourism_yes": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.45913", + "lon": "0.35922", + "id": 881250253, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "tourism_yes": "yes" + } + }, + { + "name": "Refugi Bartomeu Puiggrós", + "lat": "41.61103", + "lon": "1.81783", + "id": 356628491, + "subType": "alpine_hut", + "type": "tourism", + "additionalInfo": { + "reservation_no": "no", + "fee_no": "no", + "website": "https://www.feec.cat/refugi/refugi-santa-cecilia-bartomeu-puiggros-actualment-fora-de-servei/", + "operator": "Federació d'Entitats Excursionistes de Catalunya", + "ele": "678" + } + }, + { + "name": "Refugi Bartomeu Puiggrós", + "lat": "41.61103", + "lon": "1.81783", + "id": 356628491, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "reservation_no": "no", + "fee_no": "no", + "website": "https://www.feec.cat/refugi/refugi-santa-cecilia-bartomeu-puiggros-actualment-fora-de-servei/", + "operator": "Federació d'Entitats Excursionistes de Catalunya", + "ele": "678" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.60533", + "lon": "1.19184", + "id": 4915765324, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Serrat de Sant Bartomeu", + "lat": "42.01369", + "lon": "1.52899", + "id": 5287221800, + "subType": "peak", + "type": "natural", + "additionalInfo": { + "ele": "869.7", + "wikipedia": "http://ca.wikipedia.org/wiki/Serrat de Sant Bartomeu" + } + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42595", + "lon": "2.03766", + "id": 4303985092, + "subType": "village", + "type": "administrative" + }, + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.94291", + "lon": "2.24117", + "id": 618135959, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "foot_no": "no", + "operator": "Eix-Bus, SA, Sagalés", + "ref": "BV-4601", + "route_bus_ref": "L0324, L9" + } + }, + { + "name": "Barranc de Sant Bartomeu", + "lat": "41.31632", + "lon": "0.82661", + "id": 365845663, + "subType": "stream", + "type": "natural", + "additionalInfo": { + "intermittent": "yes" + } + }, + { + "name": "Sant Bartomeu de Malgrat", + "lat": "42.29904", + "lon": "1.30587", + "id": 1567304955, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Malgrat" + } + }, + { + "name": "Sant Bartomeu de Malgrat", + "lat": "42.29904", + "lon": "1.30587", + "id": 1567304955, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Malgrat" + } + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42596", + "lon": "2.03734", + "id": 792807189, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.62957", + "lon": "0.83176", + "id": 806154843, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.62957", + "lon": "0.83176", + "id": 806154843, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Església de Sant Bartomeu", + "lat": "41.13746", + "lon": "0.90953", + "id": 1522708629, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Església de Sant Bartomeu", + "lat": "41.13746", + "lon": "0.90953", + "id": 1522708629, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu del Portell", + "lat": "42.18459", + "lon": "2.78257", + "id": 503402073, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu del Portell", + "lat": "42.18459", + "lon": "2.78257", + "id": 503402073, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Bac de Sant Bartomeu", + "lat": "42.01525", + "lon": "2.36002", + "id": 819238709, + "subType": "cliff", + "type": "natural" + }, + { + "name": "St. Bartomeu del Grau / Gurb", + "lat": "41.94245", + "lon": "2.23168", + "id": 287970188, + "subType": "motorway_junction", + "type": "transportation", + "additionalInfo": { + "ref": "178" + } + }, + { + "name": "St. Bartomeu del Grau / Gurb", + "lat": "41.93913", + "lon": "2.23220", + "id": 4186739438, + "subType": "motorway_junction", + "type": "transportation", + "additionalInfo": { + "ref": "62" + } + }, + { + "name": "Torrent de Mas Bartomeu", + "lat": "41.31308", + "lon": "1.49760", + "id": 1346167445, + "subType": "stream", + "type": "natural", + "additionalInfo": { + "intermittent": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.91855", + "lon": "1.14670", + "id": 1272049979, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "website": "http://www.ponts.cat/ca/administracio/ajuntamentponts/llocs-dinteres/sant-bartomeu-del-tossal/109580.html" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.91855", + "lon": "1.14670", + "id": 1272049979, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "website": "http://www.ponts.cat/ca/administracio/ajuntamentponts/llocs-dinteres/sant-bartomeu-del-tossal/109580.html" + } + }, + { + "name": "Baga de Sant Bartomeu", + "lat": "42.11861", + "lon": "2.36346", + "id": 2483114606, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Coll de Sant Bartomeu", + "lat": "41.56226", + "lon": "2.34337", + "id": 4171544074, + "subType": "saddle", + "type": "natural" + }, + { + "name": "Església Sant Bartomeu", + "lat": "41.18621", + "lon": "1.45425", + "id": 478522345, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Església Sant Bartomeu", + "lat": "41.18621", + "lon": "1.45425", + "id": 478522345, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Font d'en Bartomeu", + "lat": "41.46683", + "lon": "2.21259", + "id": 10342753736, + "subType": "spring", + "type": "natural" + }, + { + "name": "Coveta de Mas Bartomeu", + "lat": "41.31638", + "lon": "1.49745", + "id": 13741861990, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Sant Bartomeu", + "lat": "41.15953", + "lon": "0.98349", + "id": 615003673, + "subType": "historic_ruins", + "type": "tourism" + }, + { + "name": "Sant Bartomeu de Navarcles", + "lat": "41.75479", + "lon": "1.90593", + "id": 383189027, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_chapel": "chapel", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Navarcles" + } + }, + { + "name": "Sant Bartomeu de Navarcles", + "lat": "41.75479", + "lon": "1.90593", + "id": 383189027, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_chapel": "chapel", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Navarcles" + } + }, + { + "name": "Farmàcia Fullana Fiol, Bartomeu", + "names": { + "es": "Farmacia Fullana Fior" + }, + "lat": "41.11690", + "lon": "1.24882", + "id": 8741907834, + "subType": "pharmacy", + "type": "healthcare", + "openingHours": "Mo-Su 09:00-22:00", + "additionalInfo": { + "wheelchair_yes": "yes", + "dispensing_yes": "yes", + "opening_hours": "Mo-Su 09:00-22:00", + "website": "http://www.farmaciafullana.com", + "phone": "+34977214517", + "ref": "3622889" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.11643", + "lon": "0.53704", + "id": 200405579, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.26557", + "lon": "1.36593", + "id": 438850967, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.26557", + "lon": "1.36593", + "id": 438850967, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Ermita de Sant Bartomeu", + "lat": "41.69527", + "lon": "2.23484", + "id": 494172861, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Ermita de Sant Bartomeu", + "lat": "41.69527", + "lon": "2.23484", + "id": 494172861, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Església Sant Bartomeu", + "lat": "41.66652", + "lon": "0.55528", + "id": 662608051, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church" + } + }, + { + "name": "Biblioteca pública Sant Bartomeu", + "lat": "41.66605", + "lon": "0.55723", + "id": 662585265, + "subType": "public_bookcase", + "type": "entertainment" + }, + { + "name": "Sant Bartomeu del Grau", + "lat": "41.98077", + "lon": "2.17504", + "id": 1100085252, + "subType": "village", + "type": "administrative", + "additionalInfo": { + "population": "967", + "ele": "869" + } + }, + { + "name": "Sant Bartomeu de la Vall de Vilaramó", + "lat": "41.96298", + "lon": "1.94203", + "id": 1571465203, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Vall de Vilaramó" + } + }, + { + "name": "Sant Bartomeu de la Vall de Vilaramó", + "lat": "41.96298", + "lon": "1.94203", + "id": 1571465203, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Vall de Vilaramó" + } + }, + { + "name": "Sant Bartomeu de Pincaró", + "lat": "42.33474", + "lon": "2.67644", + "id": 732345343, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Pincaró" + } + }, + { + "name": "Sant Bartomeu de Pincaró", + "lat": "42.33474", + "lon": "2.67644", + "id": 732345343, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Pincaró" + } + }, + { + "name": "Sant Bartomeu i Sant Roc", + "lat": "40.63480", + "lon": "0.27983", + "id": 4403358244864, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.95434", + "lon": "1.00070", + "id": 794066121, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "tourism_yes": "yes" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.95434", + "lon": "1.00070", + "id": 794066121, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_roman_catholic": "roman_catholic", + "religion_christian": "christian", + "tourism_yes": "yes" + } + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42818", + "lon": "2.03951", + "id": 305746279, + "subType": "village", + "type": "administrative", + "additionalInfo": { + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Quadra" + } + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42818", + "lon": "2.03951", + "id": 305746279, + "subType": "protected_area", + "type": "natural", + "additionalInfo": { + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Quadra" + } + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42818", + "lon": "2.03951", + "id": 305746279, + "subType": "residential", + "type": "administrative", + "additionalInfo": { + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Quadra" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.33564", + "lon": "1.68801", + "id": 7517265072, + "subType": "isolated_dwelling", + "type": "administrative" + }, + { + "name": "Sant Bartomeu - Av. Amèrica", + "lat": "41.44205", + "lon": "2.21692", + "id": 11457138432, + "subType": "public_transport_stop_position", + "type": "transportation", + "additionalInfo": { + "bus_yes": "yes", + "ref": "106952", + "route_bus_ref": "B3", + "operator": "AMT (Autoritat Metropolitana del Transport)" + } + }, + { + "name": "Mas Bartomeu", + "lat": "41.32159", + "lon": "1.49588", + "id": 643259774, + "subType": "historic_ruins", + "type": "tourism" + }, + { + "name": "Sant Bartomeu", + "lat": "41.31766", + "lon": "0.82526", + "id": 365845729, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Parròquia de Sant Bartomeu", + "lat": "41.36558", + "lon": "2.13993", + "id": 434957341, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "religion_christian": "christian" + } + }, + { + "name": "Parròquia de Sant Bartomeu", + "lat": "41.36558", + "lon": "2.13993", + "id": 434957341, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "religion_christian": "christian" + } + }, + { + "name": "Cal Bartomeu", + "lat": "41.41150", + "lon": "1.62267", + "id": 638360509, + "subType": "building", + "type": "man_made" + }, + { + "name": "Sant Bartomeu", + "lat": "42.59165", + "lon": "1.14919", + "id": 918469451, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "42.59165", + "lon": "1.14919", + "id": 918469451, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Esglesia de Sant Bartomeu", + "lat": "41.12553", + "lon": "0.73351", + "id": 8392486606, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Roc de Sant Bartomeu", + "lat": "42.45785", + "lon": "1.37662", + "id": 2483279296, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Coves de Bartomeu", + "lat": "40.58388", + "lon": "0.49745", + "id": 9431002076, + "subType": "cave_entrance", + "type": "natural" + }, + { + "name": "Collada de Sant Bartomeu", + "lat": "42.11591", + "lon": "2.36923", + "id": 10218636968, + "subType": "saddle", + "type": "natural", + "additionalInfo": { + "ele": "1251.9" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.44287", + "lon": "1.40528", + "id": 7959004006, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.29483", + "lon": "1.30596", + "id": 7723017360, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu del Grau", + "lat": "41.98385", + "lon": "2.17291", + "id": 843592333, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu del Grau", + "lat": "41.98385", + "lon": "2.17291", + "id": 843592333, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu d'Erta", + "lat": "42.42590", + "lon": "0.84369", + "id": 1569661771, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu d'Erta" + } + }, + { + "name": "Sant Bartomeu d'Erta", + "lat": "42.42590", + "lon": "0.84369", + "id": 1569661771, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu d'Erta" + } + }, + { + "name": "Baixada de Sant Bartomeu", + "lat": "42.43109", + "lon": "1.92945", + "id": 380780603, + "subType": "highway_steps", + "type": "transportation" + }, + { + "name": "Sant Bartomeu", + "lat": "41.99774", + "lon": "0.84477", + "id": 4413779894272, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Baronia de Sant Oïsme" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.99774", + "lon": "0.84477", + "id": 4413779894272, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de la Baronia de Sant Oïsme" + } + }, + { + "name": "Tossal de Sant Bartomeu", + "lat": "41.67410", + "lon": "0.53977", + "id": 2483336656, + "subType": "locality", + "type": "administrative" + }, + { + "name": "Bartomeu Robert", + "lat": "41.35378", + "lon": "2.15326", + "id": 4696518112, + "subType": "memorial", + "type": "tourism" + }, + { + "name": "Sant Bartomeu de Burg", + "lat": "42.50447", + "lon": "1.27216", + "id": 794417303, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Burg" + } + }, + { + "name": "Sant Bartomeu de Burg", + "lat": "42.50447", + "lon": "1.27216", + "id": 794417303, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "denomination_catholic": "catholic", + "building_type_church": "church", + "religion_christian": "christian", + "tourism_yes": "yes", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Burg" + } + }, + { + "name": "Capella de Sant Bartomeu", + "lat": "41.95946", + "lon": "2.66841", + "id": 1590434589, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Capella de Sant Bartomeu", + "lat": "41.95946", + "lon": "2.66841", + "id": 1590434589, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu de Llaés", + "lat": "42.15470", + "lon": "2.24838", + "id": 843966623, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Sant Bartomeu de Llaés", + "lat": "42.15470", + "lon": "2.24838", + "id": 843966623, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian" + } + }, + { + "name": "Frutería Casa Bartomeus - Tiendadefruta.es", + "lat": "41.73356", + "lon": "1.83158", + "id": 6585869656, + "subType": "greengrocer", + "type": "shop", + "additionalInfo": { + "wheelchair_yes": "yes", + "website": "https://www.tiendadefruta.es/", + "phone": "+34 93 8730959", + "description:es": "Tienda de fruta expertos en frutas tropicales y exóticas. Disponen de guanábana, mangostán, ñame, ..." + } + }, + { + "name": "Torrent de Sant Bartomeu", + "lat": "41.56515", + "lon": "2.33831", + "id": 454746319, + "subType": "stream", + "type": "natural" + }, + { + "name": "Sant Bartomeu de Carbasí", + "lat": "41.61024", + "lon": "1.43063", + "id": 1570663755, + "subType": "place_of_worship", + "type": "tourism", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Carbasí" + } + }, + { + "name": "Sant Bartomeu de Carbasí", + "lat": "41.61024", + "lon": "1.43063", + "id": 1570663755, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "building_type_church": "church", + "denomination_catholic": "catholic", + "religion_christian": "christian", + "wikipedia": "http://ca.wikipedia.org/wiki/Sant Bartomeu de Carbasí" + } + }, + { + "name": "Sant Bartomeu", + "lat": "41.31775", + "lon": "0.82535", + "id": 3865575034, + "subType": "attraction", + "type": "tourism" + }, + { + "name": "Plaça de Sant Bartomeu", + "lat": "41.29449", + "lon": "1.30596", + "id": 1124433115, + "subType": "square", + "type": "man_made" + } + ], + "cities": [ + { + "name": "Arganda del Rey", + "lat": "40.30077", + "lon": "-3.43807", + "id": 256329511, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Fruitós de Bages", + "lat": "41.75327", + "lon": "1.87494", + "id": 1470839177, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Muntanyola", + "lat": "41.87693", + "lon": "2.17908", + "id": 1460478703, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carretera de Sant Bartomeu del Grau", + "lat": "41.95777", + "lon": "2.13628", + "id": 81162 + } + ], + "matchStreet": 1 + }, + { + "name": "Sant Joan de Vilatorrada", + "lat": "41.74221", + "lon": "1.80362", + "id": 1470839184, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Villanueva de la Cañada", + "lat": "40.44721", + "lon": "-4.00280", + "id": 269160430, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Lliçà de Vall", + "lat": "41.59155", + "lon": "2.24224", + "id": 1460478693, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Rosselló Porcel", + "lat": "41.60258", + "lon": "2.21767", + "id": 40502 + } + ], + "matchStreet": 1 + }, + { + "name": "Cambrils", + "lat": "41.06794", + "lon": "1.06576", + "id": 1470838172, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Masllorenç", + "lat": "41.27017", + "lon": "1.41449", + "id": 935240588, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (Masarbonès)", + "lat": "41.25990", + "lon": "1.43844", + "id": 105689, + "intersectedStreets": [ + { + "name": "Carrer de Sant Antoni (Masarbonès)", + "lat": "41.25981", + "lon": "1.43687" + }, + { + "name": "Carrer Major (Masarbonès)", + "lat": "41.25989", + "lon": "1.43796" + }, + { + "name": "Carrer de Bonastre (Masarbonès)", + "lat": "41.25992", + "lon": "1.43848" + }, + { + "name": "Carrer de les Fassines (Masarbonès)", + "lat": "41.26018", + "lon": "1.43874" + }, + { + "name": "Plaça de l'Om (Masarbonès)", + "lat": "41.26040", + "lon": "1.43854" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Almacelles", + "lat": "41.72950", + "lon": "0.44048", + "id": 352498933, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Blanch 'lo Català'", + "lat": "41.72985", + "lon": "0.44291", + "id": 87670 + } + ], + "matchStreet": 1 + }, + { + "name": "Caldes de Montbui", + "names": { + "es": "Caldes de Montbui" + }, + "lat": "41.63227", + "lon": "2.16764", + "id": 1470838164, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sobremunt", + "lat": "42.03530", + "lon": "2.16516", + "id": 539466271, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí de St. Bartomeu al Sorreig", + "lat": "42.00629", + "lon": "2.17995", + "id": 122291 + } + ], + "matchStreet": 1 + }, + { + "name": "Calonge", + "lat": "41.86210", + "lon": "3.07723", + "id": 1470838168, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Bellmunt d'Urgell", + "lat": "41.77399", + "lon": "0.95381", + "id": 390491452, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Baixada de Sant Bartomeu", + "lat": "41.77357", + "lon": "0.95115", + "id": 96278, + "intersectedStreets": [ + { + "name": "Camí de Linyola", + "lat": "41.77341", + "lon": "0.95096" + }, + { + "name": "Avinguda de Domènec Cardenal", + "lat": "41.77347", + "lon": "0.95107" + }, + { + "name": "Carrer del Terral", + "lat": "41.77379", + "lon": "0.95148" + }, + { + "name": "Carrer del Bancal", + "lat": "41.77390", + "lon": "0.95184" + }, + { + "name": "Carrer de Barcelona", + "names": { + "ca": "carrer de Barcelona" + }, + "lat": "41.77411", + "lon": "0.95195" + }, + { + "name": "Carretera de Bellmunt d'Urgell", + "lat": "41.77214", + "lon": "0.95002" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Calella", + "lat": "41.61329", + "lon": "2.65761", + "id": 1470838165, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cervera", + "lat": "41.67680", + "lon": "1.27499", + "id": 9205876, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ripollet", + "lat": "41.49934", + "lon": "2.15731", + "id": 3538816683, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "San Agustín del Guadalix", + "names": { + "ru": "Сан-Агустин-дель-Гвадаликс", + "uk": "Сан-Агустін-дель-Гуадалікс" + }, + "lat": "40.67905", + "lon": "-3.61660", + "id": 258640685, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Girona", + "names": { + "ast": "Xirona", + "be": "Жырона", + "ru": "Жирона", + "ko": "지로나", + "pt": "Gerunda", + "gl": "Xirona", + "el": "Ζιρόνα", + "lt": "Žirona", + "fr": "Gérone", + "an": "Chirona", + "es": "Gerona", + "zh": "赫罗纳", + "eu": "Girona", + "ar": "جرندة", + "oc": "Girona", + "uk": "Жірона", + "ja": "ジローナ", + "fa": "خرنا", + "he": "ז'ירונה", + "ca": "Girona", + "nl": "Gerona", + "sr": "Ђирона" + }, + "lat": "41.97930", + "lon": "2.81994", + "id": 30894545, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Tres Cantos", + "names": { + "ru": "Трес-Кантос", + "uk": "Трес-Кантос" + }, + "lat": "40.60658", + "lon": "-3.70653", + "id": 319938844, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Súria", + "lat": "41.83281", + "lon": "1.75266", + "id": 5045067902, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Palamós", + "lat": "41.84954", + "lon": "3.12788", + "id": 1470838632, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Andreu de la Barca", + "lat": "41.45182", + "lon": "1.97248", + "id": 1470839144, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Palafrugell", + "lat": "41.91836", + "lon": "3.16199", + "id": 1470838631, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Andreu de Llavaneres", + "names": { + "ca": "Sant Andreu de Llavaneres" + }, + "lat": "41.57395", + "lon": "2.48282", + "id": 1470839142, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Villaviciosa de Odón", + "lat": "40.35738", + "lon": "-3.90023", + "id": 306574423, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "San Martín de la Vega", + "lat": "40.21105", + "lon": "-3.57718", + "id": 4350968640, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Camallera", + "lat": "42.12271", + "lon": "2.96347", + "id": 365041119, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "42.12202", + "lon": "2.96408", + "id": 35207, + "intersectedStreets": [ + { + "name": "Carrer del Doctor Lluís Fàbrega", + "lat": "42.12202", + "lon": "2.96408" + }, + { + "name": "Carrer de Vicenç Bou", + "lat": "42.12142", + "lon": "2.96453" + }, + { + "name": "Carrer de l'Estació", + "lat": "42.12142", + "lon": "2.96453" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Tossa de Mar", + "names": { + "ca": "Tossa de Mar" + }, + "lat": "41.71978", + "lon": "2.93122", + "id": 331106659, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Mataró", + "names": { + "ar": "ماتارو", + "ru": "Матаро", + "uk": "Матаро", + "el": "Ματαρό", + "lt": "Mataro", + "ca": "Mataró", + "es": "Mataró" + }, + "lat": "41.53983", + "lon": "2.44489", + "id": 65523130, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Celoni", + "lat": "41.69014", + "lon": "2.49167", + "id": 1470839157, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Vielha", + "names": { + "oc": "Vielha", + "es": "Viella" + }, + "lat": "42.70176", + "lon": "0.79547", + "id": 1098278678, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Leganés", + "enName": "Leganés", + "names": { + "ru": "Леганес", + "uk": "Леганес", + "ja": "レガネス", + "hu": "Leganés", + "sr": "Леганес" + }, + "lat": "40.32819", + "lon": "-3.76527", + "id": 306524644, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cervera", + "lat": "41.67307", + "lon": "1.27294", + "id": 1470838211, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Viladecans", + "lat": "41.31631", + "lon": "2.01560", + "id": 2375518653, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ponts", + "lat": "41.91601", + "lon": "1.18825", + "id": 1470838746, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Camí de Sant Bartomeu (el Tossal)", + "lat": "41.91443", + "lon": "1.15028", + "id": 110593, + "intersectedStreets": [ + { + "name": "Camí del Tossal (el Tossal)", + "lat": "41.91492", + "lon": "1.15232" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Cubelles", + "names": { + "ca": "Cubelles" + }, + "lat": "41.20834", + "lon": "1.67305", + "id": 1470838239, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Carles de la Ràpita", + "names": { + "ca": "Sant Carles de la Ràpita" + }, + "lat": "40.61766", + "lon": "0.58993", + "id": 1407801234, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Santa Coloma de Farners", + "lat": "41.86031", + "lon": "2.66590", + "id": 1470839251, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Colmenar Viejo", + "lat": "40.65879", + "lon": "-3.76632", + "id": 256291070, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cornellà de Llobregat", + "lat": "41.35572", + "lon": "2.07062", + "id": 1470838232, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Corbera de Llobregat", + "lat": "41.41662", + "lon": "1.93386", + "id": 1470838229, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Galapagar", + "lat": "40.57750", + "lon": "-4.00377", + "id": 4279257425, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cardona", + "lat": "41.91428", + "lon": "1.68133", + "id": 1470838186, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cardedeu", + "names": { + "ar": "كارديديو", + "uk": "Кардазеу", + "el": "Καρδεδέου" + }, + "lat": "41.63852", + "lon": "2.35584", + "id": 1470838185, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Vicenç dels Horts", + "lat": "41.39342", + "lon": "2.00995", + "id": 1470839216, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Pineda de Mar", + "lat": "41.62762", + "lon": "2.68976", + "id": 1470838702, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "l'Escala", + "names": { + "es": "La Escala" + }, + "lat": "42.11354", + "lon": "3.13874", + "id": 339019326, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Canet de Mar", + "lat": "41.59009", + "lon": "2.57780", + "id": 1470838178, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "San Sebastián de los Reyes", + "names": { + "ru": "Сан-Себастиан-де-лос-Рейес", + "uk": "Сан-Себастьян-де-лос-Реєс", + "lt": "San Sebastian de los Rejesas", + "es": "San Sebastián de los Reyes" + }, + "lat": "40.54737", + "lon": "-3.62606", + "id": 256150800, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Villanueva del Pardillo", + "lat": "40.49492", + "lon": "-3.96001", + "id": 254637858, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Antoni de Calonge", + "lat": "41.84727", + "lon": "3.10260", + "id": 338084408, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Castelldefels", + "lat": "41.28610", + "lon": "1.98242", + "id": 1470838201, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Òrrius", + "names": { + "ca": "Òrrius" + }, + "lat": "41.55519", + "lon": "2.35494", + "id": 1460478298, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí de Vilassar de Dalt a Sant Bartomeu", + "lat": "41.54631", + "lon": "2.34333", + "id": 56311, + "intersectedStreets": [ + { + "name": "Camí de Òrrius", + "lat": "41.54813", + "lon": "2.34120" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Alcobendas", + "names": { + "ar": "ألكوبينداس", + "ru": "Алькобендас", + "hu": "Alcobendas", + "sr": "Алкобендас" + }, + "lat": "40.54001", + "lon": "-3.63585", + "id": 256150802, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Agramunt", + "lat": "41.78767", + "lon": "1.09868", + "id": 1470837683, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Aiguaviva", + "lat": "41.35223", + "lon": "1.50317", + "id": 721174118, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Camí d'Aiguaviva a Mas Bartomeu", + "lat": "41.33443", + "lon": "1.49972", + "id": 25803 + } + ], + "matchStreet": 1 + }, + { + "name": "Navalcarnero", + "lat": "40.28772", + "lon": "-4.01430", + "id": 258123001, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Terrassa", + "names": { + "ar": "تاراسا", + "ru": "Террасса", + "el": "Τεράσα", + "lt": "Terasa", + "ca": "Terrassa", + "es": "Tarrasa", + "sr": "Тараса" + }, + "lat": "41.56299", + "lon": "2.01024", + "id": 288139569, + "type": "CITY", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Amat", + "lat": "41.57033", + "lon": "2.01221", + "id": 22750, + "intersectedStreets": [ + { + "name": "Passeig del Vint-i-dos de Juliol", + "names": { + "alt_name": "Pont de les Arenes (les Arenes)" + }, + "lat": "41.57033", + "lon": "2.01221" + }, + { + "name": "Carrer de Sant Leopold", + "lat": "41.57016", + "lon": "2.01217" + }, + { + "name": "Avinguda de l'Abat Marcet (Pere Parres)", + "lat": "41.57489", + "lon": "2.01219" + }, + { + "name": "Carrer de les Campiones olímpiques", + "lat": "41.57489", + "lon": "2.01219" + }, + { + "name": "Carrer de l'Autonomia (Sant Pere)", + "lat": "41.57393", + "lon": "2.01224" + }, + { + "name": "Carrer Transversal (Sant Pere)", + "lat": "41.57300", + "lon": "2.01228" + }, + { + "name": "Plaça del Triomf", + "lat": "41.57250", + "lon": "2.01228" + }, + { + "name": "Carrer de Catalunya (Sant Pere)", + "lat": "41.57173", + "lon": "2.01226" + }, + { + "name": "Carrer de Mossèn Pursals", + "lat": "41.57134", + "lon": "2.01226" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Castellbisbal", + "lat": "41.47651", + "lon": "1.98330", + "id": 1470838200, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Castellar del Vallès", + "lat": "41.61381", + "lon": "2.08760", + "id": 1470838199, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Mollerussa", + "lat": "41.63309", + "lon": "0.89549", + "id": 1470838540, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Solsona", + "lat": "41.99458", + "lon": "1.51840", + "id": 1954570210, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Avinguda de Sant Bartomeu", + "lat": "41.99840", + "lon": "1.52549", + "id": 68567, + "intersectedStreets": [ + { + "name": "Carrer del Turb", + "lat": "41.99557", + "lon": "1.52916" + }, + { + "name": "Carrer del Capolatell", + "lat": "41.99599", + "lon": "1.52873" + }, + { + "name": "Carrer de Busa", + "lat": "41.99640", + "lon": "1.52832" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Molins de Rei", + "names": { + "es": "Molins de Rei" + }, + "lat": "41.41381", + "lon": "2.01596", + "id": 1470838538, + "type": "TOWN", + "listOfStreets": [ + { + "name": "G-06 Sant Bartomeu - Can Planes - Les escletxes", + "lat": "41.42627", + "lon": "2.03408", + "id": 54004, + "intersectedStreets": [ + { + "name": "G-14 Cami de la Riera Nova a G-06", + "lat": "41.42712", + "lon": "2.03393" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Vilanova i la Geltrú", + "names": { + "ca": "Vilanova i la Geltrú", + "es": "Vilanova y Geltrú" + }, + "lat": "41.22420", + "lon": "1.72563", + "id": 1470839561, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Griñón", + "lat": "40.21366", + "lon": "-3.85815", + "id": 306948272, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "el Tossal", + "lat": "41.91560", + "lon": "1.15097", + "id": 6000716046, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí de Sant Bartomeu", + "lat": "41.91443", + "lon": "1.15030", + "id": 110594 + } + ], + "matchStreet": 1 + }, + { + "name": "Mollet del Vallès", + "lat": "41.53935", + "lon": "2.21309", + "id": 1470838541, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer del Doctor Bartomeu Robert", + "lat": "41.54199", + "lon": "2.21671", + "id": 81016, + "intersectedStreets": [ + { + "name": "Carrer del Carme", + "lat": "41.54265", + "lon": "2.21720" + }, + { + "name": "Carrer de Roger de Llúria", + "lat": "41.54194", + "lon": "2.21666" + } + ] + }, + { + "name": "Passatge Bartomeu Robert", + "lat": "41.54125", + "lon": "2.21608", + "id": 81527, + "intersectedStreets": [ + { + "name": "Carrer del Sol", + "lat": "41.54125", + "lon": "2.21608" + }, + { + "name": "Plaça de l'Artesania", + "lat": "41.54037", + "lon": "2.21499" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Lleida", + "names": { + "ar": "لاردة", + "ru": "Ллейда", + "oc": "Lhèida", + "el": "Λιέιδα", + "lt": "Lerida", + "fr": "Lérida", + "ca": "Lleida", + "es": "Lérida", + "sr": "Љеида" + }, + "lat": "41.61476", + "lon": "0.62678", + "id": 124083658, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Mollerussa", + "lat": "41.63360", + "lon": "0.89126", + "id": 10598414, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "San Lorenzo de El Escorial", + "lat": "40.59267", + "lon": "-4.14716", + "id": 64835892, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Montornès del Vallès", + "lat": "41.54255", + "lon": "2.26706", + "id": 1470838556, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Bartomeu", + "lat": "41.54066", + "lon": "2.26763", + "id": 108860, + "intersectedStreets": [ + { + "name": "Carrer de Sant Sadurní", + "lat": "41.54059", + "lon": "2.26677" + }, + { + "name": "Baixada de l'Església", + "lat": "41.54066", + "lon": "2.26763" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Montgat", + "lat": "41.46670", + "lon": "2.27897", + "id": 1470838553, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Móra d'Ebre", + "names": { + "ca": "Móra d'Ebre" + }, + "lat": "41.08934", + "lon": "0.64129", + "id": 1470838559, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sabadell", + "names": { + "ru": "Сабадель", + "el": "Σαβαδέλ", + "lt": "Sabadelis", + "ca": "Sabadell" + }, + "lat": "41.54210", + "lon": "2.11390", + "id": 252566396, + "type": "CITY", + "listOfStreets": [ + { + "name": "Carrer de Joan Bartomeu", + "lat": "41.52620", + "lon": "2.10800", + "id": 57906, + "intersectedStreets": [ + { + "name": "Carrer de Josep Guardiet", + "lat": "41.52604", + "lon": "2.10835" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Velilla de San Antonio", + "names": { + "ru": "Велилья-де-Сан-Антонио", + "uk": "Велілья-де-Сан-Антоніо", + "es": "Velilla de San Antonio" + }, + "lat": "40.36717", + "lon": "-3.48744", + "id": 311127037, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cabrera de Mar", + "lat": "41.52770", + "lon": "2.39251", + "id": 523051419, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.52744", + "lon": "2.40262", + "id": 134131, + "intersectedStreets": [ + { + "name": "carrer de Sant Sebastià", + "lat": "41.52680", + "lon": "2.40292" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Cassà de la Selva", + "lat": "41.88747", + "lon": "2.87425", + "id": 5417486419, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "el Pont de Suert", + "names": { + "el": "Ποντ ντε Σουέρτ", + "ca": "el Pont de Suert" + }, + "lat": "42.40761", + "lon": "0.74025", + "id": 151063417, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Collado Villalba", + "names": { + "ru": "Кольядо-Вильяльба", + "uk": "Кольядо-Вільяльба" + }, + "lat": "40.64301", + "lon": "-3.99273", + "id": 256407477, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Manresa", + "names": { + "ru": "Манреса", + "ja": "マンレザ" + }, + "lat": "41.72889", + "lon": "1.82868", + "id": 1470838508, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (Les Escodines)", + "lat": "41.72261", + "lon": "1.82989", + "id": 83012, + "intersectedStreets": [ + { + "name": "Carrer de les Escodines (Les Escodines)", + "lat": "41.72296", + "lon": "1.82912" + }, + { + "name": "Carrer de l'Aiguader (Les Escodines)", + "lat": "41.72261", + "lon": "1.82989" + }, + { + "name": "Carrer Nou de Santa Clara (Les Escodines)", + "lat": "41.72237", + "lon": "1.83070" + }, + { + "name": "Carrer dels Caputxins (Les Escodines)", + "lat": "41.72237", + "lon": "1.83070" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Manlleu", + "lat": "41.99998", + "lon": "2.28412", + "id": 1470838507, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Villarejo de Salvanés", + "lat": "40.16836", + "lon": "-3.27388", + "id": 249871398, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Arroyomolinos", + "enName": "Arroyomolinos", + "names": { + "ru": "Арройомолинос", + "uk": "Арройомолінос", + "ja": "アロヨモリノス" + }, + "lat": "40.27292", + "lon": "-3.91580", + "id": 311114762, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Torrelodones", + "names": { + "ru": "Торрелодонес", + "uk": "Торрелодонес" + }, + "lat": "40.57628", + "lon": "-3.92860", + "id": 255328636, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Valls", + "names": { + "ru": "Вальс", + "uk": "Бальш" + }, + "lat": "41.28354", + "lon": "1.24736", + "id": 1470839529, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Vic", + "enName": "Vic", + "names": { + "ca": "Vic", + "es": "Vic", + "zh": "比克" + }, + "lat": "41.93020", + "lon": "2.25459", + "id": 1470839536, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu del Grau", + "lat": "41.93676", + "lon": "2.24741", + "id": 58467 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Arbúcies", + "names": { + "ar": "أربوثياس" + }, + "lat": "41.81606", + "lon": "2.51415", + "id": 1470837987, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sevilla la Nueva", + "lat": "40.34754", + "lon": "-4.02753", + "id": 309167783, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "El Escorial", + "lat": "40.58364", + "lon": "-4.12814", + "id": 64835924, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Coll de Nargó", + "lat": "42.17391", + "lon": "1.31613", + "id": 262635753, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "42.17490", + "lon": "1.31784", + "id": 90301, + "intersectedStreets": [ + { + "name": "Plaça del Cap del Roc", + "lat": "42.17497", + "lon": "1.31767" + }, + { + "name": "Carrer de la Rosa", + "lat": "42.17444", + "lon": "1.31716" + }, + { + "name": "La Costerota", + "lat": "42.17468", + "lon": "1.31761" + }, + { + "name": "Carrer Hospital", + "lat": "42.17479", + "lon": "1.31767" + }, + { + "name": "Camí Estret", + "lat": "42.17382", + "lon": "1.31628" + }, + { + "name": "Carrer de la Carretera Nova", + "lat": "42.17382", + "lon": "1.31628" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Vilafranca del Penedès", + "names": { + "ca": "Vilafranca del Penedès" + }, + "lat": "41.34638", + "lon": "1.69952", + "id": 1470839547, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Brunete", + "lat": "40.40505", + "lon": "-3.99799", + "id": 256477660, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Humanes de Madrid", + "enName": "Humanes de Madrid", + "names": { + "ru": "Уманес-де-Мадрид", + "ja": "ウマネス・デ・マドリード", + "zh": "乌马内斯德马德里德" + }, + "lat": "40.25088", + "lon": "-3.82710", + "id": 306946784, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Alpedrete", + "lat": "40.65990", + "lon": "-4.02512", + "id": 64835913, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Badia del Vallès", + "lat": "41.50782", + "lon": "2.11534", + "id": 2794611208, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Argentona", + "lat": "41.55543", + "lon": "2.40028", + "id": 1470838014, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Bisbal del Penedès", + "lat": "41.27784", + "lon": "1.49056", + "id": 331028206, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí de Mas Bartomeu", + "lat": "41.31413", + "lon": "1.51637", + "id": 25250, + "intersectedStreets": [ + { + "name": "Camí de la Costa (el Papagai)", + "lat": "41.29803", + "lon": "1.50905" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Arenys de Mar", + "lat": "41.57970", + "lon": "2.54916", + "id": 1470838013, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Vilanova del Camí", + "lat": "41.57143", + "lon": "1.63614", + "id": 1470839540, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Martorell", + "lat": "41.47692", + "lon": "1.92840", + "id": 1470838514, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.47494", + "lon": "1.93668", + "id": 34900, + "intersectedStreets": [ + { + "name": "Carretera de Terrassa", + "lat": "41.47436", + "lon": "1.93692" + }, + { + "name": "Passeig Quarter", + "lat": "41.47494", + "lon": "1.93668" + }, + { + "name": "Passeig del Quarter", + "lat": "41.47494", + "lon": "1.93668" + }, + { + "name": "Carrer d'Àngela Benaca", + "lat": "41.47516", + "lon": "1.93660" + }, + { + "name": "Carrer del Riu", + "lat": "41.47539", + "lon": "1.93651" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Vila-seca", + "lat": "41.10915", + "lon": "1.14649", + "id": 1470839538, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "l'Ametlla del Vallès", + "lat": "41.66933", + "lon": "2.26145", + "id": 393906088, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.69352", + "lon": "2.24520", + "id": 45384, + "intersectedStreets": [ + { + "name": "Carrer d'Albeniz", + "lat": "41.69068", + "lon": "2.24797" + }, + { + "name": "Carrer d'Amadeu Vives", + "lat": "41.69099", + "lon": "2.24756" + }, + { + "name": "Carrer de la Cardenera", + "lat": "41.69354", + "lon": "2.24520" + }, + { + "name": "Carrer d'Apel·les Mestres", + "lat": "41.69418", + "lon": "2.24419" + }, + { + "name": "Carrer de Tomás Breton", + "lat": "41.69666", + "lon": "2.23786" + }, + { + "name": "Carrer de Tarragó", + "lat": "41.69624", + "lon": "2.23598" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Vilassar de Mar", + "names": { + "ca": "Vilassar de Mar", + "es": "Vilasar de Mar" + }, + "lat": "41.50640", + "lon": "2.39139", + "id": 1470839541, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Santa Oliva", + "lat": "41.25329", + "lon": "1.55101", + "id": 388127102, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.23670", + "lon": "1.54313", + "id": 95166, + "intersectedStreets": [ + { + "name": "Avinguda de Nostra Senyora del Pilar", + "lat": "41.23622", + "lon": "1.54287" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Montellà", + "lat": "42.35448", + "lon": "1.70488", + "id": 1035806046, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Pista de San t Bartomeu - GR 150", + "lat": "42.34938", + "lon": "1.69994", + "id": 116709 + } + ], + "matchStreet": 1 + }, + { + "name": "Navarcles", + "lat": "41.75316", + "lon": "1.90336", + "id": 1470838604, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.75351", + "lon": "1.90506", + "id": 72318, + "intersectedStreets": [ + { + "name": "Passeig d'Àngel Vivó", + "lat": "41.75347", + "lon": "1.90503" + }, + { + "name": "Passeig de les Fonts", + "lat": "41.75347", + "lon": "1.90503" + }, + { + "name": "Carrer de la Sardana", + "lat": "41.75550", + "lon": "1.90696" + }, + { + "name": "Carrer de la Renaixença", + "lat": "41.75561", + "lon": "1.90701" + }, + { + "name": "Carrer de la Font de la Cura", + "lat": "41.75561", + "lon": "1.90701" + }, + { + "name": "Carrer del Bages", + "lat": "41.75383", + "lon": "1.90508" + }, + { + "name": "Carrer de Tarragona", + "names": { + "ca": "Carrer de Tarragona" + }, + "lat": "41.75439", + "lon": "1.90546" + }, + { + "name": "Carrer de Lleida", + "names": { + "ca": "carrer de Lleida" + }, + "lat": "41.75454", + "lon": "1.90563" + }, + { + "name": "Carrer de Girona", + "lat": "41.75476", + "lon": "1.90598" + }, + { + "name": "Passatge de Badalona", + "lat": "41.75492", + "lon": "1.90626" + }, + { + "name": "Carrer Badalona", + "lat": "41.75507", + "lon": "1.90649" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Mas de Bondia", + "lat": "41.60545", + "lon": "1.19076", + "id": 2457882661, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.60509", + "lon": "1.19298", + "id": 101922 + } + ], + "matchStreet": 1 + }, + { + "name": "Montcada i Reixac", + "lat": "41.48231", + "lon": "2.18700", + "id": 427061659, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Banyoles", + "names": { + "ca": "Banyoles" + }, + "lat": "42.11805", + "lon": "2.76536", + "id": 1470838085, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Coslada", + "lat": "40.42380", + "lon": "-3.55529", + "id": 264240976, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Olot", + "lat": "42.18222", + "lon": "2.48902", + "id": 1470838619, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Casserres", + "names": { + "es": "Casserres" + }, + "lat": "42.01382", + "lon": "1.84304", + "id": 303713456, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer Sant Bartomeu", + "lat": "42.01378", + "lon": "1.84195", + "id": 34434, + "intersectedStreets": [ + { + "name": "Carrer de la Creu", + "lat": "42.01393", + "lon": "1.84216" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Blanes", + "names": { + "ru": "Бланес" + }, + "lat": "41.67562", + "lon": "2.79324", + "id": 1470838110, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Sant Bartomeu", + "lat": "41.68081", + "lon": "2.78145", + "id": 31366, + "intersectedStreets": [ + { + "name": "Carrer del Bosc", + "lat": "41.68041", + "lon": "2.78224" + }, + { + "name": "Carrer Josep Maria de Segarra", + "lat": "41.68081", + "lon": "2.78145" + }, + { + "name": "Carrer Prudenci Bertrana", + "lat": "41.68081", + "lon": "2.78145" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Villanueva de la Torre", + "lat": "40.58309", + "lon": "-3.29936", + "id": 1456260091, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Esplugues de Llobregat", + "lat": "41.37768", + "lon": "2.08997", + "id": 1460478908, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Bermejo", + "lat": "41.38677", + "lon": "2.08946", + "id": 7658, + "intersectedStreets": [ + { + "name": "Avinguda de la Mestra Dolors Barceló", + "lat": "41.38640", + "lon": "2.08993" + }, + { + "name": "Carrer de Pau Vergós", + "lat": "41.38697", + "lon": "2.09150" + }, + { + "name": "Carrer de Ferrer Bassa (Ciutat Diagonal)", + "lat": "41.38697", + "lon": "2.09150" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Majadahonda", + "lat": "40.47306", + "lon": "-3.87241", + "id": 256456063, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Berga", + "lat": "42.10115", + "lon": "1.84548", + "id": 1470838103, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Camí de Sant Bartomeu (la Valldan)", + "lat": "42.09442", + "lon": "1.82216", + "id": 22894, + "intersectedStreets": [ + { + "name": "Camí de Serra Farriols", + "lat": "42.09612", + "lon": "1.82062" + }, + { + "name": "carrer Germans Farguell", + "lat": "42.09466", + "lon": "1.82195" + }, + { + "name": "carrer dels Germans Farguell", + "lat": "42.09442", + "lon": "1.82216" + }, + { + "name": "carrer Bernat Sala", + "lat": "42.09337", + "lon": "1.82309" + }, + { + "name": "Camí de Garreta", + "lat": "42.08999", + "lon": "1.82815" + }, + { + "name": "Carretera de Solsona", + "lat": "42.08993", + "lon": "1.83051" + }, + { + "name": "Carrer del Camí de Cardona", + "lat": "42.09295", + "lon": "1.83504" + }, + { + "name": "Carrer de Fontcaldes", + "lat": "42.09039", + "lon": "1.82579" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Montblanc", + "lat": "41.37623", + "lon": "1.16207", + "id": 331949813, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Olesa de Montserrat", + "lat": "41.54305", + "lon": "1.89319", + "id": 1470838615, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Pozuelo de Alarcón", + "lat": "40.43465", + "lon": "-3.81483", + "id": 256455561, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Artés", + "lat": "41.79867", + "lon": "1.95489", + "id": 1470838058, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Valdemoro", + "names": { + "ru": "Вальдеморо" + }, + "lat": "40.18880", + "lon": "-3.67162", + "id": 308218525, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Boadilla del Monte", + "lat": "40.40535", + "lon": "-3.87647", + "id": 256551822, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Bartomeu del Grau", + "lat": "41.98077", + "lon": "2.17504", + "id": 550042626, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí de Sant Genís", + "lat": "41.97583", + "lon": "2.14111", + "id": 121621 + }, + { + "name": "Carrer Llevant", + "lat": "41.98452", + "lon": "2.17699", + "id": 91662 + }, + { + "name": "Carrer Nou", + "lat": "41.98372", + "lon": "2.17089", + "id": 91661 + }, + { + "name": "Carrer Tres Creus", + "lat": "41.98052", + "lon": "2.17731", + "id": 96366 + }, + { + "name": "Carrer de Vic", + "lat": "41.98061", + "lon": "2.17654", + "id": 125251 + }, + { + "name": "Carrer de la Tramuntana", + "lat": "41.98219", + "lon": "2.19076", + "id": 121637 + }, + { + "name": "Carrer del Garbí", + "lat": "41.98184", + "lon": "2.19044", + "id": 91666 + }, + { + "name": "Carrer del Gregal", + "lat": "41.98195", + "lon": "2.19055", + "id": 91667 + }, + { + "name": "Carrer del Mig", + "lat": "41.98155", + "lon": "2.17630", + "id": 91668 + }, + { + "name": "Carrer del Xaloc", + "lat": "41.98277", + "lon": "2.19126", + "id": 91665 + }, + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.97446", + "lon": "2.17682", + "id": 79220 + }, + { + "name": "Carretera de Sant Bartomeu del Grau", + "names": { + "alt_name": "Camí de les Farreres" + }, + "lat": "41.97414", + "lon": "2.14622", + "id": 55369 + }, + { + "name": "Carretera del Cementiri", + "lat": "41.97994", + "lon": "2.18340", + "id": 91670 + }, + { + "name": "Eix Transversal", + "names": { + "es": "eje transversal" + }, + "lat": "41.93309", + "lon": "2.16735", + "id": 90386 + }, + { + "name": "GR 3", + "lat": "41.98010", + "lon": "2.16776", + "id": 55366 + }, + { + "name": "carrer Ponent", + "names": { + "ca": "carrer de Ponent" + }, + "lat": "41.98063", + "lon": "2.17435", + "id": 105163 + }, + { + "name": "carrer Vell", + "lat": "41.98249", + "lon": "2.17388", + "id": 19061 + }, + { + "name": "carrer de Dalt", + "lat": "41.98178", + "lon": "2.17564", + "id": 105164 + }, + { + "name": "Camí d'Alboquers (Pere-riera)", + "lat": "41.93153", + "lon": "2.13051", + "id": 112325 + }, + { + "name": "Camí de St. Bartomeu al Sorreig (Xalet Mas Reig)", + "lat": "41.98958", + "lon": "2.16821", + "id": 111514 + }, + { + "name": "Carrer de la Codina (Xalet Mas Reig)", + "lat": "41.98738", + "lon": "2.16695", + "id": 91664 + }, + { + "name": "Túnel de la Fontfreda (Pere-riera)", + "lat": "41.91702", + "lon": "2.13495", + "id": 90385 + }, + { + "name": "", + "lat": "41.98028", + "lon": "2.17767", + "id": 96365 + }, + { + "name": "Camí de Ca la Burra", + "lat": "41.92538", + "lon": "2.13864", + "id": 114618 + }, + { + "name": "Camí de Rogers", + "lat": "41.97493", + "lon": "2.17115", + "id": 49207 + }, + { + "name": "Carrer Pla de l'Oratori", + "lat": "41.98100", + "lon": "2.17669", + "id": 105166 + }, + { + "name": "Carrer de la Migjorn", + "lat": "41.98157", + "lon": "2.19141", + "id": 121636 + }, + { + "name": "Eix Transversal C-25 Viaducte de Pere-riera", + "lat": "41.92259", + "lon": "2.14062", + "id": 90387 + }, + { + "name": "Passeig del Grau", + "lat": "41.97996", + "lon": "2.17731", + "id": 96367 + }, + { + "name": "Plaça del Doctor Griera", + "lat": "41.98120", + "lon": "2.17478", + "id": 105165 + } + ], + "matchCity": 1, + "matchStreet": 1 + }, + { + "name": "Artesa de Segre", + "lat": "41.89629", + "lon": "1.04711", + "id": 1470838054, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Alcorcón", + "enName": "Alcorcón", + "names": { + "ru": "Алькоркон", + "uk": "Алькоркон", + "ja": "アルコルコン", + "lt": "Alkorkonas", + "hu": "Alcorcón", + "zh": "阿尔科尔孔", + "sr": "Алкоркон" + }, + "lat": "40.34930", + "lon": "-3.82843", + "id": 306524300, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Balaguer", + "lat": "41.78972", + "lon": "0.80549", + "id": 1470838076, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Fuenlabrada", + "enName": "Fuenlabrada", + "names": { + "ru": "Фуэнлабрада", + "uk": "Фуенлабрада", + "ja": "フエンラブラダ", + "hu": "Fuenlabrada", + "zh": "丰拉夫拉达", + "sr": "Фуенлабрада" + }, + "lat": "40.28248", + "lon": "-3.79234", + "id": 305072315, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Pinto", + "enName": "Pinto", + "names": { + "ru": "Пинто", + "ja": "ピント" + }, + "lat": "40.24099", + "lon": "-3.70051", + "id": 306620052, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Boi de Lluçanès", + "lat": "42.05784", + "lon": "2.15111", + "id": 539465394, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí ramader de Sant Bartomeu", + "names": { + "alt_name": "Camí de Vernera" + }, + "lat": "42.02972", + "lon": "2.13703", + "id": 91597 + } + ], + "matchStreet": 1 + }, + { + "name": "Canovelles", + "names": { + "ca": "Canovelles" + }, + "lat": "41.61739", + "lon": "2.28288", + "id": 1460478422, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Bartomeu Brufalt", + "lat": "41.61608", + "lon": "2.29569", + "id": 56296, + "intersectedStreets": [ + { + "name": "Carrer de Provença", + "lat": "41.61657", + "lon": "2.29584" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Rubí", + "lat": "41.49362", + "lon": "2.03195", + "id": 3248338760, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Santa Susanna", + "names": { + "ca": "Santa Susanna" + }, + "lat": "41.63573", + "lon": "2.70659", + "id": 571272919, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "carrer del Doctor Bartomeu", + "lat": "41.63463", + "lon": "2.70579", + "id": 73937, + "intersectedStreets": [ + { + "name": "Rambla Onze de Setembre", + "lat": "41.63419", + "lon": "2.70594" + }, + { + "name": "Carrer Josep Pla", + "lat": "41.63463", + "lon": "2.70579" + }, + { + "name": "Carrer Jaume Ir", + "lat": "41.63511", + "lon": "2.70560" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Igualada", + "names": { + "ru": "Игуалада" + }, + "lat": "41.57902", + "lon": "1.61735", + "id": 1470838412, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.57823", + "lon": "1.61905", + "id": 84219, + "intersectedStreets": [ + { + "name": "Carrer de Sant Jaume", + "lat": "41.57828", + "lon": "1.61872" + }, + { + "name": "Carrer de Custiol", + "lat": "41.57828", + "lon": "1.61872" + }, + { + "name": "Carreró de Sant Jaume", + "lat": "41.57828", + "lon": "1.61872" + }, + { + "name": "Plaça del Rei", + "lat": "41.57821", + "lon": "1.61956" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Valdemorillo", + "lat": "40.50168", + "lon": "-4.06889", + "id": 26541174, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Porqueres", + "names": { + "es": "Porqueras" + }, + "lat": "42.12139", + "lon": "2.74786", + "id": 3302537661, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Camí de Sant Bartomeu de Matamala", + "lat": "42.12680", + "lon": "2.72392", + "id": 108826 + } + ], + "matchStreet": 1 + }, + { + "name": "Massalcoreig", + "lat": "41.45918", + "lon": "0.35965", + "id": 865313399, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Travessia de Sant Bartomeu", + "lat": "41.45995", + "lon": "0.36036", + "id": 123119 + }, + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.46095", + "lon": "0.36377", + "id": 123151 + } + ], + "matchStreet": 1 + }, + { + "name": "Guadarrama", + "lat": "40.67345", + "lon": "-4.08939", + "id": 283475406, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Daganzo de Arriba", + "lat": "40.54520", + "lon": "-3.45785", + "id": 255463444, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Meco", + "lat": "40.55375", + "lon": "-3.32816", + "id": 310569328, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Parla", + "names": { + "ar": "بارلا", + "ru": "Парла", + "uk": "Парла", + "el": "Πάρλα", + "ja": "パルラ", + "fa": "پارلا", + "hu": "Parla", + "ur": "پرلا", + "zh": "帕尔拉", + "sr": "Парла" + }, + "lat": "40.23740", + "lon": "-3.77189", + "id": 306620202, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Pere de Ribes", + "names": { + "ca": "Sant Pere de Ribes" + }, + "lat": "41.26192", + "lon": "1.77214", + "id": 1470838938, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Bisbal d'Empordà", + "lat": "41.95987", + "lon": "3.03962", + "id": 1470838432, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Pere Bartomeu", + "lat": "41.95708", + "lon": "3.03742", + "id": 67806 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Sitges", + "lat": "41.23667", + "lon": "1.82281", + "id": 1470839456, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Passeig de Bartomeu Soler", + "lat": "41.24569", + "lon": "1.80002", + "id": 90642, + "intersectedStreets": [ + { + "name": "Passeig de Sant Dídac", + "lat": "41.24695", + "lon": "1.80152" + }, + { + "name": "Passeig del Fondac", + "lat": "41.24459", + "lon": "1.79714" + } + ] + }, + { + "name": "Carrer Bartomeu Robert", + "lat": "41.22941", + "lon": "1.78884", + "id": 28471, + "intersectedStreets": [ + { + "name": "Avinguda de Navarra", + "lat": "41.22930", + "lon": "1.78777" + }, + { + "name": "Carrer Ferran Casablancas", + "lat": "41.22930", + "lon": "1.78777" + }, + { + "name": "Carrer de Josep Planas Robert (Alt Vinyet)", + "lat": "41.22941", + "lon": "1.78884" + }, + { + "name": "Carrer de Balmes", + "names": { + "ca": "Carrer de Balmes" + }, + "lat": "41.22952", + "lon": "1.78996" + }, + { + "name": "Carrer del Pintor Roig i Soler (Alt Vinyet)", + "lat": "41.22952", + "lon": "1.78996" + } + ] + }, + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.23758", + "lon": "1.80899", + "id": 28352, + "intersectedStreets": [ + { + "name": "Carrer Jesús", + "lat": "41.23682", + "lon": "1.80978" + }, + { + "name": "Carrer de Sant Gaudenci", + "lat": "41.23758", + "lon": "1.80899" + }, + { + "name": "Avinguda d'Artur Carbonell", + "lat": "41.23854", + "lon": "1.80796" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Sils", + "lat": "41.80894", + "lon": "2.74147", + "id": 1470839455, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Cerdanyola del Vallès", + "lat": "41.49103", + "lon": "2.13750", + "id": 1470839444, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Avinguda de Bartomeu", + "lat": "41.50070", + "lon": "2.08863", + "id": 86367, + "intersectedStreets": [ + { + "name": "Carretera de Bellaterra", + "lat": "41.50078", + "lon": "2.08678" + }, + { + "name": "Carrer del Mestre Nicolau (Bellaterra)", + "lat": "41.50085", + "lon": "2.08676" + }, + { + "name": "Camí de la Font de la Bonaigua", + "lat": "41.50078", + "lon": "2.08794" + }, + { + "name": "Carrer de Ramon Llull (Bellaterra)", + "lat": "41.50085", + "lon": "2.08903" + }, + { + "name": "Avinguda de Joan Fàbregas", + "lat": "41.50117", + "lon": "2.09036" + }, + { + "name": "Avinguda de Josep Maria Marcet", + "lat": "41.50117", + "lon": "2.09036" + }, + { + "name": "Carrer de Terranova", + "lat": "41.49759", + "lon": "2.08652" + }, + { + "name": "Carrer de la Bonaigua (Bellaterra)", + "lat": "41.49914", + "lon": "2.08811" + }, + { + "name": "Carrer del Pintor Fortuny (Bellaterra)", + "lat": "41.49914", + "lon": "2.08811" + }, + { + "name": "Carrer d'Octavi Bruix", + "lat": "41.49966", + "lon": "2.08708" + }, + { + "name": "Carrer de Casas i Amigó (Bellaterra)", + "lat": "41.50006", + "lon": "2.08693" + } + ] + }, + { + "name": "Avinguda Bartomeu", + "lat": "41.49930", + "lon": "2.08798", + "id": 3263 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Moralzarzal", + "lat": "40.67914", + "lon": "-3.97210", + "id": 256406580, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Seu d'Urgell", + "names": { + "ru": "Сео-де-Уржель", + "uk": "Ла-Сеу-д'Уржель", + "ca": "la Seu d'Urgell", + "es": "Seo de Urgel" + }, + "lat": "42.35757", + "lon": "1.45601", + "id": 1470839447, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Parets del Vallès", + "lat": "41.57299", + "lon": "2.23293", + "id": 395368559, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Torrejón de Ardoz", + "names": { + "ru": "Торрехон-де-Ардос", + "uk": "Торрехон-де-Ардос", + "lt": "Torechon de Ardosas", + "hu": "Torrejón de Ardoz", + "es": "Torrejón de Ardoz", + "sr": "Торехон де Ардос" + }, + "lat": "40.45878", + "lon": "-3.47933", + "id": 230421116, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Fontcoberta", + "lat": "42.14254", + "lon": "2.78978", + "id": 1460477966, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Camí de Sant Bartomeu", + "lat": "42.12563", + "lon": "2.81407", + "id": 130778 + } + ], + "matchStreet": 1 + }, + { + "name": "Deltebre", + "names": { + "fr": "Deltèbre", + "ca": "Deltebre", + "es": "Deltebre" + }, + "lat": "40.72039", + "lon": "0.72434", + "id": 2055370119, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Rivas Vaciamadrid", + "names": { + "ru": "Ривас-Васиамадрид", + "uk": "Рівас-Васіамадрид" + }, + "lat": "40.35361", + "lon": "-3.53109", + "id": 311129997, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Joan les Fonts", + "lat": "42.21330", + "lon": "2.51343", + "id": 260446338, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer Mossèn Bartomeu", + "lat": "42.21457", + "lon": "2.51372", + "id": 67149 + } + ], + "matchStreet": 1 + }, + { + "name": "Esparreguera", + "lat": "41.53933", + "lon": "1.86945", + "id": 1460478465, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Just Desvern", + "lat": "41.38158", + "lon": "2.07507", + "id": 1470838887, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Getafe", + "enName": "Getafe", + "names": { + "ru": "Хетафе", + "ja": "ヘタフェ", + "hu": "Getafe", + "zh": "赫塔费" + }, + "lat": "40.30818", + "lon": "-3.73027", + "id": 2697472985, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Barberà del Vallès", + "lat": "41.51725", + "lon": "2.12659", + "id": 1460477981, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Alió", + "lat": "41.29359", + "lon": "1.30627", + "id": 1460477969, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Plaça de Sant Bartomeu", + "lat": "41.29462", + "lon": "1.30568", + "id": 88748, + "intersectedStreets": [ + { + "name": "Plaça Nova", + "lat": "41.29459", + "lon": "1.30613" + }, + { + "name": "Carrer Major", + "lat": "41.29462", + "lon": "1.30568" + }, + { + "name": "Carrer del Pou", + "lat": "41.29478", + "lon": "1.30557" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Montornès de Segarra", + "lat": "41.60095", + "lon": "1.23120", + "id": 1460477972, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (Mas de Bondia)", + "lat": "41.60508", + "lon": "1.19296", + "id": 101921 + } + ], + "matchStreet": 1 + }, + { + "name": "Santa Coloma de Gramenet", + "names": { + "ru": "Санта-Колома-де-Граменет" + }, + "lat": "41.45156", + "lon": "2.20834", + "id": 346353020, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Feliu de Llobregat", + "lat": "41.38129", + "lon": "2.04464", + "id": 1389000150, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Lloret de Mar", + "names": { + "ru": "Льорет де Мар" + }, + "lat": "41.69735", + "lon": "2.83924", + "id": 1470838480, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.69990", + "lon": "2.84896", + "id": 64875, + "intersectedStreets": [ + { + "name": "Carrer de la Vila", + "lat": "41.69990", + "lon": "2.84896" + }, + { + "name": "Passeig de Jacint Verdaguer", + "lat": "41.69935", + "lon": "2.84932" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Sant Bartomeu de la Quadra", + "lat": "41.42594", + "lon": "2.03766", + "id": 2151992546, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de l'Església", + "lat": "41.42596", + "lon": "2.03788", + "id": 118868 + }, + { + "name": "Carrer de la Font Fresca", + "lat": "41.42667", + "lon": "2.04047", + "id": 107069 + }, + { + "name": "Carrer del Bosc", + "lat": "41.42841", + "lon": "2.03880", + "id": 107063 + }, + { + "name": "Carrer del Canigó", + "lat": "41.42797", + "lon": "2.03891", + "id": 107065 + }, + { + "name": "Carretera Veïnal de Molins de Rei a Vallvidrera", + "lat": "41.42617", + "lon": "2.03665", + "id": 129706 + }, + { + "name": "Antic Camí de l'Església", + "lat": "41.42580", + "lon": "2.03745", + "id": 118866 + }, + { + "name": "Carrer de la Pepeta de Cal Bardissa", + "lat": "41.42653", + "lon": "2.03850", + "id": 86088 + }, + { + "name": "Carrer de les Penyes d'en Castellví", + "lat": "41.43042", + "lon": "2.03856", + "id": 107067 + }, + { + "name": "Carrer del Turó del Quirze", + "lat": "41.42707", + "lon": "2.04017", + "id": 86086 + }, + { + "name": "Carretera de la Rierada", + "lat": "41.42752", + "lon": "2.04015", + "id": 92335 + } + ], + "matchCity": 1 + }, + { + "name": "Tarragona", + "names": { + "be": "Тарагона", + "ru": "Таррагона", + "ko": "타라고나", + "el": "Ταρραγόνα", + "lt": "Taragona", + "fr": "Tarragone", + "es": "Tarragona", + "zh": "塔拉戈纳", + "ar": "طراغونة", + "oc": "Tarragona", + "la": "Tarraco", + "uk": "Таррагона", + "ja": "タラゴナ", + "fa": "تاراگونا", + "he": "טרגונה", + "sr": "Тарагона" + }, + "lat": "41.11724", + "lon": "1.25461", + "id": 152377920, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Torelló", + "lat": "42.04783", + "lon": "2.26434", + "id": 1470839496, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Sant Bartomeu", + "lat": "42.04652", + "lon": "2.26550", + "id": 107577, + "intersectedStreets": [ + { + "name": "Carrer dels Estudis", + "lat": "42.04728", + "lon": "2.26454" + }, + { + "name": "carrer Sant Miquel", + "lat": "42.04728", + "lon": "2.26454" + }, + { + "name": "Carrer de Capsavila", + "lat": "42.04728", + "lon": "2.26454" + }, + { + "name": "Carreró de la Torrentera", + "lat": "42.04641", + "lon": "2.26567" + }, + { + "name": "Carrer Puigdassalit", + "lat": "42.04612", + "lon": "2.26610" + }, + { + "name": "Carrer Diputació", + "lat": "42.04509", + "lon": "2.26754" + }, + { + "name": "carrer Manlleu", + "lat": "42.04509", + "lon": "2.26754" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Aranjuez", + "lat": "40.03221", + "lon": "-3.60396", + "id": 252751393, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Masies de Sansuies", + "lat": "41.30747", + "lon": "1.48370", + "id": 4864470659, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Camí de Mas Bartomeu", + "lat": "41.32017", + "lon": "1.49697", + "id": 122234 + }, + { + "name": "Camí del Coll d'Arca a Mas Bartomeu", + "lat": "41.32517", + "lon": "1.48665", + "id": 108931, + "intersectedStreets": [ + { + "name": "Camí d'Aiguaviva a Mas Bartomeu", + "lat": "41.32228", + "lon": "1.49401" + } + ] + }, + { + "name": "Camí d'Aiguaviva a Mas Bartomeu", + "lat": "41.32467", + "lon": "1.49702", + "id": 25801, + "intersectedStreets": [ + { + "name": "Camí del Coll d'Arca a Mas Bartomeu", + "lat": "41.32228", + "lon": "1.49401" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Tàrrega", + "lat": "41.64728", + "lon": "1.14091", + "id": 1470839515, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Platja d'Aro", + "names": { + "ru": "Кастель-Пладжа-де-Аро", + "uk": "Кастель-Платжа-д'Ару", + "lt": "Kastiljo de Aras", + "es": "Playa de Aro" + }, + "lat": "41.81847", + "lon": "3.06880", + "id": 290730984, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Torroella de Montgrí", + "lat": "42.04098", + "lon": "3.12620", + "id": 1470839507, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Tortosa", + "lat": "40.81102", + "lon": "0.52093", + "id": 1470839509, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Passeig de Mossèn Valls Bartomeu", + "lat": "40.82737", + "lon": "0.51041", + "id": 121894 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "l'Esquirol", + "names": { + "ru": "Санта-Мария-де-Корко" + }, + "lat": "42.03402", + "lon": "2.36971", + "id": 1360757797, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "42.03584", + "lon": "2.36891", + "id": 53228, + "intersectedStreets": [ + { + "name": "Carrer Major", + "lat": "42.03619", + "lon": "2.36854" + }, + { + "name": "Carrer Nou", + "lat": "42.03514", + "lon": "2.36895" + }, + { + "name": "Passeig de les Gorgues", + "lat": "42.03514", + "lon": "2.36895" + } + ] + }, + { + "name": "Camí de Sant Bartomeu", + "lat": "42.01598", + "lon": "2.37285", + "id": 108831 + }, + { + "name": "Carrer de Sant Bartomeu (Les Planes)", + "lat": "42.03441", + "lon": "2.40064", + "id": 83257, + "intersectedStreets": [ + { + "name": "Camí de l'Esquirol", + "lat": "42.03742", + "lon": "2.40122" + }, + { + "name": "Carrer Major (Cantonigròs)", + "names": { + "ca": "carrer de Sant Roc (Cantonigròs)" + }, + "lat": "42.03742", + "lon": "2.40122" + }, + { + "name": "Carrer de Pere Gabarró Majoral", + "lat": "42.03610", + "lon": "2.40107" + }, + { + "name": "Carrer de Pompeu Fabra (Les Planes)", + "names": { + "ca": "carrer de Pompeu Fabra (Les Planes)" + }, + "lat": "42.03447", + "lon": "2.40064" + }, + { + "name": "Carrer de Osona", + "lat": "42.03275", + "lon": "2.40028" + }, + { + "name": "Carrer de Sant Martí", + "lat": "42.03140", + "lon": "2.40008" + }, + { + "name": "Carrer de la Pineda", + "lat": "42.03065", + "lon": "2.39989" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Vallromanes", + "lat": "41.53232", + "lon": "2.29893", + "id": 1460478032, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.54108", + "lon": "2.28709", + "id": 71373, + "intersectedStreets": [ + { + "name": "Carrer de Sant Joan", + "lat": "41.54048", + "lon": "2.28713" + }, + { + "name": "Carrer de Sant Antoni", + "lat": "41.54169", + "lon": "2.28747" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Palau-solità i Plegamans", + "lat": "41.58739", + "lon": "2.18068", + "id": 1460479055, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Soler", + "lat": "41.59683", + "lon": "2.17630", + "id": 60908, + "intersectedStreets": [ + { + "name": "Carrer de la Pineda", + "lat": "41.59665", + "lon": "2.17392" + }, + { + "name": "Carrer de la Bonança", + "lat": "41.59670", + "lon": "2.17450" + }, + { + "name": "Carrer de les Piscines", + "lat": "41.59675", + "lon": "2.17514" + }, + { + "name": "Carrer de Manresa", + "lat": "41.59678", + "lon": "2.17564" + }, + { + "name": "Carrer de Can Ceferí", + "lat": "41.59683", + "lon": "2.17630" + }, + { + "name": "Carrer del Sol", + "lat": "41.59688", + "lon": "2.17677" + }, + { + "name": "Carrer de Bonavista", + "lat": "41.59677", + "lon": "2.17793" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Madrid", + "enName": "Madrid", + "names": { + "be-tarask": "Мадрыд", + "de": "Madrid", + "hi": "मद्रिद", + "rue": "Мадрід", + "koi": "Мадрид", + "lt": "Madridas", + "lv": "Madride", + "hu": "Madrid", + "xmf": "მადრიდი", + "yi": "מאדריד", + "hy": "Մադրիդ", + "uk": "Мадрид", + "ur": "میدرد", + "mk": "Мадрид", + "haw": "Makelika", + "ml": "മാഡ്രിഡ്", + "ext": "Mairil", + "lez": "Мадрид", + "ab": "Мaдрид", + "mn": "Мадрид", + "tet": "Madríd", + "mr": "माद्रिद", + "pnb": "میڈرڈ", + "el": "Μαδρίτη", + "eo": "Madrido", + "is": "Madrid", + "am": "ማድሪድ", + "an": "Madrit", + "es": "Madrid", + "zh": "馬德里", + "eu": "Madril", + "ar": "مدريد", + "bat-smg": "Madrids", + "mhr": "Мадрид", + "ja": "マドリード", + "fa": "مادرید", + "ba": "Мадрид", + "udm": "Мадрид", + "no": "Madrid", + "be": "Мадрыд", + "ru": "Мадрид", + "bg": "Мадрид", + "yue": "馬德里", + "myv": "Мадрид ош", + "bn": "মাদ্রিদ", + "fr": "Madrid", + "bo": "མ་ད་རིད།", + "sa": "मद्रिद्", + "arc": "ܡܕܪܝܕ", + "oc": "Madrid", + "ka": "მადრიდი", + "sk": "Madrid", + "sl": "Madrid", + "ga": "Maidrid", + "sah": "Мадрид", + "ca": "Madrid", + "sq": "Madridi", + "sr": "Мадрид", + "kk": "Мадрид", + "mzn": "مادرید", + "kn": "ಮಾದ್ರಿದ್", + "sv": "Madrid", + "ko": "마드리드", + "mrj": "Мадрид", + "os": "Мадрид", + "szl": "Madryt", + "nds-nl": "Medrid", + "arz": "مدريد", + "ku": "Madrîd", + "kv": "Мадрид", + "co": "Madridi", + "kbd": "Мадрид", + "ta": "மத்ரித்", + "ky": "Мадрид", + "cv": "Мадрид", + "tg": "Мадрид", + "th": "มาดริด", + "la": "Matritum", + "ckb": "مادرید", + "zh_pinyin": "Mǎdélǐ", + "pl": "Madryt", + "he": "מדריד" + }, + "lat": "40.41670", + "lon": "-3.70358", + "id": 21068295, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Móstoles", + "enName": "Móstoles", + "names": { + "ar": "موستولس", + "ru": "Мостолес", + "el": "Μόστολες", + "ja": "モストレス", + "fa": "موستولس", + "hu": "Móstoles", + "ur": "موستولس", + "zh": "莫斯托莱斯", + "sr": "Мостолес" + }, + "lat": "40.32385", + "lon": "-3.86492", + "id": 306524430, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Garriga", + "lat": "41.68491", + "lon": "2.28658", + "id": 1470838435, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Reus", + "names": { + "ru": "Реус", + "uk": "Реус", + "el": "Ρέους", + "lt": "Reusas" + }, + "lat": "41.15556", + "lon": "1.10761", + "id": 152377926, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Torredembarra", + "lat": "41.14616", + "lon": "1.39595", + "id": 1460478559, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Badalona", + "names": { + "kk": "Бадалона", + "be": "Бадалона", + "ru": "Бадалона", + "ko": "바달로나", + "bg": "Бадалона", + "el": "Μπαδαλόνα", + "sa": "बाडालोना", + "zh": "巴达洛纳", + "ar": "بادالونا", + "hy": "Բադալոնա", + "th": "บาดาโลนา", + "ka": "ბადალონა", + "uk": "Бадалона", + "ja": "バダロナ", + "fa": "بادالونا", + "sr": "Бадалона" + }, + "lat": "41.44935", + "lon": "2.24825", + "id": 52228684, + "type": "CITY", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (Sant Antoni de Llefià)", + "names": { + "wikipedia": "ca:Bartomeu apòstol" + }, + "lat": "41.44260", + "lon": "2.21649", + "id": 11531, + "intersectedStreets": [ + { + "name": "avinguda d'Amèrica (Sant Joan de Llefià)", + "names": { + "wikipedia": "ca:Amèrica (Sant Joan de Llefià)" + }, + "lat": "41.44192", + "lon": "2.21722" + }, + { + "name": "carrer de Sant Frederic", + "names": { + "wikipedia": "ca:Frederic d'Utrecht" + }, + "lat": "41.44194", + "lon": "2.21711" + }, + { + "name": "carrer de Bellavista (Sant Antoni de Llefià)", + "lat": "41.44239", + "lon": "2.21653" + }, + { + "name": "carrer de la Circumval·lació", + "lat": "41.44284", + "lon": "2.21591" + } + ] + }, + { + "name": "carrer del Doctor Robert (Bufalà)", + "names": { + "wikipedia": "ca:Bartomeu Robert i Yarzábal (Bufalà)" + }, + "lat": "41.46008", + "lon": "2.24254", + "id": 15319, + "intersectedStreets": [ + { + "name": "carrer de Sant Jordi", + "names": { + "wikipedia": "ca:Sant Jordi" + }, + "lat": "41.45603", + "lon": "2.24353" + }, + { + "name": "carrer de Jacint Verdaguer (Dalt de la Vila)", + "names": { + "wikipedia": "ca:Jacint Verdaguer i Santaló (Dalt de la Vila)" + }, + "lat": "41.45603", + "lon": "2.24353" + }, + { + "name": "carrer de Baldomer Galofre", + "names": { + "wikipedia": "ca:Baldomer Galofre i Giménez" + }, + "lat": "41.45603", + "lon": "2.24353" + }, + { + "name": "carrer de Sant Felip i d'en Rosés", + "names": { + "wikipedia": "ca:Felip l'Evangelista" + }, + "lat": "41.45603", + "lon": "2.24353" + }, + { + "name": "carrer del Doctor Daudí", + "lat": "41.45698", + "lon": "2.24338" + }, + { + "name": "avinguda de Bufalà", + "names": { + "wikipedia": "ca:Bufalà" + }, + "lat": "41.45873", + "lon": "2.24310" + }, + { + "name": "carrer del Bruc (Bufalà)", + "names": { + "wikipedia": "ca:Batalla del Bruc (Bufalà)" + }, + "lat": "41.45918", + "lon": "2.24299" + }, + { + "name": "carrer de Roncesvalls", + "names": { + "wikipedia": "ca:Batalla de Roncesvalls" + }, + "lat": "41.45952", + "lon": "2.24291" + }, + { + "name": "Carrer de Girona (Bufalà)", + "names": { + "wikipedia": "ca:Setge de Girona de 1809 (Bufalà)" + }, + "lat": "41.45969", + "lon": "2.24280" + }, + { + "name": "carrer de Rubió i Ors", + "names": { + "wikipedia": "ca:Joaquim Rubió i Ors" + }, + "lat": "41.46021", + "lon": "2.24256" + }, + { + "name": "carrer de Bailén", + "names": { + "wikipedia": "ca:Batalla de Bailèn" + }, + "lat": "41.46043", + "lon": "2.24246" + }, + { + "name": "carrer d'Ibèria", + "names": { + "wikipedia": "ca:Ibèria" + }, + "lat": "41.46053", + "lon": "2.24241" + }, + { + "name": "carrer de Castillejos", + "names": { + "wikipedia": "ca:Batalla de Castillejos" + }, + "lat": "41.46096", + "lon": "2.24209" + }, + { + "name": "carrer de la Sardana (Bufalà)", + "names": { + "wikipedia": "ca:Sardana (Bufalà)" + }, + "lat": "41.46153", + "lon": "2.24170" + }, + { + "name": "carrer de l'Alcalde de Móstoles", + "names": { + "wikipedia": "ca:Ban dels alcaldes de Móstoles" + }, + "lat": "41.46207", + "lon": "2.24132" + }, + { + "name": "avinguda de la Cerdanya", + "names": { + "wikipedia": "ca:Cerdanya" + }, + "lat": "41.46373", + "lon": "2.24007" + }, + { + "name": "carreró de Can Pontons", + "lat": "41.46384", + "lon": "2.23969" + }, + { + "name": "carrer de la Independència", + "names": { + "wikipedia": "ca:Guerra del Francès" + }, + "lat": "41.46387", + "lon": "2.23954" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "la Roca del Vallès", + "lat": "41.58834", + "lon": "2.33146", + "id": 1470838451, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Garraf", + "lat": "41.25274", + "lon": "1.90247", + "id": 5025041121, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Passeig de Bartomeu Soler", + "lat": "41.24571", + "lon": "1.80002", + "id": 90643, + "intersectedStreets": [ + { + "name": "Passeig de Sant Dídac", + "lat": "41.24697", + "lon": "1.80152" + }, + { + "name": "Passeig del Fondac", + "lat": "41.24461", + "lon": "1.79714" + } + ] + }, + { + "name": "Carrer Bartomeu Robert", + "lat": "41.22943", + "lon": "1.78884", + "id": 28472, + "intersectedStreets": [ + { + "name": "Avinguda de Navarra (Sitges)", + "lat": "41.22931", + "lon": "1.78777" + }, + { + "name": "Carrer Ferran Casablancas", + "lat": "41.22931", + "lon": "1.78777" + }, + { + "name": "Carrer de Josep Planas Robert (Sitges)", + "lat": "41.22943", + "lon": "1.78884" + }, + { + "name": "Carrer de Balmes (Sitges)", + "names": { + "ca": "Carrer de Balmes (Sitges)" + }, + "lat": "41.22954", + "lon": "1.78996" + }, + { + "name": "Carrer del Pintor Roig i Soler (Sitges)", + "lat": "41.22954", + "lon": "1.78996" + } + ] + }, + { + "name": "Carrer de Sant Bartomeu (Sitges)", + "lat": "41.23759", + "lon": "1.80899", + "id": 28353, + "intersectedStreets": [ + { + "name": "Carrer Jesús (Sitges)", + "lat": "41.23683", + "lon": "1.80978" + }, + { + "name": "Carrer de Sant Gaudenci (Sitges)", + "lat": "41.23759", + "lon": "1.80899" + }, + { + "name": "Avinguda d'Artur Carbonell", + "lat": "41.23856", + "lon": "1.80796" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Calafell", + "lat": "41.20146", + "lon": "1.56803", + "id": 440667418, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Jaume de Llierca", + "lat": "42.21198", + "lon": "2.60743", + "id": 864892113, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Terrades", + "lat": "42.21120", + "lon": "2.60797", + "id": 96353 + } + ], + "matchStreet": 1 + }, + { + "name": "Alcalá de Henares", + "names": { + "ar": "القلعة الحجارة", + "ru": "Алькала-де-Энарес", + "uk": "Алькала-де-Енарес", + "el": "Αλκαλά ντε Ενάρες", + "lt": "Alkala de Henaresas", + "fa": "الکالا د هنارس", + "hu": "Alcalá de Henares", + "ur": "الکالا دے ایناریس", + "es": "Alcalá de Henares", + "sr": "Алкала де Енарес" + }, + "lat": "40.48184", + "lon": "-3.36450", + "id": 209144042, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Quirze del Vallès", + "names": { + "es:1857-1976": "San Quirico de Tarrasa" + }, + "lat": "41.53014", + "lon": "2.08201", + "id": 1470838966, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Figueres", + "names": { + "fr": "Figueres", + "ca": "Figueres", + "es": "Figueras" + }, + "lat": "42.26663", + "lon": "2.96384", + "id": 1470838284, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Falset", + "lat": "41.14510", + "lon": "0.81962", + "id": 1470838282, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Puigcerdà", + "names": { + "lt": "Puigserda" + }, + "lat": "42.43180", + "lon": "1.92787", + "id": 1470838793, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Baixada de Sant Bartomeu", + "lat": "42.43146", + "lon": "1.92919", + "id": 72687 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Paracuellos de Jarama", + "lat": "40.50510", + "lon": "-3.53185", + "id": 256245933, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Gurb", + "lat": "41.94099", + "lon": "2.24330", + "id": 7099361433, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.94163", + "lon": "2.24205", + "id": 74041, + "intersectedStreets": [ + { + "name": "Carrer de Colom", + "lat": "41.94163", + "lon": "2.24205" + }, + { + "name": "Carrer de Sant Roc", + "names": { + "ca": "Carrer de Sant Roc" + }, + "lat": "41.94216", + "lon": "2.24166" + }, + { + "name": "Carrer de Mossèn Jacint Verdaguer", + "lat": "41.94382", + "lon": "2.24052" + }, + { + "name": "Carrer del Ginebrar", + "lat": "41.94543", + "lon": "2.23941" + }, + { + "name": "Plaça de l'Amistat", + "lat": "41.94586", + "lon": "2.23911" + }, + { + "name": "Passeig de Prixana", + "lat": "41.94589", + "lon": "2.23909" + }, + { + "name": "Carrer del Castell", + "lat": "41.94624", + "lon": "2.23885" + }, + { + "name": "Carrer de la Clàudia", + "lat": "41.94696", + "lon": "2.23834" + }, + { + "name": "Carrer de la Carlota", + "lat": "41.94739", + "lon": "2.23804" + }, + { + "name": "Carrer Diagonal", + "lat": "41.94784", + "lon": "2.23771" + }, + { + "name": "Carrer del Canigó", + "lat": "41.94786", + "lon": "2.23769" + }, + { + "name": "Pont de Can Sila", + "lat": "41.96598", + "lon": "2.22402" + }, + { + "name": "Pont de l'Argila", + "lat": "41.97067", + "lon": "2.21733" + }, + { + "name": "Carretera de Vespella", + "lat": "41.97300", + "lon": "2.21312" + }, + { + "name": "BV-4602", + "lat": "41.97174", + "lon": "2.21709" + }, + { + "name": "Camí de Sant Julià Sassorba a Sant Bartomeu", + "lat": "41.97007", + "lon": "2.17504" + }, + { + "name": "Carrer del Montsseny", + "lat": "41.97725", + "lon": "2.20066" + } + ] + }, + { + "name": "Camí de Sant Julià Sassorba a Sant Bartomeu", + "lat": "41.96394", + "lon": "2.17851", + "id": 79968, + "intersectedStreets": [ + { + "name": "Carretera de Sant Bartomeu", + "lat": "41.97007", + "lon": "2.17506" + } + ] + }, + { + "name": "Camí de St. Julià Sassorba a St. Bartomeu", + "lat": "41.94417", + "lon": "2.17607", + "id": 79969 + }, + { + "name": "BV-4601 - Carretera de Sant Bartomeu", + "lat": "41.95368", + "lon": "2.23540", + "id": 1670 + } + ], + "matchStreet": 1 + }, + { + "name": "Gavà", + "lat": "41.30509", + "lon": "2.00631", + "id": 1470838298, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Olost", + "lat": "41.98529", + "lon": "2.09416", + "id": 247461646, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Camí d'Olost a la Carretera de Sant Bartomeu", + "lat": "41.98659", + "lon": "2.09888", + "id": 85617, + "intersectedStreets": [ + { + "name": "Carrer de les Escoles", + "lat": "41.98572", + "lon": "2.09817" + }, + { + "name": "Camí de Pela", + "lat": "41.98698", + "lon": "2.10047" + } + ] + }, + { + "name": "Camí d'Olost a la carretera de Sant Bartomeu", + "lat": "42.01593", + "lon": "2.12459", + "id": 87495 + } + ], + "matchStreet": 1 + }, + { + "name": "Roses", + "names": { + "ca": "Roses", + "es": "Rosas" + }, + "lat": "42.26320", + "lon": "3.17553", + "id": 1470838814, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Santa Perpètua de Mogoda", + "lat": "41.53281", + "lon": "2.18233", + "id": 1470839326, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Las Rozas de Madrid", + "names": { + "es": "Las Rozas de Madrid", + "zh": "奥特莱斯" + }, + "lat": "40.49331", + "lon": "-3.87584", + "id": 256552113, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Gandesa", + "lat": "41.05204", + "lon": "0.43890", + "id": 1470838296, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ripoll", + "lat": "42.19824", + "lon": "2.19325", + "id": 1470838807, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Sant Bartomeu", + "lat": "42.19804", + "lon": "2.19426", + "id": 60239, + "intersectedStreets": [ + { + "name": "Carrer de l'estació", + "lat": "42.19778", + "lon": "2.19381" + }, + { + "name": "Carrer del Progrés", + "lat": "42.19804", + "lon": "2.19426" + }, + { + "name": "Carrer Indústria", + "lat": "42.19839", + "lon": "2.19480" + }, + { + "name": "Carretera d'Olot", + "lat": "42.19842", + "lon": "2.19488" + }, + { + "name": "Carrer Palmerola", + "lat": "42.19858", + "lon": "2.19512" + }, + { + "name": "Carrer Costabona", + "lat": "42.19866", + "lon": "2.19525" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Xalet Mas Reig", + "lat": "41.98740", + "lon": "2.16424", + "id": 3588223523, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Carretera de Sant Bartomeu del Grau", + "names": { + "alt_name": "Camí de les Farreres" + }, + "lat": "41.98642", + "lon": "2.16519", + "id": 55368 + } + ], + "matchStreet": 1 + }, + { + "name": "Cunit", + "lat": "41.19760", + "lon": "1.63446", + "id": 1470838245, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Barcelona", + "names": { + "de": "Barcelona", + "hi": "बार्सॆलोना", + "be": "Барселона", + "kn": "ಬಾರ್ಸೆಲೋನಾ", + "ru": "Барселона", + "pt": "Barcelona", + "gl": "Barcelona", + "el": "Βαρκελώνη", + "lt": "Barselona", + "it": "Barcellona", + "fr": "Barcelone", + "es": "Barcelona", + "zh": "巴塞罗那", + "eu": "Bartzelona", + "ar": "برشلونة", + "oc": "Barcelona", + "uk": "Барселона", + "ja": "バルセロナ", + "ckb": "بارسێلۆنا", + "ca": "Barcelona", + "mk": "Барселона", + "sr": "Барселона" + }, + "lat": "41.38289", + "lon": "2.17743", + "id": 152364165, + "type": "CITY", + "listOfStreets": [ + { + "name": "Carrer Bartomeu Pi", + "lat": "41.36963", + "lon": "2.13886", + "id": 1156, + "intersectedStreets": [ + { + "name": "Carrer Tort (la Bordeta)", + "lat": "41.37042", + "lon": "2.13984" + }, + { + "name": "Carrer de Viladecans (la Bordeta)", + "lat": "41.36961", + "lon": "2.13894" + }, + { + "name": "Carrer de Mossèn Amadeu Oller (la Bordeta)", + "lat": "41.36900", + "lon": "2.13819" + }, + { + "name": "Carrer de Navarra (la Bordeta)", + "lat": "41.37072", + "lon": "2.14019" + } + ] + }, + { + "name": "Carrer de Sant Bartomeu (el Raval)", + "lat": "41.37816", + "lon": "2.16924", + "id": 18565, + "intersectedStreets": [ + { + "name": "Carrer de la Riereta (el Raval)", + "lat": "41.37786", + "lon": "2.16879" + }, + { + "name": "Rambla del Raval", + "lat": "41.37835", + "lon": "2.16941" + } + ] + }, + { + "name": "Carrer de Sant Bartomeu de la Quadra (les Corts)", + "lat": "41.38987", + "lon": "2.10388", + "id": 121254, + "intersectedStreets": [ + { + "name": "Costa de Sant Bartomeu de la Quadra (les Corts)", + "lat": "41.38966", + "lon": "2.10382" + } + ] + }, + { + "name": "Costa de Sant Bartomeu de la Quadra (les Corts)", + "lat": "41.38943", + "lon": "2.10410", + "id": 13505, + "intersectedStreets": [ + { + "name": "Carrer del Torrent de les Roses (les Corts)", + "lat": "41.38964", + "lon": "2.10365" + }, + { + "name": "Carrer de Sant Bartomeu de la Quadra (les Corts)", + "lat": "41.38966", + "lon": "2.10382" + }, + { + "name": "Passatge de Santa de Vilalba (les Corts)", + "lat": "41.38964", + "lon": "2.10410" + }, + { + "name": "Carrer dels Herois del Bruc (les Corts)", + "lat": "41.38917", + "lon": "2.10429" + }, + { + "name": "Plaça del Coll de Finestrelles (les Corts)", + "lat": "41.38917", + "lon": "2.10429" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Balenyà", + "lat": "41.82161", + "lon": "2.22241", + "id": 4800634741, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (els Hostalets de Balenyà)", + "lat": "41.81121", + "lon": "2.23308", + "id": 96720, + "intersectedStreets": [ + { + "name": "Avinguda d'Osona (els Hostalets de Balenyà)", + "lat": "41.81139", + "lon": "2.23507" + }, + { + "name": "Carrer de la Verge Montserrat", + "lat": "41.81139", + "lon": "2.23507" + }, + { + "name": "Carrer d'Alfons Amic", + "lat": "41.81097", + "lon": "2.23368" + }, + { + "name": "Carrer de Cervantes (els Hostalets de Balenyà)", + "lat": "41.81121", + "lon": "2.23308" + }, + { + "name": "Carretera de Ribes (la Cugullada)", + "lat": "41.81153", + "lon": "2.23231" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "el Prat de Llobregat", + "names": { + "ru": "Эль-Прат-де-Льобрегат", + "ca": "el Prat de Llobregat", + "es": "El Prat de Llobregat" + }, + "lat": "41.32463", + "lon": "2.09526", + "id": 1470838266, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Premià de Mar", + "lat": "41.49268", + "lon": "2.36058", + "id": 1470838783, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "el Vendrell", + "names": { + "ca": "el Vendrell" + }, + "lat": "41.21997", + "lon": "1.53486", + "id": 1470838269, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "el Masnou", + "lat": "41.47969", + "lon": "2.31183", + "id": 1470838263, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Castelló d'Empuries", + "lat": "42.25935", + "lon": "3.07338", + "id": 1949049715, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Gelida", + "lat": "41.44089", + "lon": "1.86343", + "id": 1460478611, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Bartomeu Raurell", + "lat": "41.44302", + "lon": "1.86574", + "id": 18243, + "intersectedStreets": [ + { + "name": "Avinguda del Funicular", + "lat": "41.44302", + "lon": "1.86474" + }, + { + "name": "Carrer del Poeta Jaume Vila", + "lat": "41.44300", + "lon": "1.86510" + }, + { + "name": "Carretera de Sant Llorenç d'Hortons", + "lat": "41.44298", + "lon": "1.86637" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Reus", + "lat": "41.15510", + "lon": "1.10871", + "id": 6948959184, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Vistabella", + "lat": "41.20940", + "lon": "1.26508", + "id": 886148850, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.20959", + "lon": "1.26502", + "id": 106354, + "intersectedStreets": [ + { + "name": "Plaça de l'Alcalde Joaquim Celma", + "lat": "41.20919", + "lon": "1.26463" + }, + { + "name": "Carrer del Roser", + "lat": "41.20959", + "lon": "1.26502" + }, + { + "name": "Carrer Vell", + "lat": "41.20999", + "lon": "1.26542" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "San Fernando de Henares", + "lat": "40.42485", + "lon": "-3.53504", + "id": 280130897, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sort", + "lat": "42.41140", + "lon": "1.12977", + "id": 151060133, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ciempozuelos", + "lat": "40.15801", + "lon": "-3.62055", + "id": 308517254, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Vallbona d'Anoia", + "lat": "41.51948", + "lon": "1.70829", + "id": 347532113, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer Bartomeu", + "lat": "41.51862", + "lon": "1.70619", + "id": 3769, + "intersectedStreets": [ + { + "name": "Carrer Major", + "lat": "41.51873", + "lon": "1.70608" + }, + { + "name": "Carrer Nou", + "lat": "41.51809", + "lon": "1.70642" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Tremp", + "lat": "42.16637", + "lon": "0.89462", + "id": 3890310157, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Secuita", + "lat": "41.20319", + "lon": "1.27914", + "id": 886148842, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu (Vistabella)", + "lat": "41.20959", + "lon": "1.26502", + "id": 106353, + "intersectedStreets": [ + { + "name": "Plaça de l'Alcalde Joaquim Celma", + "lat": "41.20919", + "lon": "1.26463" + }, + { + "name": "Carrer del Roser (Vistabella)", + "lat": "41.20959", + "lon": "1.26502" + }, + { + "name": "Carrer Vell (Vistabella)", + "lat": "41.20999", + "lon": "1.26542" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Mejorada del Campo", + "lat": "40.39718", + "lon": "-3.48961", + "id": 303821734, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Masarbonès", + "lat": "41.26018", + "lon": "1.43825", + "id": 1896326329, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.25992", + "lon": "1.43844", + "id": 105690, + "intersectedStreets": [ + { + "name": "Carrer de Sant Antoni", + "lat": "41.25984", + "lon": "1.43687" + }, + { + "name": "Carrer Major", + "lat": "41.25992", + "lon": "1.43796" + }, + { + "name": "Carrer de Bonastre", + "lat": "41.25995", + "lon": "1.43848" + }, + { + "name": "Carrer de les Fassines", + "lat": "41.26021", + "lon": "1.43874" + }, + { + "name": "Plaça de l'Om", + "lat": "41.26044", + "lon": "1.43854" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Algete", + "names": { + "ar": "الشط" + }, + "lat": "40.59617", + "lon": "-3.49742", + "id": 1487216934, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Sant Cugat del Vallès", + "lat": "41.47284", + "lon": "2.08178", + "id": 1470838828, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.47405", + "lon": "2.08290", + "id": 54668, + "intersectedStreets": [ + { + "name": "Carrer de Santa Anna", + "lat": "41.47421", + "lon": "2.08279" + }, + { + "name": "Carrer de les Escaletes", + "lat": "41.47405", + "lon": "2.08290" + }, + { + "name": "Carrer de Sant Martí", + "lat": "41.47396", + "lon": "2.08296" + }, + { + "name": "Carrer de l'Hospital", + "lat": "41.47341", + "lon": "2.08356" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Òdena", + "lat": "41.60688", + "lon": "1.64222", + "id": 355898040, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer sant Bartomeu", + "lat": "41.58110", + "lon": "1.63784", + "id": 24402, + "intersectedStreets": [ + { + "name": "Carrer de la carretera", + "lat": "41.58093", + "lon": "1.63769" + }, + { + "name": "Carrer de la Calç", + "lat": "41.58110", + "lon": "1.63784" + }, + { + "name": "Carrer de Sant Jaume", + "lat": "41.58142", + "lon": "1.63801" + }, + { + "name": "Carrer de la Línia", + "lat": "41.58142", + "lon": "1.63801" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Sant Boi de Llobregat", + "lat": "41.34590", + "lon": "2.04137", + "id": 1470838825, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Bartomeu Garcia i Subirà", + "lat": "41.33342", + "lon": "2.03535", + "id": 106600, + "intersectedStreets": [ + { + "name": "Avinguda de la Torre de la Vila (Casablanca)", + "lat": "41.33377", + "lon": "2.03494" + }, + { + "name": "carrer d'Aleix Parés i Valls", + "lat": "41.33338", + "lon": "2.03539" + }, + { + "name": "Carrer de la Joventut (Casablanca)", + "lat": "41.33298", + "lon": "2.03584" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Riba-roja d'Ebre", + "lat": "41.25135", + "lon": "0.48730", + "id": 637456379, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.25056", + "lon": "0.48812", + "id": 100817 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Sant Feliu de Guíxols", + "names": { + "ca": "Sant Feliu de Guíxols" + }, + "lat": "41.78388", + "lon": "3.02832", + "id": 1470838830, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Villalbilla", + "names": { + "ru": "Вильяльбилья", + "uk": "Вільяльбілья", + "es": "Villalbilla" + }, + "lat": "40.43247", + "lon": "-3.29862", + "id": 311122244, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Granollers", + "lat": "41.60796", + "lon": "2.28760", + "id": 1470838306, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Carrer Bartomeu Brufalt (Bellavista)", + "lat": "41.61450", + "lon": "2.29526", + "id": 116993, + "intersectedStreets": [ + { + "name": "Avinguda de Francesc Ribas (Joan Prim)", + "lat": "41.61328", + "lon": "2.29464" + }, + { + "name": "Carrer Zorrilla", + "lat": "41.61450", + "lon": "2.29526" + }, + { + "name": "Carrer de Manuel Cornellà (Bellavista)", + "lat": "41.61523", + "lon": "2.29543" + } + ] + }, + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.60821", + "lon": "2.28567", + "id": 132663, + "intersectedStreets": [ + { + "name": "Carrer de Sant Jaume", + "lat": "41.60817", + "lon": "2.28559" + }, + { + "name": "Carrer Constància (Centre)", + "lat": "41.60878", + "lon": "2.28610" + }, + { + "name": "Carrer de Santa Anna (Centre)", + "lat": "41.60878", + "lon": "2.28610" + } + ] + }, + { + "name": "Carrer de Bartomeu Serret i Argemi", + "lat": "41.59588", + "lon": "2.28739", + "id": 54706, + "intersectedStreets": [ + { + "name": "Carrer Maria Aurèlia Campmany", + "lat": "41.59595", + "lon": "2.28702" + }, + { + "name": "Carrer del Pla de Baix", + "lat": "41.59580", + "lon": "2.28825" + }, + { + "name": "Carrer d'Esteve Terrades", + "lat": "41.59558", + "lon": "2.29013" + }, + { + "name": "Carrer Ramon Dagà", + "lat": "41.59568", + "lon": "2.28938" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Sant Adrià de Besòs", + "names": { + "ca": "Sant Adrià de Besòs" + }, + "lat": "41.43048", + "lon": "2.21828", + "id": 1470838823, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Salt", + "enName": "Salt", + "names": { + "es": "Salt" + }, + "lat": "41.97417", + "lon": "2.79499", + "id": 1470838822, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Salou", + "lat": "41.07682", + "lon": "1.14404", + "id": 1470838821, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Corbins", + "lat": "41.69057", + "lon": "0.69308", + "id": 2202651293, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.69298", + "lon": "0.69304", + "id": 35417 + } + ], + "matchStreet": 1 + }, + { + "name": "Alpicat", + "lat": "41.66512", + "lon": "0.55607", + "id": 796917354, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.66806", + "lon": "0.55494", + "id": 110134 + }, + { + "name": "Travessia de Sant Bartomeu", + "lat": "41.66854", + "lon": "0.55387", + "id": 131137 + } + ], + "matchStreet": 1 + }, + { + "name": "Sant Joan Despí", + "lat": "41.36680", + "lon": "2.05703", + "id": 1470838836, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Guissona", + "names": { + "es": "Guissona" + }, + "lat": "41.78524", + "lon": "1.28903", + "id": 1470838323, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "l'Hospitalet de Llobregat", + "names": { + "ru": "Оспиталет-де-Льобрегат", + "el": "Οσπιταλέτ ντε Λιοβρεγάτ", + "ca": "l'Hospitalet de Llobregat", + "sr": "Лоспиталет де Љобрегат" + }, + "lat": "41.35986", + "lon": "2.09979", + "id": 939880925, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "la Llagosta", + "lat": "41.51399", + "lon": "2.19121", + "id": 1460478680, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Amposta", + "lat": "40.70799", + "lon": "0.58276", + "id": 4678926078, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Montagut", + "lat": "42.23093", + "lon": "2.59674", + "id": 1297380489, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Carrer de Sant Bartomeu", + "lat": "42.22612", + "lon": "2.57677", + "id": 110634 + } + ], + "matchStreet": 1 + }, + { + "name": "Sidamon", + "lat": "41.62752", + "lon": "0.83082", + "id": 1460478674, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Torrent de Sant Bartomeu", + "lat": "41.62890", + "lon": "0.83348", + "id": 97566 + }, + { + "name": "Carrer de Sant Bartomeu", + "lat": "41.62887", + "lon": "0.83256", + "id": 97567 + } + ], + "matchStreet": 1 + } + ] +} \ No newline at end of file diff --git a/OsmAnd-java/src/test/resources/search/free_street_portland.json b/OsmAnd-java/src/test/resources/search/free_street_portland.json index 3f73bf1a3e..d39fbcab43 100644 --- a/OsmAnd-java/src/test/resources/search/free_street_portland.json +++ b/OsmAnd-java/src/test/resources/search/free_street_portland.json @@ -12,17 +12,16 @@ "phrase": "48 Free Street Portland", "results": [ "48.0, ", - "48, Free Street (Downtown), Portland", + "48, Free Street (Downtown), Portland" + ], + "extra-results": [ "48, Portland Street, North Berwick", - "48, Portland Avenue, Old Orchard Beach", - "Portland Street (Downtown), Portland", - "Portland Street Pier, South Portland", - "Portland Street, Yarmouth", - "Portland Street, North Berwick", - "Portland Street, Berwick", - "Portland Street, South Berwick", - "Portland Street, Fryeburg", - "Portland Square, Portland" + "Free Street (Downtown), Portland", + "Free Street (Ferry Village), South Portland", + "Portland Street", + "Portland Street (Downtown), Portland", + "Portland Street Pier, South Portland", + "Portland Street, Yarmouth" ], "amenities": [ { diff --git a/OsmAnd-java/src/test/resources/search/navacerrada.json b/OsmAnd-java/src/test/resources/search/navacerrada.json index 41bdccaacf..b4c94a734e 100644 --- a/OsmAnd-java/src/test/resources/search/navacerrada.json +++ b/OsmAnd-java/src/test/resources/search/navacerrada.json @@ -11,42 +11,69 @@ }, "phrase": "Calle de las eras 5, Navacerrada", "results": [ - "5, Calle de las Eras (Uranización Los Corales), Navacerrada", - "5, Calle Navacerrada (Urb. Las Suertes), Las Suertes", - "50, Calle de Francisco Navacerrada, Salamanca", - "52, Calle de Francisco Navacerrada, Salamanca", - "53, Calle de Francisco Navacerrada, Salamanca", - "54, Calle de Francisco Navacerrada, Salamanca", - "55, Calle de Francisco Navacerrada, Salamanca", - "56, Calle de Francisco Navacerrada, Salamanca", - "57, Calle de Francisco Navacerrada, Salamanca", - "58, Calle de Francisco Navacerrada, Salamanca", - "59, Calle de Francisco Navacerrada, Salamanca", - "Calle del Puerto de Navacerrada, Las Nieves", - "Calle Puerto de Navacerrada, La Poveda", - "Calle del Embalse de Navacerrada, Villa de Vallecas", - "Calle del Puerto de Navacerrada, Puente de Vallecas", - "Calle de Francisco Navacerrada, Salamanca", - "Calle de Navacerrada, Moraleja de Enmedio", - "Calle Navacerrada (Urb. Las Suertes), Las Suertes", - "Calle Puerto de Navacerrada, Roman Candelas", - "Calle Navacerrada, Becerril de la Sierra", - "Carretera de Collado Villalba a Navacerrada, El Baillo y las Hojarascas", - "Calle Navacerrada (Cerceda), El Boalo", - "Calle Navacerrada (El Pedregal), Bustarviejo", - "Calle Navacerrada, Buitrago del Lozoya", - "Carretera de Colmenar Viejo a Navacerrada, Becerril de la Sierra", - "Carretera de Colmenar Viejo a Navacerrada, Manzanares el Real", - "Carretera de Collado Villalba a Navacerrada, Dehesa Boyal", - "Carretera de Collado Villalba a Navacerrada, Polideportivo Dehesa Boyal", - "Carretera de Navacerrada, Jazmines", - "Carretera de Colmenar Viejo a Navacerrada (Cerceda), El Boalo", - "Carretera de Collado Villalba a Navacerrada, Cerca de Cascarrilla", - "Carretera de Navacerrada, El Boalo", - "Carretera de Collado Villalba a Navacerrada, Collado Mediano", - "Camino de Navacerrada (Serranía de la Paloma), Collado Mediano", - "Camino de Los Molinos a Navacerrada, Collado Mediano", - "Carretera de Collado Villalba a Navacerrada, Navacerrada" + "5, Calle de las Eras (Uranización Los Corales), Navacerrada" + ], + "extra-results": [ + "Calle de las Eras (Uranización Los Corales), Navacerrada", + "Calle del Sotillo (Uranización Los Corales), Pasaje de las Eras (Uranización Los Corales), Navacerrada", + "Calle del Puerto de Navacerrada, Las Nieves", + "5, Calle Navacerrada (Urb. Las Suertes), Las Suertes", + "50, Calle de Francisco Navacerrada, Salamanca", + "52, Calle de Francisco Navacerrada, Salamanca", + "53, Calle de Francisco Navacerrada, Salamanca", + "54, Calle de Francisco Navacerrada, Salamanca", + "55, Calle de Francisco Navacerrada, Salamanca", + "56, Calle de Francisco Navacerrada, Salamanca", + "57, Calle de Francisco Navacerrada, Salamanca", + "58, Calle de Francisco Navacerrada, Salamanca", + "59, Calle de Francisco Navacerrada, Salamanca", + "Pasaje de las Eras (Uranización Los Corales), Navacerrada", + "Calle Barrio de las Peñas, Navacerrada", + "Calle de las Cruces (Residencial Sanabria), Navacerrada", + "Calle de las Escuelas, Navacerrada", + "Calle de las Huertas (Residencial Sanabria), Navacerrada", + "Calle de la Virgen de las Nieves, Puerto de Navacerrada", + "Calle Puerto de Navacerrada, La Poveda", + "Calle del Embalse de Navacerrada, Villa de Vallecas", + "Calle del Puerto de Navacerrada, Puente de Vallecas", + "Calle de Francisco Navacerrada, Salamanca", + "Calle de Navacerrada, Moraleja de Enmedio", + "Calle Navacerrada (Urb. Las Suertes), Las Suertes", + "Calle Puerto de Navacerrada, Roman Candelas", + "Calle Navacerrada, Becerril de la Sierra", + "Carretera de Collado Villalba a Navacerrada, El Baillo y las Hojarascas", + "Calle de Ángel Rojas, Navacerrada", + "Calle de los Robles (Uranización Los Corales), Navacerrada", + "Calle de los Enebros (Uranización Los Corales), Navacerrada", + "Calle de la Bola del Mundo (Residencial Sanabria), Navacerrada", + "Calle de la Maliciosa (Residencial Sanabria), Navacerrada", + "Calle de la Perdiz, Navacerrada", + "Calle de la Magdalena, Navacerrada", + "Calle las Jaras, Navacerrada", + "Calle de la Audiencia, Navacerrada", + "Calle de Prado Jerez, Navacerrada", + "Calle de Carmen Conde (Residencial Sanabria), Navacerrada", + "Calle de la Iglesia, Navacerrada", + "Calle de la Tejera, Navacerrada", + "Calle de la Encinilla, Navacerrada", + "Calle de la Canaleja (Residencial Sanabria), Navacerrada", + "Calle de Rafael Alvarado, Navacerrada", + "Calle de Andrés Segovia, Navacerrada", + "Calle de los Pradillos (Residencial Sanabria), Navacerrada", + "Calle de Abel, Navacerrada", + "Calle Praderas de San Sebastián, Navacerrada", + "Calle de San Sebastián (Residencial Sanabria), Navacerrada", + "Calle de Álvaro Iglesia, Navacerrada", + "Calle de los Arcos, Navacerrada", + "Calle de Peñalara, Puerto de Navacerrada", + "Calle de la Bola del Mundo, Puerto de Navacerrada", + "Calle de la Estación, Puerto de Navacerrada", + "Calle Ginos, Puerto de Navacerrada", + "Calle Vitoria, Puerto de Navacerrada", + "Calle Dos Castillas, Puerto de Navacerrada", + "Travesía de las Huertas, Navacerrada", + "Vereda de las Encinillas, Navacerrada", + "Centro Municipal de Mayores «Navacerrada»", ], "amenities": [ { diff --git a/OsmAnd-java/src/test/resources/search/spring_street.json b/OsmAnd-java/src/test/resources/search/spring_street.json index 5ad960f31b..b8f10d139a 100644 --- a/OsmAnd-java/src/test/resources/search/spring_street.json +++ b/OsmAnd-java/src/test/resources/search/spring_street.json @@ -11,59 +11,161 @@ }, "phrase": "spring street", "results": [ - "Spring (Natural)", - "Spring (Spring / Natural)", - "Spring (Ice rink / Sport)", - "Spring (Bridge / Transport construction)", - "Spring Street, South Nyack", - "Spring Street, Tomkins Cove", - "Spring Street, Southfields", - "Spring Street, Hastings-on-Hudson", - "Spring Street, Pleasantville", - "Spring Street (Mount Pleasant), Hawthorne", - "Spring Street, Durland", - "Spring Street, Warwick", - "Spring Street, Nelsonville", - "Spring Street, Goshen", - "Spring Street (Little Italy), Manhattan", - "Spring Street, Maybrook", - "West Spring Street, Maybrook", - "Spring Street, South Salem", - "Spring Street, Groveville", - "Spring Street, East Middletown", - "Spring Street, Montgomery", - "Spring Street, Chelsea", - "Spring Street, Wappingers Falls", - "Spring Street, Cold Spring Harbor", - "Spring Street, Staten Island", - "Spring Street, East Meadow", - "Spring Street, Inwood", - "Spring Street, Port Jervis", - "Spring Street, Roosevelt", - "Spring Street, Pawling", - "Spring Street, Fairview", - "Spring Street (Wyandanch), Wheatley Heights", - "Spring Street, Wyandanch", - "Spring Street, East Massapequa", - "Spring Street, Ellenville", - "Spring Street, Monticello", - "Spring Street, Tillson", - "Spring Street, Port Jefferson", - "Spring Street (Smallwood), Bethel", - "Spring Street, Liberty", - "Spring Street (Livingston Manor), Rockland", - "Spring Street, Livingston Manor", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street", - "Spring Street" + "Spring (Natural)", + "Spring (Spring / Natural)", + "Spring (Ice rink / Sport)", + "Spring (Bridge / Transport construction)", + "Spring Street, South Nyack", + "Spring Street, Tomkins Cove", + "Spring Street, Southfields", + "Spring Street, Hastings-on-Hudson", + "Spring Street, Pleasantville", + "Spring Street (Mount Pleasant), Hawthorne", + "Spring Street, Durland", + "Spring Street, Warwick", + "Spring Street, Nelsonville", + "Spring Street, Goshen", + "Spring Street (Little Italy), Manhattan", + "Spring Street, Maybrook", + "West Spring Street, Maybrook", + "Spring Street, South Salem", + "Spring Street, Groveville", + "Spring Street, East Middletown", + "Spring Street, Montgomery", + "Spring Street, Chelsea", + "Spring Street, Wappingers Falls", + "Spring Street, Cold Spring Harbor", + "Spring Street, Staten Island", + "Spring Street, East Meadow", + "Spring Street, Inwood", + "Spring Street, Port Jervis", + "Spring Street, Roosevelt", + "Spring Street, Pawling", + "Spring Street, Fairview", + "Spring Street (Wyandanch), Wheatley Heights", + "Spring Street, Wyandanch", + "Spring Street, East Massapequa", + "Spring Street, Ellenville", + "Spring Street, Monticello", + "Spring Street, Tillson", + "Spring Street, Port Jefferson", + "Spring Street (Smallwood), Bethel", + "Spring Street, Liberty", + "Spring Street (Livingston Manor), Rockland", + "Spring Street, Livingston Manor", + "Market Street, Cold Spring", + "New Street, Cold Spring", + "West Street, Cold Spring", + "Fish Street, Cold Spring", + "North Street, Cold Spring", + "Rock Street, Cold Spring", + "Stone Street, Cold Spring", + "Wall Street, Cold Spring", + "Cross Street, Cold Spring", + "Main Street, Cold Spring", + "Chestnut Street, Cold Spring", + "Furnace Street, Cold Spring", + "Garden Street, Cold Spring", + "Church Street, Cold Spring", + "Oak Street, Cold Spring", + "Cherry Street, Cold Spring", + "High Street, Cold Spring", + "Academy Street, Cold Spring", + "Haldane Street, Cold Spring", + "West Bank Street, Cold Spring", + "B Street, Cold Spring", + "West Belvedere Street, Cold Spring", + "Parrot Street, Cold Spring", + "Bank Street, Cold Spring", + "Orchard Street, Cold Spring", + "East Belvedere Street, Cold Spring", + "Pine Street, Cold Spring", + "Parsonage Street, Cold Spring", + "Hamilton Street, Cold Spring", + "Fair Street, Cold Spring", + "Cedar Street, Cold Spring", + "Flora Street, Cold Spring Harbor", + "West Main Street, Cold Spring Harbor", + "Grove Street, Cold Spring Harbor", + "Midland Street, Cold Spring Harbor", + "Rusco Street, Cold Spring Harbor", + "Main Street, Cold Spring Harbor", + "Chestnut Street, Cold Spring Harbor", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Academy Street, Cold Spring", + "Bank Street, Cold Spring", + "B Street, Cold Spring", + "Cedar Street, Cold Spring", + "Cherry Street, Cold Spring", + "Chestnut Street, Cold Spring", + "Church Street, Cold Spring", + "Cross Street, Cold Spring", + "East Belvedere Street, Cold Spring", + "Fair Street, Cold Spring", + "Fish Street, Cold Spring", + "Furnace Street, Cold Spring", + "Garden Street, Cold Spring", + "Haldane Street, Cold Spring", + "Hamilton Street, Cold Spring", + "High Street, Cold Spring", + "Main Street, Cold Spring", + "Market Street, Cold Spring", + "New Street, Cold Spring", + "North Street, Cold Spring", + "Oak Street, Cold Spring", + "Orchard Street, Cold Spring", + "Parrot Street, Cold Spring", + "Parsonage Street, Cold Spring", + "Pine Street, Cold Spring", + "Rock Street, Cold Spring", + "Stone Street, Cold Spring", + "Wall Street, Cold Spring", + "West Bank Street, Cold Spring", + "West Belvedere Street, Cold Spring", + "West Street, Cold Spring", + "Chestnut Street, Cold Spring Harbor", + "Flora Street, Cold Spring Harbor", + "Grove Street, Cold Spring Harbor", + "Main Street, Cold Spring Harbor", + "Midland Street, Cold Spring Harbor", + "Rusco Street, Cold Spring Harbor", + "Spring Street, Cold Spring Harbor", + "West Main Street, Cold Spring Harbor", + "Kraw Street, Spring Glen", + "Munro Street, Cold Spring", + "State Street, Cold Spring", + "Spring Street Salt Shed", + "6th Avenue & Spring Street", + "Spring Street Park", + "Broadway & Spring Street", + "Broadway/Spring Street", + "Spring Street Station (6) - Downtown", + "Spring Street Station (6) - Uptown & The Bronx", + "Richmond Road & Spring Street", + "West Spring Street School", + "Spring Street Gallery", + "Spring Street Apartments", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", + "Spring Street", ], "amenities": [ { diff --git a/OsmAnd-telegram/res/values-de/strings.xml b/OsmAnd-telegram/res/values-de/strings.xml index 9b4b7776df..44f16c5612 100644 --- a/OsmAnd-telegram/res/values-de/strings.xml +++ b/OsmAnd-telegram/res/values-de/strings.xml @@ -18,7 +18,7 @@ Standort teilen als Kontakte und Gruppen, die ihren Standort mit Ihnen teilen. Aus OsmAnd Tracker abmelden\? - "Name " + Name Nach Entfernung Nach Namen Nach Gruppe @@ -44,7 +44,7 @@ Meinen Standort senden Position OsmAnd öffnen - "Live " + Live Registrierung in Telegram Sie benötigen ein Telegram-Konto, um die Standortfreigabe nutzen zu können. Bitte installieren Sie Telegram und richten Sie ein Konto ein. @@ -151,9 +151,7 @@ Standort freigeben Wählen Sie einen der Standortanbieter aus, um Ihren Standort freizugeben. Standort teilen - - OsmAnd Tracker ermöglicht es Ihnen, Ihren Standort zu teilen und den anderer in OsmAnd zu sehen.
-
Die App verwendet die API von Telegram, also benötigen Sie ein Telegram-Konto.
+ OsmAnd Tracker ermöglicht es Ihnen, Ihren Standort zu teilen und den anderer in OsmAnd zu sehen.

Die App verwendet die API von Telegram, also benötigen Sie ein Telegram-Konto.
Wählen Sie einen Namen, den Sie noch nicht benutzt haben %1$s hinzugefügt. Hinzufügen diff --git a/OsmAnd-telegram/res/values-gl/strings.xml b/OsmAnd-telegram/res/values-gl/strings.xml index c7d9f4cb4e..9e54794229 100644 --- a/OsmAnd-telegram/res/values-gl/strings.xml +++ b/OsmAnd-telegram/res/values-gl/strings.xml @@ -216,4 +216,13 @@ Procura en tódolos teus grupos e contactos. Escribe o nome do contacto ou do grupo Procurar + Estado do Rastrexador do OsmAnd + Suxerido + Voltar ó OsmAnd + hai %1$s + Última resposta: hai %1$s + Última actualización dende o Telegram: hai %1$s + Última resposta: %1$s + Última actualización dende o Telegram: %1$s + ERR \ No newline at end of file diff --git a/OsmAnd/res/drawable-hdpi/map_compass_niu_template.png b/OsmAnd/res/drawable-hdpi/map_compass_niu_template.png deleted file mode 100644 index 1297b4378c..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_compass_niu_template.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png b/OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png deleted file mode 100644 index 9b0a2cbc3a..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_dashboard.png b/OsmAnd/res/drawable-hdpi/map_dashboard.png deleted file mode 100644 index 04f8e5559a..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_dashboard.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_directions.png b/OsmAnd/res/drawable-hdpi/map_directions.png deleted file mode 100644 index ad3e3daaa3..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_directions.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_down.png b/OsmAnd/res/drawable-hdpi/map_down.png deleted file mode 100644 index 776da36efd..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_down.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_drawer.png b/OsmAnd/res/drawable-hdpi/map_drawer.png deleted file mode 100644 index e99ca193e6..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_drawer.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_favorite.png b/OsmAnd/res/drawable-hdpi/map_favorite.png deleted file mode 100644 index e8307094fa..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_favorite.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_layer_dark.png b/OsmAnd/res/drawable-hdpi/map_layer_dark.png deleted file mode 100644 index 58b508506e..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_layer_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_layer_night.png b/OsmAnd/res/drawable-hdpi/map_layer_night.png deleted file mode 100644 index c77e9f2bab..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_layer_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png deleted file mode 100644 index 275193e115..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_search_dark.png b/OsmAnd/res/drawable-hdpi/map_search_dark.png deleted file mode 100644 index 6d13bd3992..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_search_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_search_night.png b/OsmAnd/res/drawable-hdpi/map_search_night.png deleted file mode 100644 index 3a11b7f50a..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_search_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_small_group.png b/OsmAnd/res/drawable-hdpi/map_small_group.png deleted file mode 100644 index 1ca12287f9..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_small_group.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_start_navigation.png b/OsmAnd/res/drawable-hdpi/map_start_navigation.png deleted file mode 100644 index 9ab5382df1..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_start_navigation.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_up.png b/OsmAnd/res/drawable-hdpi/map_up.png deleted file mode 100644 index 552b50fa4f..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_up.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-hdpi/map_zoom_in_night.png deleted file mode 100644 index 8b72e3b86e..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_zoom_in_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-hdpi/map_zoom_out_night.png deleted file mode 100644 index 2528efec53..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_zoom_out_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_dashboard.png b/OsmAnd/res/drawable-mdpi/map_dashboard.png deleted file mode 100644 index 80b5433066..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_dashboard.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_directions.png b/OsmAnd/res/drawable-mdpi/map_directions.png deleted file mode 100644 index 4dd4a94c35..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_directions.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_down.png b/OsmAnd/res/drawable-mdpi/map_down.png deleted file mode 100644 index e6007468dd..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_down.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_drawer.png b/OsmAnd/res/drawable-mdpi/map_drawer.png deleted file mode 100644 index 80409f3676..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_drawer.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_favorite.png b/OsmAnd/res/drawable-mdpi/map_favorite.png deleted file mode 100644 index 5de8988a7b..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_favorite.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_layer_dark.png b/OsmAnd/res/drawable-mdpi/map_layer_dark.png deleted file mode 100644 index 27ff0e31ea..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_layer_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_layer_night.png b/OsmAnd/res/drawable-mdpi/map_layer_night.png deleted file mode 100644 index 1323348606..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_layer_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png deleted file mode 100644 index 280a7d376b..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_search_dark.png b/OsmAnd/res/drawable-mdpi/map_search_dark.png deleted file mode 100644 index 57ec156449..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_search_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_search_night.png b/OsmAnd/res/drawable-mdpi/map_search_night.png deleted file mode 100644 index e7c322565e..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_search_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_small_group.png b/OsmAnd/res/drawable-mdpi/map_small_group.png deleted file mode 100644 index 0e35fadf79..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_small_group.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_start_navigation.png b/OsmAnd/res/drawable-mdpi/map_start_navigation.png deleted file mode 100644 index 226a412587..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_start_navigation.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_up.png b/OsmAnd/res/drawable-mdpi/map_up.png deleted file mode 100644 index 013722c6b4..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_up.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-mdpi/map_zoom_in_night.png deleted file mode 100644 index 1006512c2b..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_zoom_in_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-mdpi/map_zoom_out_night.png deleted file mode 100644 index fcae67a6e3..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_zoom_out_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free.xml b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free.xml index b3d6f99388..ed3f0e5956 100644 --- a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free.xml +++ b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free.xml @@ -4,7 +4,7 @@ \ No newline at end of file diff --git a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free_dev.xml b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free_dev.xml index b3d6f99388..ed3f0e5956 100644 --- a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free_dev.xml +++ b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_free_dev.xml @@ -4,7 +4,7 @@ \ No newline at end of file diff --git a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_plus.xml b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_plus.xml index 1dc65ed611..4c95aa687e 100644 --- a/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_plus.xml +++ b/OsmAnd/res/drawable-sw600dp-v21/first_splash_screen_plus.xml @@ -4,7 +4,7 @@ \ No newline at end of file diff --git a/OsmAnd/res/drawable-xhdpi/map_dashboard.png b/OsmAnd/res/drawable-xhdpi/map_dashboard.png deleted file mode 100644 index c2bbe0b7b9..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_dashboard.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_directions.png b/OsmAnd/res/drawable-xhdpi/map_directions.png deleted file mode 100644 index 734cce8e61..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_directions.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_down.png b/OsmAnd/res/drawable-xhdpi/map_down.png deleted file mode 100644 index da5293026b..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_down.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_drawer.png b/OsmAnd/res/drawable-xhdpi/map_drawer.png deleted file mode 100644 index c3b6da6636..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_drawer.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_favorite.png b/OsmAnd/res/drawable-xhdpi/map_favorite.png deleted file mode 100644 index e2e02d791e..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_favorite.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_layer_dark.png b/OsmAnd/res/drawable-xhdpi/map_layer_dark.png deleted file mode 100644 index 2b89f03e66..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_layer_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_layer_night.png b/OsmAnd/res/drawable-xhdpi/map_layer_night.png deleted file mode 100644 index d4e8a5868d..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_layer_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png deleted file mode 100644 index e716e1f098..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_search_dark.png b/OsmAnd/res/drawable-xhdpi/map_search_dark.png deleted file mode 100644 index 45170ec8cb..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_search_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_search_night.png b/OsmAnd/res/drawable-xhdpi/map_search_night.png deleted file mode 100644 index d208cd96bf..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_search_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_small_group.png b/OsmAnd/res/drawable-xhdpi/map_small_group.png deleted file mode 100644 index a440f345c7..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_small_group.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_start_navigation.png b/OsmAnd/res/drawable-xhdpi/map_start_navigation.png deleted file mode 100644 index 3e784bf91e..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_start_navigation.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_up.png b/OsmAnd/res/drawable-xhdpi/map_up.png deleted file mode 100644 index 8d15fd75b6..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_up.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png deleted file mode 100644 index 768ff0ad90..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png deleted file mode 100644 index a573adee77..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_dashboard.png b/OsmAnd/res/drawable-xxhdpi/map_dashboard.png deleted file mode 100644 index 7d6afc7e4b..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_dashboard.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_directions.png b/OsmAnd/res/drawable-xxhdpi/map_directions.png deleted file mode 100644 index 9897a755db..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_directions.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_down.png b/OsmAnd/res/drawable-xxhdpi/map_down.png deleted file mode 100644 index 6bba29c99b..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_down.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_drawer.png b/OsmAnd/res/drawable-xxhdpi/map_drawer.png deleted file mode 100644 index b007054f4e..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_drawer.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_favorite.png b/OsmAnd/res/drawable-xxhdpi/map_favorite.png deleted file mode 100644 index 682fff7b51..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_favorite.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_layer_dark.png b/OsmAnd/res/drawable-xxhdpi/map_layer_dark.png deleted file mode 100644 index 9bcf3d451a..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_layer_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_layer_night.png b/OsmAnd/res/drawable-xxhdpi/map_layer_night.png deleted file mode 100644 index 9f8429d3d3..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_layer_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-xxhdpi/map_overflow_menu_white.png deleted file mode 100644 index 7d02de5140..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_overflow_menu_white.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_search_dark.png b/OsmAnd/res/drawable-xxhdpi/map_search_dark.png deleted file mode 100644 index afcada973c..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_search_dark.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_search_night.png b/OsmAnd/res/drawable-xxhdpi/map_search_night.png deleted file mode 100644 index 2859244cb1..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_search_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_small_group.png b/OsmAnd/res/drawable-xxhdpi/map_small_group.png deleted file mode 100644 index 7c4b45d02e..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_small_group.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_start_navigation.png b/OsmAnd/res/drawable-xxhdpi/map_start_navigation.png deleted file mode 100644 index ee62bbac20..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_start_navigation.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_up.png b/OsmAnd/res/drawable-xxhdpi/map_up.png deleted file mode 100644 index 75c65ca5ff..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_up.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-xxhdpi/map_zoom_in_night.png deleted file mode 100644 index b891b736e5..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_zoom_in_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png deleted file mode 100644 index 7e14714a9c..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png and /dev/null differ diff --git a/OsmAnd/res/drawable/ic_action_external_link.xml b/OsmAnd/res/drawable/ic_action_external_link.xml new file mode 100644 index 0000000000..b445171abc --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_external_link.xml @@ -0,0 +1,14 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_action_notification_navigation.xml b/OsmAnd/res/drawable/ic_action_notification_navigation.xml new file mode 100644 index 0000000000..1901192493 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_notification_navigation.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/OsmAnd/res/drawable/ic_action_power_button.xml b/OsmAnd/res/drawable/ic_action_power_button.xml new file mode 100644 index 0000000000..6e88c236a6 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_power_button.xml @@ -0,0 +1,19 @@ + + + + + diff --git a/OsmAnd/res/drawable/ic_actions_menu.xml b/OsmAnd/res/drawable/ic_actions_menu.xml new file mode 100644 index 0000000000..4658db069c --- /dev/null +++ b/OsmAnd/res/drawable/ic_actions_menu.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + diff --git a/OsmAnd/res/drawable/ic_compass.xml b/OsmAnd/res/drawable/ic_compass.xml new file mode 100644 index 0000000000..03cf8d94db --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass.xml @@ -0,0 +1,13 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_bearing.xml b/OsmAnd/res/drawable/ic_compass_bearing.xml new file mode 100644 index 0000000000..46be57b5d8 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_bearing.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_bearing_white.xml b/OsmAnd/res/drawable/ic_compass_bearing_white.xml new file mode 100644 index 0000000000..46be57b5d8 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_bearing_white.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_niu.xml b/OsmAnd/res/drawable/ic_compass_niu.xml new file mode 100644 index 0000000000..90bb87a71b --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_niu.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_niu_white.xml b/OsmAnd/res/drawable/ic_compass_niu_white.xml new file mode 100644 index 0000000000..4e75ed5fa0 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_niu_white.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_white.xml b/OsmAnd/res/drawable/ic_compass_white.xml new file mode 100644 index 0000000000..db5bdd12d6 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_white.xml @@ -0,0 +1,13 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_dashboard_dark.xml b/OsmAnd/res/drawable/ic_dashboard.xml similarity index 93% rename from OsmAnd/res/drawable/ic_dashboard_dark.xml rename to OsmAnd/res/drawable/ic_dashboard.xml index 7b95603a20..3c225990ad 100644 --- a/OsmAnd/res/drawable/ic_dashboard_dark.xml +++ b/OsmAnd/res/drawable/ic_dashboard.xml @@ -5,6 +5,6 @@ android:viewportHeight="24"> diff --git a/OsmAnd/res/drawable/map_my_location.xml b/OsmAnd/res/drawable/ic_my_location.xml similarity index 100% rename from OsmAnd/res/drawable/map_my_location.xml rename to OsmAnd/res/drawable/ic_my_location.xml diff --git a/OsmAnd/res/drawable/map_quick_action.xml b/OsmAnd/res/drawable/ic_quick_action.xml similarity index 100% rename from OsmAnd/res/drawable/map_quick_action.xml rename to OsmAnd/res/drawable/ic_quick_action.xml diff --git a/OsmAnd/res/drawable/map_zoom_in.xml b/OsmAnd/res/drawable/ic_zoom_in.xml similarity index 88% rename from OsmAnd/res/drawable/map_zoom_in.xml rename to OsmAnd/res/drawable/ic_zoom_in.xml index 6b6cbf883d..2d130aad07 100644 --- a/OsmAnd/res/drawable/map_zoom_in.xml +++ b/OsmAnd/res/drawable/ic_zoom_in.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="#ffffff"/> diff --git a/OsmAnd/res/drawable/map_zoom_out.xml b/OsmAnd/res/drawable/ic_zoom_out.xml similarity index 87% rename from OsmAnd/res/drawable/map_zoom_out.xml rename to OsmAnd/res/drawable/ic_zoom_out.xml index 89851264ff..530679803b 100644 --- a/OsmAnd/res/drawable/map_zoom_out.xml +++ b/OsmAnd/res/drawable/ic_zoom_out.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="#ffffff"/> diff --git a/OsmAnd/res/drawable/widget_fps_day.xml b/OsmAnd/res/drawable/widget_fps_day.xml new file mode 100644 index 0000000000..53524499ca --- /dev/null +++ b/OsmAnd/res/drawable/widget_fps_day.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/OsmAnd/res/drawable/widget_fps_night.xml b/OsmAnd/res/drawable/widget_fps_night.xml new file mode 100644 index 0000000000..4e3836ec82 --- /dev/null +++ b/OsmAnd/res/drawable/widget_fps_night.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/OsmAnd/res/layout/dashboard_toolbar.xml b/OsmAnd/res/layout/dashboard_toolbar.xml index 24cff7957f..c32dc2b2a8 100644 --- a/OsmAnd/res/layout/dashboard_toolbar.xml +++ b/OsmAnd/res/layout/dashboard_toolbar.xml @@ -7,8 +7,9 @@ android:layout_width="fill_parent" android:layout_height="@dimen/dashboard_map_toolbar" android:background="@color/app_bar_color_light" - app:contentInsetLeft="4dp" - app:contentInsetStart="4dp" + android:padding="0dp" + app:contentInsetLeft="0dp" + app:contentInsetStart="0dp" app:contentInsetRight="0dp" app:contentInsetEnd="0dp"> @@ -25,17 +26,18 @@ android:gravity="start" android:orientation="horizontal"> - + tools:visibility="visible" /> + osmand:srcCompat="@drawable/ic_action_favorite" /> diff --git a/OsmAnd/res/layout/fragment_marker_options_bottom_sheet_dialog.xml b/OsmAnd/res/layout/fragment_marker_options_bottom_sheet_dialog.xml index cbb7d74d2f..0f5c0b674d 100644 --- a/OsmAnd/res/layout/fragment_marker_options_bottom_sheet_dialog.xml +++ b/OsmAnd/res/layout/fragment_marker_options_bottom_sheet_dialog.xml @@ -154,7 +154,7 @@ android:layout_gravity="center_vertical" android:layout_marginEnd="@dimen/bottom_sheet_icon_margin" android:layout_marginRight="@dimen/bottom_sheet_icon_margin" - tools:src="@drawable/map_directions"/> + tools:src="@drawable/ic_action_gdirections_dark"/> diff --git a/OsmAnd/res/layout/global_preference_toolbar.xml b/OsmAnd/res/layout/global_preference_toolbar.xml index dd754224b4..44b75ad95f 100644 --- a/OsmAnd/res/layout/global_preference_toolbar.xml +++ b/OsmAnd/res/layout/global_preference_toolbar.xml @@ -6,6 +6,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/actionModeBackground" + android:padding="0dp" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetRight="0dp" @@ -21,14 +22,9 @@ + android:paddingStart="@dimen/content_padding_half" + android:paddingEnd="@dimen/content_padding_half" /> diff --git a/OsmAnd/res/layout/map_marker_item.xml b/OsmAnd/res/layout/map_marker_item.xml index 0873d4701e..c078d3a8d2 100644 --- a/OsmAnd/res/layout/map_marker_item.xml +++ b/OsmAnd/res/layout/map_marker_item.xml @@ -120,7 +120,7 @@ android:contentDescription="@string/shared_string_more" android:focusable="false" android:scaleType="center" - osmand:srcCompat="@drawable/map_overflow_menu_white" + osmand:srcCompat="@drawable/ic_actions_menu" android:visibility="gone" android:layout_marginEnd="2dp" /> diff --git a/OsmAnd/res/layout/maps_in_category_fragment.xml b/OsmAnd/res/layout/maps_in_category_fragment.xml index 624e3a917e..072dd0902c 100644 --- a/OsmAnd/res/layout/maps_in_category_fragment.xml +++ b/OsmAnd/res/layout/maps_in_category_fragment.xml @@ -11,11 +11,12 @@ diff --git a/OsmAnd/res/layout/mode_view_route_preparation.xml b/OsmAnd/res/layout/mode_view_route_preparation.xml index 14ca12a135..c8e171984c 100644 --- a/OsmAnd/res/layout/mode_view_route_preparation.xml +++ b/OsmAnd/res/layout/mode_view_route_preparation.xml @@ -6,10 +6,10 @@ + tools:src="@drawable/ic_dashboard" /> - + android:layout_marginStart="@dimen/list_item_button_padding" + android:layout_marginLeft="@dimen/list_item_button_padding" + android:layout_marginEnd="@dimen/list_item_button_padding" + android:layout_marginRight="@dimen/list_item_button_padding" + android:contentDescription="@string/access_shared_string_navigate_up" + app:srcCompat="@drawable/ic_action_replace" /> diff --git a/OsmAnd/res/layout/profile_preference_toolbar.xml b/OsmAnd/res/layout/profile_preference_toolbar.xml index d2260f21ea..3b38185038 100644 --- a/OsmAnd/res/layout/profile_preference_toolbar.xml +++ b/OsmAnd/res/layout/profile_preference_toolbar.xml @@ -21,14 +21,9 @@ diff --git a/OsmAnd/res/layout/profile_preference_toolbar_with_switch.xml b/OsmAnd/res/layout/profile_preference_toolbar_with_switch.xml index 502dfde3ca..d34c987376 100644 --- a/OsmAnd/res/layout/profile_preference_toolbar_with_switch.xml +++ b/OsmAnd/res/layout/profile_preference_toolbar_with_switch.xml @@ -27,14 +27,9 @@ diff --git a/OsmAnd/res/layout/search_custom_poi.xml b/OsmAnd/res/layout/search_custom_poi.xml index 111fa6c3d5..7023b905ce 100644 --- a/OsmAnd/res/layout/search_custom_poi.xml +++ b/OsmAnd/res/layout/search_custom_poi.xml @@ -16,7 +16,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/osmand_orange" - android:minHeight="@dimen/dashboard_map_toolbar" + android:minHeight="@dimen/toolbar_height" android:theme="?attr/toolbar_theme" app:contentInsetLeft="54dp" app:contentInsetStart="54dp" diff --git a/OsmAnd/res/layout/search_dialog_fragment.xml b/OsmAnd/res/layout/search_dialog_fragment.xml index 9d57a5f09b..964a025182 100644 --- a/OsmAnd/res/layout/search_dialog_fragment.xml +++ b/OsmAnd/res/layout/search_dialog_fragment.xml @@ -22,6 +22,7 @@ android:layout_height="@dimen/dashboard_map_toolbar" android:background="?attr/bg_color" android:minHeight="@dimen/dashboard_map_toolbar" + android:padding="0dp" android:theme="?attr/toolbar_theme" app:contentInsetLeft="54dp" app:contentInsetStart="54dp" @@ -38,6 +39,7 @@ android:layout_height="@dimen/dashboard_map_toolbar" android:background="@color/osmand_orange" android:minHeight="@dimen/dashboard_map_toolbar" + android:padding="0dp" android:theme="?attr/toolbar_theme" android:visibility="gone" app:contentInsetLeft="54dp" diff --git a/OsmAnd/res/layout/waypoint_reached.xml b/OsmAnd/res/layout/waypoint_reached.xml index 607a4fdb4b..9966e586b4 100644 --- a/OsmAnd/res/layout/waypoint_reached.xml +++ b/OsmAnd/res/layout/waypoint_reached.xml @@ -108,7 +108,7 @@ android:contentDescription="@string/shared_string_more" android:focusable="false" android:scaleType="center" - osmand:srcCompat="@drawable/map_overflow_menu_white" + osmand:srcCompat="@drawable/ic_actions_menu" android:visibility="gone" tools:visibility="visible"/> diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 758561c2a9..1f9ab4efe2 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -419,7 +419,8 @@ مساء صباحاً مكان للوقوف - يساعد هذا الملحق بحفظ الأماكن التي ركنت بها سيارتك والوقت المتبقي للركن (في حالة وجود وقت محدد). كل من المكان والزمن متواجدان على لوحة التحكم وكذلك في المؤشرات على شاشة الخريطة. يمكن إضافة منبه إلى التقويم للتذكير. + يساعد هذا الملحق بحفظ الأماكن التي ركنت بها سيارتك والوقت المتبقي للركن (في حالة وجود وقت محدد). +\nكل من المكان والزمن متواجدان على لوحة التحكم وكذلك في المؤشرات على شاشة الخريطة. يمكن إضافة منبه إلى التقويم للتذكير. مكان الموقف موقف السيارة احذف علامة وقوف السيارات @@ -498,12 +499,10 @@ تركيز تلقائي التركيز البؤري نوع الكاميرا - * بعد بدء التعديل: -\n المس الخريطة لوضع نقطة. -\n اضغط باستمرار على الخريطة -\n لحذف النقطة السابقة. * بعد إنهاء العديل: -\n استمر بالضغط على نقطة أو على -\n خط القياس للمزيد من الخيارات. + * انقر لتحديد نقطة. +\n  * اضغط لفترة طويلة على الخريطة لحذف النقطة السابقة. +\n  * اضغط لفترة طويلة على نقطة لعرض وإرفاق الوصف. +\n  * اضغط على أداة القياس لمعرفة المزيد من الإجراءات. طبقة التضاريس طبقة التضاريس بيانات الخطوط المحيطية @@ -549,7 +548,8 @@ اختيار المسار النشط الحالي اختيار مسار محفوظ تذكر اختياري - إجمالي الذاكرة الأصلية المخصصة من قبل التطبيق %1$s م.ب (دلفيك %2$s م.ب, أخرى %3$s م.ب). الذاكرة النسبية %4$s م.ب (حد الأندرويد %5$s م.ب, دلفيك %6$s م.ب). + إجمالي الذاكرة الأصلية المخصصة من قبل التطبيق %1$s م.ب (دلفيك %2$s م.ب, أخرى %3$s م.ب). +\nالذاكرة النسبية %4$s م.ب (حد الأندرويد %5$s م.ب, دلفيك %6$s م.ب). مشي دراجة نارية قارب @@ -589,10 +589,8 @@ \n يجري تطوير أوسماند بنشاط ويعتمد مشروعنا والتقدم المستمر على المساهمات المالية لتطوير واختبار وظائف جديدة. يرجى النظر في شراء أوسماند+ ، أو تمويل ميزات جديدة محددة أو تقديم تبرع عام على https://osmand.net.
عن طريق هذه الأداة يمكنك الوصول إلى أنواع عديدة من خرائط النت (تدعى بالقطع أو النقطية)، من قطع OSM مسبقة ( مثل Mapnik) إلى صور أقمار وطبقات مخصصة كخرائط الطقس، الخرائط الجيولوجية، طبقات التضاريس...إلخ. \n -\n \nكل من هذه الخرائط يمكن أن تستخدم إما كخرائط رئيسية (قاعدية) تظهر على واجهة التطبيق، أو كطبقة فوقية أو تحتية لخريطة قاعدية آخرى( كخرائط التطبيق المحلية). لجعل أي طبقة تحتية خريطة أكثر وضوحا، بعض عناصر خرائط التطبيق التوجيهيه يمكن إخفاءها في قائمة \'ضبط الخريطة\' حسب الرغبة. \n -\n \nأجزاء الخرائط يمكن الحصول عليها من مصادر إنترنت، أو تحضيرها للإستخدام دون إنترنت ( ونسخها يدويا إلى مجلد بيانات التطبيق) كقاعدة بيانات SQLite والتي يمكن إنتاجها عن طريق مجموعة متنوعة من أدوات تحضير الخرائط المستقلة. التغييرات POI داخل التطبيق لا تؤثرعلى ملفات الخرائط المحملة، يتم حفظ التغييرات إلى ملف محلي بدلا من ذلك. وضع تركيز الكاميرا: @@ -630,7 +628,8 @@ حالة وضع السكون استخدمها لتشغيل أوسماند عندما تكون الشاشة مُطفأة. لا يوجد مساحة كافية لتحميل %1$s م.ب المساحة الخالية: %2$s. - تحميل {0} ملف ؟ مساحة التخزين المستخدمة هي {1} مب (المساحة المتوفرة هي {2} مب). + تحميل {0} ملف(ات) ؟ +\n مساحة التخزين المستخدمة هي {1} مب (المساحة المتوفرة هي {2} مب). السمة الشفافة المكتبات الأصيلة غير مدعومة على هذا الجهاز. تهيئة المكتبة الأصيلة… @@ -726,7 +725,9 @@ عكس المسار استخدم الوجهة الحالية يمر على طول المسار باكمله - فعل الخريطة المحملة من: الضبط ثم مصدر الخريطة. + خريطة التنقل المتوفرة حاليا لهذا الموقع. +\n +\nلتفعليها \'القائمة\' → \'تكوين الخريطة\' → \'مصدر الخريطة ...\' → \'خرائط متجهة بدون اتصال\'. مصدر التوجيه الصوتي اختيار قناة لتشغيل التوجيه الصوتي. صوت المكالمة الهاتفية ( كما يحاول قطع ستريو بلوتوث السيارة ) @@ -773,7 +774,8 @@ ميل ساعة ميل شارك المكان باستخدام - الموقع : %1$s %2$s + الموقع: %1$s +\n%2$s إتبع رابط متصفح الويب لمشاهدة المكان %1$s أو استعمل رابط أندرويد الخاص %2$s إرسال الموقع مشاركة المكان @@ -934,7 +936,8 @@ زيارة بعد زيارة قبل محاكاة تخيلية - N %1$s E %2$s + خط العرض %1$s +\nخط الطول %2$s الأسئلة الشائعة، التغييرات الحديثة، وأخرى. إعدادات الملاحة إعدادات عامة @@ -1029,7 +1032,9 @@ فشل في إعادة التسمية. عودة إلى الخريطة شارك ملاحظة - الموقع : N %1$s E %2$s + الموقع: +\n Lat %1$s +\n Lon %2$s ملاحظات خريطة إنترنت الطرق فقط @@ -1493,7 +1498,10 @@ أقل مهلة بين الاخطارات. الخريطة مرتبطة بالموقع عريض - المستخدم المجهول لا يمكنه : - إنشاء مجموعة; - مزامنة المجموعات والأجهزة مع السيرفر; - إدارة المجموعات والأجهزة من خلال لوحة تحكم خاصة على الموقع. + المستخدم المجهول لا يمكنه : +\n- إنشاء مجموعة; +\n- مزامنة المجموعات والأجهزة مع السيرفر; +\n- إدارة المجموعات والأجهزة من خلال لوحة تحكم خاصة على الموقع. تطبيق الملاحة أوسماند خطأ أثناء تحميل البيانات من الخادم. تحديث البيانات المحلية عبر الإنترنت ؟ @@ -1598,7 +1606,9 @@ نحن بحاجة اليه لكي نوفر لك معلومات حول المساهمات. حدد علامة الخريطة عرض شريط الشفافية - المساحة غير كافية! المساحة المطلوبة {3} م.ب مؤقتاً {1} م.ب دائمة المتوفر {2} م.ب + لا توجد مساحة كافية! +\n {3} MB مطلوب مؤقتا ، {1} ميجا بايت بشكل دائم. +\n (فقط {2} ميغابايت المتاحة.) نقطة الانطلاق الصوت حذف @@ -1747,7 +1757,8 @@ الدخول عبر الخريطة عرض عند البدء التأثير النسبي - تحميل {0} ملف؟ مساحة التخزين المستخدمة هي {3} مب مؤقتة، {1} مب دائمة. (المساحة المتوفرة هي {2} مب.) + تحميل {0} ملف؟ +\nمساحة التخزين المستخدمة هي {3} مب مؤقتة، {1} مب دائمة. (المساحة المتوفرة هي {2} مب.) مسافة المسلك خطأ تحيين القائمة المحلية لPOI. تحيين الPOI @@ -1900,7 +1911,9 @@ أوسماند ليس لديه إذن لاستخدام ذاكرة البطاقة هل تريد حقا حفظ POI بدون تحديد نوعه؟ هناك خيار جديد لتحكم بشكل مرن بالتطبيق عبر لوحة القياس أو القائمة الثابتة. اختيارك يمكن تغييره دائما في إعدادات لوحة القياس. - ملاحة أوسماند دون نت ميزة تجريبية وهي لا تعمل لمسافات تزيد عن 20 كم. خدمة الملاحة حولت مؤقتا إلى CloudMade على الإنترنت. + ملاحة أوسماند دون نت ميزة تجريبية وهي لا تعمل لمسافات تزيد عن 20 كم. +\n +\n خدمة الملاحة حولت مؤقتا إلى CloudMade على الإنترنت. إصدار {0} تثبيت بنجاح ({1}). جار تحميل الإصدار… هل تريد تثبيت أوسماند - {0} من {1} {2} مب ؟ @@ -1973,7 +1986,8 @@ البيانات الصوتية المحددة تالفة بطاقة الذاكرة غير متاحة. \nلن تكون قادرا على رؤية الخرائط أو العثور على أماكن. - بطاقة الذاكرة في وضع القراءة فقط. يمكنك فقط مشاهدة الخريطة المحملة مسبقا ولا يمكنك التحميل من الإنترنت. + بطاقة الذاكرة في وضع القراءة فقط. +\n يمكنك فقط مشاهدة الخريطة المحملة مسبقا ولا يمكنك التحميل من الإنترنت. انعطف يميناً بشكل حاد انعطف يساراً بشكل حاد قم بالدوران وواصل @@ -1982,7 +1996,8 @@ المسار اللاحق للرحلة حساب الجزء الأول فقط من الطريق للرحلات الطويلة. إلغاء - خرائط محلية وملاحة + خرائط محلية +\nوملاحة إنشاء إحداثية POI عدد الصفوف في الدفعة %1$s سيتم حذف POI بمجرد إرسال التعديلات @@ -2107,8 +2122,7 @@ إضافة للمفضلة إضافة إجراء حذف إجراء - هل تريد حذف الإجراء -\n \"%s\" ؟ + هل تريد حذف الإجراء \"%s\" ؟ اسم الإجراء إضافة خطأ إلى OSM عرض مربع حوار الأماكن المفضلة @@ -2165,7 +2179,8 @@ قم بالضغط على الزر لفترة أطوَل ثم اسحبه لتغيير مكانه على الشاشة. معالم العمق البحري تقسيم المسارات آلياً إلى أجزاء بعد كل فراغ - تقصير رمز التموضع المفتوح يُرجى تقديم رمزٍ كامل + تقصير رمز التموضع المفتوح +\n يُرجى تقديم رمزٍ كامل اسم الإجراء السريع مكرر سوف تكون تتمة هذه الرسالة تلقائية في المجال المخصص للتعليق. مجلد جديد @@ -2314,7 +2329,9 @@ بدء مقطع جديدة بعد فارق 6 دقائق، مسار جديد بعد فارق 2 ساعة، أو ملف جديد بعد فارق أطول إذا تغير التاريخ. متوقف مؤقتاً قد يكون المسار طويلا جداً للحساب. يرجى إضافة وجهات وسطى إذا لم يتم العثور على نتيجة خلال 10 دقائق. - أوسماند(توجيهات OSM للتنقل الآلية) تطبيق خريطة وتنقل مع إمكانية الوصول إلى بيانات (OSM) مجاناً وفي جميع أنحاء العالم، وبجودة عالية. استمتع بمستكشف بالصوت والصورة، وعرض POI (نقاط الاهتمام)، إنشاء وإدارة مسارات GPX، استخدام عرض ارتفاع بيانات الخطوط الكنتورية (عن طريق المكون)، اختيار بين نمط القيادة، ركوب الدراجات والمشاة، التعديل على الموقع وغيرها. + أوسماند(توجيهات OSM للتنقل الآلية) تطبيق خريطة وتنقل مع إمكانية الوصول إلى بيانات (OSM) مجاناً وفي جميع أنحاء العالم، وبجودة عالية +\n +\n. استمتع بمستكشف بالصوت والصورة، وعرض POI (نقاط الاهتمام)، إنشاء وإدارة مسارات GPX، استخدام عرض ارتفاع بيانات الخطوط الكنتورية (عن طريق المكون)، اختيار بين نمط القيادة، ركوب الدراجات والمشاة، التعديل على الموقع وغيرها. التنقل عبر GPS \n• يمكنك أن تختار بين وضع دون اتصال (لا رسوم تجوال عندما تكون في الخارج) أو بالإنترنت (أسرع) \n• التوجيه الصوتي بالتفصيل يوجهك طوال الطريق (مسجل أو مدرج) @@ -2365,14 +2382,20 @@ \n• أنتاركتيكا: * \nمعظم البلدان في جميع أنحاء العالم متاحة للتحميل! \nاحصل على برنامج تنقل موثوق به في بلدك - سواءاً في فرنسا، ألمانيا، المكسيك، المملكة المتحدة، إسبانيا، هولندا، الولايات المتحدة الأمريكية، روسيا، البرازيل أو أي دولة أخرى. - أوسماند بلس (توجيهات OSM للملاحة الآلية) تطبيق خريطة وملاحة مع إمكانية الوصول إلى بيانات الموقع (OSM) مجاناً وفي جميع أنحاء العالم، وبجودة عالية. استمتع بالملاحة بصوت والصورة، عرض النقاط المهمة حولك (POI)، وإنشاء وإدارة مسارات GPX باستخدام معلومات عن تصور وعلو الخطوط الكنتورية، خياراً بين القيادة، ركوب الدراجات، وضع المشاة، التعديل على OSM وأكثر من ذلك بكثير. أوسماند بلس هو إصدار للتطبيق مدفوع الأجر. قبل شرائه، ادعم المشروع، مول تطوير الميزات الجديدة واحصل على آخر التحديثات. بعض الميزات الرئيسية: + أوسماند بلس (توجيهات OSM للملاحة الآلية) تطبيق خريطة وملاحة مع إمكانية الوصول إلى بيانات الموقع مجاناً وفي جميع أنحاء العالم، وبجودة عالية. +\n +\nاستمتع بالملاحة بصوت والصورة، عرض النقاط المهمة حولك (POI)، وإنشاء وإدارة مسارات GPX باستخدام معلومات عن تصور وعلو الخطوط الكنتورية، خياراً بين القيادة، ركوب الدراجات، وضع المشاة، التعديل على OSM وأكثر من ذلك بكثير. +\n +\nأوسماند بلس هو إصدار للتطبيق مدفوع الأجر. قبل شرائه، ادعم المشروع، بتمويل لتطوير الميزات الجديدة والحصول على آخر التحديثات. +\n +\n بعض الميزات الرئيسية: الملاحة \n• يعمل على الإنترنت (سريع) أو في وضع غير متصل (لا رسوم تجوال خارج الوطن) \n• توجيه صوتي بالتفصيل (الأصوات المسجلة أو مدرجة) \n• موجه مسار اختياري، عرض اسم الشارع، والوقت المقدر للوصول \n• يدعم نقاط وسيطة خلال مسارك \n• إعادة تلقائية للتوجيه كلما انحرفت عن الطريق -\n• البحث عن الأماكن حسب العنوان، النوع (مثل: مطعم، فندق، محطة وقود، متحف)، أو حسب الإحداثيات الجغرافية +\n• البحث عن الأماكن حسب العنوان، النوع (مثل: مطعم، فندق، محطة وقود، متحف)،أو حسب الإحداثيات الجغرافية
عرض الخريطة \n• عرض موقعك والتوجيه \n• محاذاة اختيارية للصورة وفق البوصلة أو توجيه الحركة @@ -2712,14 +2735,14 @@ اختر المدينة أولاً استعادة تطبيق من طرف ثالث - عند التفعيل ستبقى العلامات المضافة من مجموعة إحداثيات أو من نقاط طريق على الخريطة عند اختيار \"علامة مُجتازة\". -\n إذا كانت المجموعة غير نشطة ستختفي العلامات من الخريطة. + عند التفعيل ستبقى العلامات المضافة من مجموعة إحداثيات أو من نقاط طريق على الخريطة عند اختيار \"علامة مُجتازة\". إذا كانت المجموعة غير نشطة ستختفي العلامات من الخريطة. إبقاء العلامات المتجاوزة على الخريطة هناك المزيد من وسائل النقل في هذا الموقف. يرجى إعطاء إذن تحديد الموقع للتطبيق لكي يواصل. شكرا على الرد النقطة أو الطريق غير موجود. - لايوجد نتائج للبحث؟ أخبرنا برأيك + لايوجد نتائج للبحث؟ +\nأخبرنا برأيك زيادة نصف قطر البحث إلى %1$s إرسال استفسار البحث؟ العالم @@ -2847,7 +2870,7 @@ خط مباشر من موقعك إلى العلامة النشطة. عرض سهم واحد أو اثنين ليشير إلى اتجاه العلامة النشطة. طريقة عرض المسافة من موقعي إلى العلامات النشطة. - عدد الأسهم تجاه العلامات النشطة ( للملاحة في الصحراء): + عدد الأسهم تجاه العلامات النشطة ( للملاحة في الصحراء). أسود ملفات GPX تشغيل @@ -3233,7 +3256,9 @@ حرك يدك أعلى الشاشة لتشغيلها أثناء التنقل. تحديثات الخريطة الشهرية تحديثات الخريطة كل ساعة - سيتم إرسال استعلام البحث إلى: \"%1$s\" ، بالإضافة إلى موقعك. لا يتم جمع المعلومات الشخصية ، فقط بيانات البحث اللازمة لتحسين البحث. + سيتم إرسال استعلام البحث إلى: \"%1$s\" ، بالإضافة إلى موقعك. +\n +\nلا يتم جمع المعلومات الشخصية ، فقط بيانات البحث اللازمة لتحسين البحث. لامركبة ترام تجنب مركبة الترام لا يوجد حافلات @@ -3257,7 +3282,9 @@ عرض الإحداثيات سياسة الخصوصية ساعدنا في جعل أوسماند أفضل - السماح لأوسماند بجمع بيانات استخدام التطبيقات المجهولة ومعالجتها. نحن لا نجمع أو نخزن بيانات عن موقعك ، أو أي مواقع تقوم بعرضها علي الخريطة. + السماح ل OsmAnd بجمع ومعالجة بيانات استخدام التطبيق المجهول. لا يتم جمع بيانات حول موقعك أو المواقع التي تعرضها على الخريطة. +\n +\nقم بإعدادها في أي وقت لاحق في \'الإعدادات\' → \'الخصوصية والأمان\'. اختر نوع البيانات التي تريد مشاركتها: الخرائط التي تم تنزيلها الشاشات المزارة @@ -3444,7 +3471,7 @@ متاح إضافة فئة مخصصة اظهر في الليل فقط - استعادة جميع إعدادات البرنامج المساعد plugin إلى الحالة الافتراضية. + استعادة جميع إعدادات البرنامج المساعد إلى الحالة الافتراضية. تمت استعادة جميع إعدادات الوضع إلى الحالة الافتراضية. %1$s/%2$s غروب الشمس على %1$s @@ -3688,5 +3715,5 @@ تغيير ملف تعريف التطبيق لم يتم العثور على ملفات التعريف المحددة لهذا الإجراء. خريطة عامة للعالم (تفصيلية) - نوع غير مدعوم + نوع غير معتمد \ No newline at end of file diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index a6795fd120..d497a678d3 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -319,7 +319,7 @@ Motorradparkplatz Motorradgeschäft Autobahnkreuz - Passstraße + Gebirgspass Multi-Sport Museum Musikinstrumente @@ -2711,8 +2711,8 @@ Hygrometer: nein Datumsanzeige Datumsanzeige: nein - Informationsanzeige für Passagiere: ja - Informationsanzeige für Passagiere: nein + Fahrgastinformationsanzeige: ja + Fahrgastinformationsanzeige: nein Mindestalter Verkehrsspiegel Delegation @@ -3826,4 +3826,5 @@ Grundwasser Rohr Druck + Pumpenzustand: fehlender Arm \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index f7fa57bcae..3403e4225f 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -379,7 +379,7 @@ Freunde Sehenswertes Andere - "Name " + Name Kategorie Nicht verwendet Laden Sie die Basis-Weltkarte herunter, um einen Überblick über die ganze Welt bei niedrigen Vergrößerungsstufen zu erhalten. @@ -465,7 +465,7 @@ mi Standort mitteilen mittels Standort: %1$s -%2$s +\n%2$s Um den Ort zu sehen, folgen Sie dem Weblink %1$s oder dem Android-Intent-Link %2$s Standort senden Standort mitteilen @@ -541,7 +541,7 @@ Aktualisieren Schnellste Route Zur Berechnung der schnellsten Route aktivieren oder für eine kraftstoffsparende Route deaktivieren. - Bei Zoomlevel {0} lade {1} Kacheln\n ({2} MB) + Bei Zoomlevel {0} lade {1} Kacheln ({2} MB) Karte herunterladen Größte zu ladende Vergrößerung Diese Karte konnte nicht geladen werden @@ -1492,8 +1492,8 @@ \nDiese Ansicht kann zurückgestellt werden, indem sie hier wieder deaktiviert wird oder die \'Kartendarstellung\' unter \'Karte konfigurieren\' wie gewünscht geändert wird.
Audio Standort: - Lat %1$s - Lon %2$s +\n Lat %1$s +\n Lon %2$s
Audio-/Video-Notizen Online-Karte Nur Straßen @@ -1567,7 +1567,7 @@ Veröffentlicht Suchbegriff Lat %1$s -Lon %2$s +\nLon %2$s Abmelden Deaktiviert Höhenbeschränkung @@ -2043,7 +2043,7 @@ Lon %2$s Unbegrenzte Karten-Downloads, -Aktualisierungen und die Wikipedia-Erweiterung. Für %1$s abonnieren Abonnieren - Monatliche Abonnementabrechnung. Jederzeit auf Google Play kündbar. + Das Abonnement wird pro ausgewähltem Zeitraum berechnet. Sie können das Abonnement jederzeit über Google Play kündigen. Spende an die OSM-Gemeinschaft Ein Teil Ihrer Spende erhalten OSM-Mitwirkende. Die Abonnementskosten bleiben gleich. Das Abonnement macht stündliche, tägliche und wöchentliche Updates sowie unbegrenzte Downloads aller Karten weltweit möglich. @@ -2077,7 +2077,7 @@ Lon %2$s Filter: Mindestgenauigkeit für die Aufzeichnung eines Punktes. Farbschema für Höhenlinien Fortfahren - "Pause " + Pause Aufgezeichnet Keine Daten Strecke @@ -2224,7 +2224,7 @@ Lon %2$s Wegpunkte, POI, markierte Orte Richtungsänderungen entlang dieser Route Neuen Ordner hinzufügen - Steigung + Gefälle Bevorzugte Geländeform: flach oder bergig. Berber Keine anonymen App-Nutzungsdaten versenden @@ -2439,7 +2439,7 @@ Lon %2$s Keine Fotos hier. Fotos von der Straße für jedermann. Plätze entdecken, mitwirken, die Welt im Bild festhalten. Verbessern Sie die Bildberichterstattung mit Mapillary - Installieren Sie die App \'Mapillary\', um dieser Kartenposition ein oder mehrere Fotos hinzuzufügen. + Installieren Sie Mapillary, um Fotos zu dieser Kartenposition hinzuzufügen. Mapillary öffnen Mapillary-Foto Berechtigungen @@ -2554,7 +2554,7 @@ Lon %2$s Passierte ausblenden Auswahl der Entfernungs- und Richtungsangabe für Kartenmarkierungen in der Karte: Kartenausrichtungsgrenzwert - Auswählen, bei welcher Geschwindigkeit die Kartenausrichtung von \'Nach Bewegungsrichtung\' auf \'Nach Kompass\' umschaltet + Auswählen, bei welcher Geschwindigkeit die Kartenausrichtung von \'Nach Bewegungsrichtung\' auf \'Nach Kompass\' umschaltet. Kartenmarkierung in den Verlauf verschoben Notiz konnte nicht geändert werden. Notiz ändern @@ -2612,7 +2612,7 @@ Lon %2$s Nach Datum Nach Typ kann als Favoriten oder GPX-Datei importiert werden. - Audio-, Video- oder Fotonotizen zu jedem Punkt auf der Karte über Bedienelement oder Kontextmenü hinzufügen. + Audio-, Video- oder Fotonotizen zu einem beliebigen Punkt auf der Karte hinzufügen, indem Sie die Widgets oder Kontextmenüs verwenden. Audio-/Video-Notizen nach Datum Ein Tippen auf die Karte schaltet die Steuertasten und Bedienelemente um. • Neu: Unterstützung weltweiter Offline-Reiseführer. Verknüpfung beschriebener Sehenswürdigkeiten zur Landkarte. Die Inhalte basieren derzeit auf Wikivoyage. @@ -2650,7 +2650,7 @@ Lon %2$s Richtungsanzeiger von Ihrem Standort zu aktiven Markierungspunkten einblenden. Ein oder zwei Pfeile anzeigen, die die Richtung zu den aktiven Markierungen angeben. Wählen Sie aus, wie der Abstand zu aktiven Markierungen angezeigt werden soll. - Wählen Sie die Anzahl der Fahrtrichtungsanzeiger: + Wählen Sie die Anzahl der Fahrtrichtungsanzeiger. %1$s bearbeitet, Summe %2$s mBTC OSM-Empfänger Spenden insgesamt @@ -2806,8 +2806,9 @@ Lon %2$s Als Track speichern Sie haben %1$s Punkte hinzugefügt. Geben Sie einen Dateinamen ein und klicken Sie auf „Speichern“. Punkt %1$s gelöscht - Ihre Suchanfrage wird zusammen mit Ihrem Standort gesendet an: „%1$s“. -\nPersönliche Daten werden nicht gesammelt, zur Verbesserung der Suche werden nur die Suchdaten benötigt. + Ihre Suchanfrage wird an: \"%1 s\" gesendet, zusammen mit Ihrem Standort. +\n +\nPersönliche Informationen werden nicht gesammelt, sondern nur Suchdaten, die zur Verbesserung der Suche benötigt werden. Keine Ergebnisse? \nNehmen Sie Kontakt mit uns auf. Suchanfrage senden? @@ -3427,7 +3428,7 @@ Lon %2$s Symbol, Farbe und Name Profilliste bearbeiten Ausgewähltes Profil - Durch Tippen auf %1$s werden alle Ihre Änderungen verworfen. + Durch Antippen von %1$s werden alle Ihre Änderungen verworfen. Alle Profil-Einstellungen auf den Ausgangszustand zurücksetzen. Alle Profil-Einstellungen zurücksetzen\? %1$s: %2$s @@ -3483,7 +3484,7 @@ Lon %2$s System-App verwenden Auslöseton der Kamera Durch das Zurücksetzen auf die Standardeinstellung wird die Sortierung auf den Standardzustand nach der Installation zurückgesetzt. - Eingabehilfenmodus ist in Ihrem System deaktiviert. + Einstellung \'Eingabehilfe\' ist in Ihrem Android System ausgeschaltet. Zeitlimit für den Systembildschirm verwenden Standardmäßig deaktiviert. Wenn OsmAnd im Vordergrund läuft, wird der Bildschirm nicht ausgeblendet. \n @@ -3526,7 +3527,7 @@ Lon %2$s Ihre aufgezeichneten Tracks befinden sich in %1$s oder im OsmAnd-Ordner. Bitte geben Sie einen Namen für das Profil an Einstellungen öffnen - Plugin deaktiviert + Plugin aus Dieses Plugin ist eine separate Anwendung, Sie müssen es separat entfernen, wenn Sie nicht mehr vorhaben, es zu verwenden. \n \nDas Plugin verbleibt nach dem Entfernen von OsmAnd auf dem Gerät. @@ -3534,7 +3535,7 @@ Lon %2$s %1$s — %2$s — %3$s Routing Zusätzliche Daten einschließen - Das importierte Profil enthält zusätzliche Daten. Klicken Sie auf \'Importieren\', um nur Profildaten zu importieren, oder wählen Sie zusätzliche Daten zum Importieren aus. + Das importierte Profil enthält zusätzliche Daten. Klicken Sie auf \"Importieren\", um nur Profildaten zu importieren, oder wählen Sie zusätzliche Daten aus. Sie können zusätzliche Daten zum Exportieren zusammen mit dem Profil auswählen. Antarktis Sie finden Ihre noch nicht übertragenen Änderungen oder OSM-Fehler in %1$s. Hochgeladene Punkte werden nicht mehr angezeigt. @@ -3545,7 +3546,7 @@ Lon %2$s Auf direktem Weg Geo-Intent \'%s\' konnte nicht analysiert werden. App-Standard (%s) - Neuberechnung deaktivieren + Keine Neuberechnung Mindestabstand für Neuberechnung der Route Die Route wird neu berechnet, wenn der Abstand zur Route größer ist als der festgelegte Wert Benutzerdefiniertes Profil @@ -3596,17 +3597,17 @@ Lon %2$s Eine Schaltfläche zum Ein- und Ausblenden der Geländeebene auf der Karte. Gelände einblenden Gelände ausblenden - Gelände ein-/ausblenden + Gelände ein- / ausblenden Schummerung Zoomstufen Transparenz Stellen Sie die minimale und maximale Zoomstufe ein, bei der die Ebene angezeigt wird. Gelände - Pisten - Aktivieren Sie diese Option, um die Schatten- oder Hangkarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website + Gefälle + Aktivieren Sie diese Option, um die Schatten- oder Hangkarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website. Legende - Lesen Sie mehr über Pisten in %1$s. - Zusätzliche Karten sind erforderlich, um Pisten auf der Karte anzuzeigen. + Lesen Sie mehr über Gefällekarten in %1$s. + Zusätzliche Karten sind erforderlich, um Gefälle auf der Karte anzuzeigen. Für die Darstellung der Schummerung werden zusätzliche Karten benötigt. Min Schummerungs-Karte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Niederungen. @@ -3615,7 +3616,7 @@ Lon %2$s Skitouren Schneemobil Benutzerdefiniertes OsmAnd-Plugin - Farbliche Kennzeichnung von Pisten im Gelände. + Gefällekarten verwendet Farben, um die Geländesteilheit zu visualisieren. Einen anderen Punkt durch diesen ersetzen Die Änderungen wurden auf das \'%1$s\' Profil angewendet. Konnte nicht von \'%1$s\' lesen. @@ -3665,16 +3666,18 @@ Lon %2$s Tschetschenisch Bairisch Baschkirisch - Hauptaktionen enthalten nur 4 Schaltflächen. + Hat nur vier Schaltflächen. Wählen Sie die Sprachen aus, in denen Wikipedia-Artikel auf der Karte erscheinen sollen. Sie können zwischen allen verfügbaren Sprachen wechseln, während Sie den Artikel lesen. Diese Elemente werden aus dem Menü ausgeblendet, aber die entsprechenden Optionen oder Plugins funktionieren weiterhin. Ordnen Sie Elemente aus %1$s neu an oder blenden Sie sie aus. %1$s / %2$s - Ihr Google Play-Konto wird beim Kauf eines Abonnements belastet, -\nund wenn es abläuft (nach einem Monat, drei Monaten oder einem Jahr) -\nverlängert es sich nicht von selbst, wenn es vorher in Ihren Google Play-Einstellungen gekündigt wurde. + Die Bezahlung wird Ihrem Google Play-Konto bei der Bestätigung des Kaufs belastet. +\n +\n Das Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Ihr Konto wird für den Verlängerungszeitraum (Monat / drei Monate / Jahr) nur am Verlängerungsdatum belastet. +\n +\n Sie können Ihre Abonnements verwalten und kündigen, indem Sie zu Ihren Google Play-Einstellungen gehen. Suche nach POI-Typen - Kombinieren Sie POI-Typen aus verschiedenen Kategorien. Tippen Sie auf \"Wechseln\", um alle auszuwählen, tippen Sie auf die linke Seite für die Kategorieauswahl. + Kombinieren Sie POI-Typen aus verschiedenen Kategorien. Tippen Sie auf den Schalter, um alle auszuwählen, tippen Sie auf die linke Seite zur Kategorieauswahl. Trenner Schnellaktion Zirkel @@ -3687,24 +3690,24 @@ Lon %2$s Reisen (Wikivoyage und Wikipedia) Abonnement - OsmAnd Live OsmAnd Einkäufe - Der Leitfaden zur Symbolik einer Karte + Der Leitfaden zur Symbolik einer Karte. Navigationsprofile - • Neue Offline-Steigungskarten -\n -\n• Vollständige Anpassung von Favoriten und GPX-Wegpunkten - benutzerdefinierte Farben, Symbole, Formen -\n -\n• Anpassen der Reihenfolge der Elemente im Kontextmenü, Karte konfigurieren, Schublade -\n -\n• Wikipedia als separate Ebene in Karte konfigurieren, nur benötigte Sprachen auswählen -\n -\n• Erstellen Sie Ihre eigenen POI-Filter/Karten mit absoluter Flexibilität -\n -\n• Optionen zur Wiederherstellung von Einstellungen für benutzerdefinierte Profile hinzugefügt -\n -\n• Vollständige GPX-Routen aus der Navigation unterstützen Verkehrsspuren und vollständige Abbiegeanweisungen -\n -\n• Größe der Bedienoberfläche auf Tablets verbessert -\n + • Neue Offline-Steigungskarten +\n +\n• Vollständige Anpassung von Favoriten und GPX-Wegpunkten - benutzerdefinierte Farben, Symbole, Formen +\n +\n• Anpassen der Reihenfolge der Elemente im \"Kontextmenü\", \"Karte konfigurieren\" und \"Schublade\" +\n +\n• Wikipedia als separate Ebene in Karte konfigurieren, nur benötigte Sprachen auswählen +\n +\n• Erstellen Sie Ihre eigenen POI-Filter / Karten mit absoluter Flexibilität +\n +\n• Optionen zur Wiederherstellung von Einstellungen für benutzerdefinierte Profile hinzugefügt +\n +\n• Vollständige GPX-Routen aus der Navigation unterstützen Verkehrsspuren und vollständige Abbiegeanweisungen +\n +\n• Größe der Bedienoberfläche auf Tablets verbessert +\n \n• Fehler mit RTL behoben \n \n @@ -3712,15 +3715,22 @@ Lon %2$s Sie können auf diese Aktionen zugreifen, indem Sie auf die Schaltfläche \"%1$s\" tippen. Öffentliche Verkehrsmittel ausblenden Öffentliche Verkehrsmittel anzeigen - Öffentliche Verkehrsmittel anzeigen/ausblenden - Eine Schaltfläche zum Ein- oder Ausblenden der öffentlichen Verkehrsmittel auf der Karte. - POI erstellen/bearbeiten + Öffentliche Verkehrsmittel anzeigen / ausblenden + Schaltfläche zum Ein- oder Ausblenden der öffentlichen Verkehrsmittel auf der Karte. + POI erstellen / bearbeiten Parkpositionen Favorit hinzufügen / bearbeiten Standard-Reihenfolge der Elemente wiederherstellen Zurück zur Bearbeitung - Durch Antippen der Aktionsschaltfläche können Sie zwischen den ausgewählten Profilen wechseln. + Die Aktionsschaltfläche schaltet zwischen den ausgewählten Profilen um. Profil hinzufügen - Anwendungsprofil ändern - Für diese Aktion ausgewählte Profile nicht gefunden. - \ No newline at end of file + App-Profil ändern + Konnte keine solchen Profile finden. + Weltübersichtskarte (detailliert) + Nicht unterstützter Typ + Passen Sie die Menge der Elemente in \"Schublade\", \"Karte konfigurieren\" und \"Kontextmenü\" an. +\n +\nSchalten Sie nicht verwendete Plugins aus, um alle ihre Steuerelemente auszublenden. %1$s. + Schubladenelemente, Kontextmenü + Schublade + diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index 26b6cbd469..4e51aea33c 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -958,7 +958,7 @@ Marmarko: supra-marko Marnavigado: eta metiejo Marmarko: bolardo - Marmarko: radara transsend-respond-ilo (ang. transponder) + Marmarko: radara transsend‑respondilo Marmarko: radiostacio Signalstacio: trafiko Signalstacio: averto @@ -1289,8 +1289,8 @@ Kun dediĉitaj ejoj por gepatroj Sen dediĉitaj ejoj por gepatroj Dediĉitaj ejoj por gepatroj - Nombro da homoj en vagoneto/seĝo - Nombro da homoj hore + Nombro de homoj en vagoneto/seĝo + Nombro de homoj hore Mezuma vojaĝ-tempo (en minutoj) Tegmenteto Sen tegmenteto @@ -1489,7 +1489,7 @@ Inoj malpermesataj Sen-elaŭtiĝa servo (aŭtoparko): ne jes - Sen-elaŭtiĝa servo (trans-veturo): ne + Sen-elaŭtiĝa servo (transveturo): ne Nomo de bierfarejo jes Sen bierfarejeto-restoracio @@ -1969,8 +1969,8 @@ Energifonto (ŝtopilo): CEE 7/4 (F-tipo) Energifonto (ŝtopilo): CEE 7/5 (E-tipo) Energifonto (ŝtopilo): NEMA 5-15 (B-tipo) - Nombro da tendoj - Nombro da kampad‑veturiloj + Nombro de tendoj + Nombro de kampad‑veturiloj Hundoj permesataj Hundoj malpermesataj Orkestrejeto @@ -1978,7 +1978,7 @@ Informo por malkapabluloj Informo por blinduloj Informo por surduloj - Kiom da ŝtupoj + Nombro de ŝtupoj Ŝtonstaka marko Defibrililo Dresejo @@ -2417,7 +2417,7 @@ San-servejo: kampa malsanulejo Diametro de hidranto Premo de hidranto - Kiom da hidrantoj + Nombro de hidrantoj Profundo Teleskopo San-servejo: kuracistejo @@ -2436,7 +2436,7 @@ supertersurfaca (frost-imuna) Manapoteko Pesilo publika - Nombro da litoj + Nombro de litoj Kabineto de doktoro de medicino Kabineto de terapiisto Kabineto de piedisto @@ -2808,8 +2808,8 @@ Seĝoj ekstere Pago Hejmliverado - Sen-elaŭtiga servo (aŭtoparko) - Sen-elaŭtiga servo (trans-veturo) + Sen-elaŭtiĝa servo (aŭtoparko) + Sen-elaŭtiĝa servo (transveturo) Elportado Kokteloj Metia bierfarejeto diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 88401a9be8..ab63e4c72e 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -1177,7 +1177,7 @@ Trafikcirklo: enveturu %1$d-an elveturejon Veturu je maldekstra koridoro Veturu je dekstra koridoro - Pila nivelo + Nivelo de baterio Movu la mapon por ŝanĝi pozicion de marko Pluranguloj @@ -1212,7 +1212,7 @@ Mi estas tie ĉi Senpaga versio Hejmo - Fasada lingvo + Lingvo de aplikaĵo nekompleta Aktivigu la kromprogramon “enretaj mapoj” por elekti aliajn fontojn de mapoj Enretaj kaj kahelaj mapoj @@ -2027,7 +2027,7 @@ Havigu senlimigitan elŝutojn de mapoj kaj ĉiusemajnaj, ĉiutagajn kaj eĉ ĉiuhorajn ĝisdatigojn. Senlimigitaj map-elŝutoj, ĝisdatigoj kaj kromprogramo Vikipedio. Mejloj/metroj - Abon-pagoj prenataj ĉiumonate. Iam ajn rezignebla per Google Play. + La abon‑pago estos prenata por la elektita periodo. Vi ĉiam povos rezigni ĝin en Google Play. Donacoj por la OSM‑komunumo Parto de viaj donacoj estas sendata OSM‑kontribuantoj. La abonpago estas la sama. Abonoj ebligas al vi ĉiuhorajn, ĉiutagajn aŭ ĉiusemajnajn ĝisdatigojn kaj senlimigitajn elŝutaĵojn de mapoj de la tuta mondo. @@ -2424,13 +2424,13 @@ Neniuj fotoj tie ĉi. Instali Pliigi fotan atingon de Mapillary - Instalu Mapillary por aldoni unu aŭ pli fotojn al tiu ĉi loko sur la mapo. + Instalu Mapillary por aldoni fotojn al tiu ĉi loko sur la mapo. Malfermi Mapillary Mapillary-foto Korektita distanco Permesoj Ne povas enporti dosieron. Bonvolu kontroli, ĉu OsmAnd estas permesata por legi ĝin. - Radiusa mezurilo + Cirkelo Reŝargi Reŝargi kahelojn por ĝisdatigi datumojn. Kahela memoro @@ -2589,7 +2589,7 @@ Vidigi direktantan linion el via pozicio al pozicioj de aktivaj map-markoj. Vidigi unu aŭ du sagetojn indikantajn direkton al map-markoj. Elekti kiel vidigi distancon al aktivaj map-markoj. - Nombro da indikiloj de direkto por vidigi: + Nombro da indikiloj de direkto por vidigi. Serĉado de kursoj kun navigadpunktoj Pli Krei aŭ redakti OSM-objektojn @@ -2891,7 +2891,7 @@ Speco de vojo Pavimo Glateco - Klineco + Dekliveco Aldoni hejmon Aldoni laborejon Laborejo @@ -3054,8 +3054,8 @@ Vi povas aldoni propran modifitan version de la dosiero routing.xml al “..osmand/routing” Skiado Skiado - Montri mezurilon de kompaso - Kaŝi mezurilon de kompaso + Montri kompasrozon + Kaŝi kompasrozon Elekti emblemon Reĝimo: %s Reĝimo de uzanto bazita sur %s @@ -3129,23 +3129,23 @@ Paneo OsmAnd paneis dum la antaŭa starto. Helpu al ni plibonigi la aplikaĵon per sendi mesaĝon pri eraro. NIFO - • profiloj de aplikaĵo: krei profilojn laŭ viaj bezonoj kun propra emblemo kaj koloro + • profiloj de aplikaĵo: krei profilojn laŭ viaj bezonoj kun propra emblemo kaj koloro \n -\n • agordo por aldoni kutiman, minimuman kaj maksimuman rapidon por profilo (por kalkuli esperatan tempon de alveno) +\n • agordo por aldoni kutiman, minimuman kaj maksimuman rapidon por profilo (por kalkuli esperatan tempon de alveno) \n \n • fenestraĵo montranta koordinatojn \n -\n • eblo montri kompason kun angul-mezurilo sur la mapo +\n • eblo mezuri distancojn per cirkelo \n -\n • riparita registrado de spuro fone +\n • riparita registrado de spuro fone \n -\n • restarigita eblaĵo “teni ekranon ŝaltita” +\n • restarigita eblaĵo “teni ekranon ŝaltita” \n -\n • plibonigita elŝuto de mapoj fone +\n • plibonigita elŝuto de mapoj fone \n -\n • riparita elekto de lingvo por Vikipedio +\n • riparita elekto de lingvo por Vikipedio \n -\n • riparita sinteno de kompaso butono dum navigado +\n • riparita sinteno de kompaso butono dum navigado \n \n • riparoj de aliaj eraroj \n @@ -3470,8 +3470,8 @@ Disponeblaj Aldoni propran kategorion Montri nur dum nokto - Rekomencigis ĉiujn agordojn pri kromprogramoj. - Rekomencigis ĉiujn agordojn pri profiloj. + Restarigis ĉiujn agordojn pri kromprogramoj al implicitaj valoroj. + Restarigis ĉiujn agordojn pri profiloj al implicitaj valoroj. %1$s/%2$s Sunsubiro je %1$s Sunleviĝo je %1$s @@ -3480,14 +3480,14 @@ Registrada intertempo Ne povas pritrakti koordinat‑peton “%s”. Reordigi kategoriojn - Ŝanĝi ordigon de la listo, kaŝi malnecesajn kategoriojn. Vi povas enporti aŭ elporti ĉiujn ŝanĝojn kun profiloj. - Vi povas aldoni novan propran kategorion per elekti kelka(j)n bezonata(j)n kategorio(j)n. - Per restarigi implicitajn agordojn, ordigo de elementoj revenos al la postinstalada stato. - Alirebleca reĝimo estas malaktivigita en via sistemo. + Ŝanĝi ordigon de la listo, kaŝi kategoriojn. Vi povas enporti aŭ elporti ĉiujn ŝanĝojn kun profiloj. + Vi povas aldoni novan propran kategorion per elekti unu aŭ pli kategoriojn. + Frapetu “restarigi implicitajn” por ke la ordigo de elementoj revenu al la postinstalada stato. + Alirebleca reĝimo malaktivigita en Android. Malŝalti ekranon laŭ sistemaj agordoj - Implicite neaktiva, se OsmAnd laboras malfone, la ekrano ne malŝaltos aŭtomate. -\n -\nAktivigu tion ĉi por ke OsmAnd uzu sisteman agordon pri malŝalti ekranon. + Implicite neaktiva: se OsmAnd laboras malfone, la ekrano ne malŝaltos aŭtomate. +\n +\nAktivigu tion ĉi por ke OsmAnd uzu la sisteman agordon pri malŝalti ekranon. Forviŝi registritajn datumojn • profiloj: eblo ŝanĝi ilian ordigon, agordi emblemon por mapo, ŝanĝi ĉiujn agordojn por bazaj profiloj kaj restarigi implicitajn valorojn \n @@ -3531,7 +3531,7 @@ Vi povas elekti kromajn datumojn por elporti kune kun la profilo. Antarkto Implicita valoro (%s) - Malaktivigi rekalkulon + Sen rekalkulado Minimuma distanco por rekalkuli kurson Kurso estos rekalkulita se la distanco estos pli granda ol tiu ĉi valoro Propra profilo @@ -3617,9 +3617,9 @@ Vi povas movi elementojn nur ene tiu ĉi kategorio. Programista kromprogramo Elementoj - Alĝustigi kaj kaŝi elementojn en la (maldekstra) tirmenuo, menuo “agordi mapon” kaj kunteksta menuo de mapo. -\n -\nVi povas malaktivigi neuzatajn kromprogramojn por kaŝi ĉiujn iliajn rilatajn butonojn: %1$s. + Alĝustigi kaj kaŝi elementojn en la (maldekstra) tirmenuo, menuo “agordi mapon” kaj kunteksta menuo de mapo. +\n +\nEblas malaktivigi neuzatajn kromprogramojn por kaŝi ĉiujn iliajn rilatajn butonojn: %1$s. Elementoj de tirmenuo, kunteksta menuo, ktp. Alĝustigi fasadon Tirmenuo @@ -3676,7 +3676,7 @@ Enreta spurilo Butono de rapida ago OsmAnd + Mapillary - Radius‑mezurilo + Cirkelo Distanc-mezurilo Vojaĝo (Vikivojaĝoj kaj Vikipedio) Map‑markoj @@ -3717,4 +3717,5 @@ Ŝanĝi aplikaĵan profilon Ne trovis tiajn profilojn. Fundamenta mapo de mondo (detala) + Nesubtenata speco \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 836abf832a..82859167d8 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -492,7 +492,7 @@ Cálculo sin Internet del segmento de ruta OsmAnd Calcular la ruta OsmAnd para el primer y último segmento de ruta ¿Usar la traza mostrada para la navegación? - Sin ferris/transbordadores + Sin ferris o transbordadores Evitar ferris o transbordadores Desde Android 4.4 (KitKat), la carpeta de almacenamiento antigua (%s) se encuentra en desuso. ¿Copiar todos los archivos de OsmAnd a la nueva ubicación de almacenamiento\? \n Nota 1: Los archivos antiguos permanecerán intactos (pero pueden ser borrados manualmente). @@ -543,7 +543,7 @@ Zoom mínimo URL Elegir existente… - Definir/Editar… + Definir o editar… Información de FPS Región de conducción: EEUU, Europa, Reino Unido, Asia u otras. Región de conducción @@ -698,7 +698,7 @@ GPX No se encontraron edificios. Buscar ciudades incrementalmente - Buscar más pueblos/códigos postales + Buscar más pueblos o códigos postales Elige cuando mostrar mapas viales: Mapas viales Ejecutar aplicación en modo seguro (usando código de Android, más lento, en vez del nativo). @@ -779,24 +779,24 @@ \n Los PDI de OsmAnd están siendo desarrollados activamente. Nuestro proyecto y su continuo progreso, se basa en contribuciones económicas para desarrollar y probar nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en https://osmand.net. Navegación y Mapas OsmAnd+ Visor y navegador móvil global de mapas OSM con y sin conexión - OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) + OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) \n -\nOsmAnd+ es un software de navegación de código abierto con acceso a una amplia variedad de datos globales de OSM. Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. Ofrece funcionalidades de rutas con y sin conexión, incluyendo guía de giro-a-giro por voz. +\nOsmAnd+ es un software de navegación de código abierto con acceso a una amplia variedad de datos globales de OSM. Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. Ofrece funcionalidades de rutas con y sin conexión, incluyendo guía de giro-a-giro por voz. \n -\n OsmAnd+ es la versión de pago de la aplicación, comprándola ayudas al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones. +\n OsmAnd+ es la versión de pago de la aplicación, comprándola ayudas al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones. \n -\n Algunas de las funciones fundamentales: -\n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo) -\n - Mapas mundiales vectoriales compactos disponibles -\n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación -\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, Favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable +\n Algunas de las funciones fundamentales: +\n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo) +\n - Mapas mundiales vectoriales compactos disponibles +\n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación +\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, Favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable \n -\n - Búsqueda sin conexión de direcciones y sitios (PDI) -\n - Rutas sin conexión para distancias de rango medio -\n - Modos de automóvil, bicicleta y peatón con opcional: -\n - Cambio automático de modo diurno/nocturno -\n - Zoom del mapa según la velocidad -\n - Alineación del mapa, según brújula o dirección del movimiento +\n - Búsqueda sin conexión de direcciones y sitios (PDI) +\n - Rutas sin conexión para distancias de rango medio +\n - Modos de automóvil, bicicleta y peatón con opcional: +\n - Cambio automático de modo diurno/nocturno +\n - Zoom del mapa según la velocidad +\n - Alineación del mapa, según brújula o dirección del movimiento \n - Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas \n Crear filtro PDI @@ -1148,7 +1148,7 @@ Elige que altavoz reproducirá indicaciones por voz. Audio de llamada telefónica (para altavoces estéreos con Bluetooth) Notificación auditiva - Audio de multimedia/navegación + Audio de multimedia o navegación La aplicación no puede descargar la capa del mapa «%1$s», reinstalarla podría ayudar. Ajustar transparencia de la capa superpuesta. Transparencia de superposición @@ -2038,7 +2038,7 @@ Obtenga descargas ilimitadas de mapas, añadiendo actualizaciones semanales, diarias o incluso por hora. Descargas ilimitadas de mapas, actualizaciones y complemento de Wikipedia. Obtener - Suscripción mensual. Puedes cancelarlo en cualquier momento en Google Play. + La suscripción se cobra por el período elegido. Puedes cancelarlo en cualquier momento en Google Play. Donaciones a la comunidad de OSM Parte de tu donación se envía a los colaboradores de OSM. El costo de la suscripción sigue siendo la misma. La suscripción permite actualizaciones cada hora, día o semana y descargas ilimitadas para los mapas de todo el mundo. @@ -2147,10 +2147,10 @@ Nombre de la acción rápida duplicado Un botón que muestra u oculta los puntos favoritos en el mapa. Un botón que muestra u oculta los PDI en el mapa. - Mostrar/ocultar Favoritos + Mostrar u ocultar Favoritos Mostrar Favoritos Ocultar Favoritos - Mostrar/ocultar PDI + Mostrar u ocultar PDI Mostrar %1$s Ocultar %1$s Añadir una categoría @@ -2437,7 +2437,7 @@ Sin fotos aquí. Instalar Mejorar cobertura de fotos con Mapillary - Instala Mapillary para añadir una o más fotos a esta ubicación del mapa. + Instala Mapillary para añadir fotos a esta ubicación del mapa. Abrir Mapillary Imagen de Mapillary Distancia recorrida @@ -2466,10 +2466,10 @@ Máx/Min Min/Máx Rosa translúcido - Pausar/reanudar navegación + Pausar o reanudar navegación Un botón que pausa o reanuda la navegación. Mostrar diálogo «Navegación finalizada» - Iniciar/parar navegación + Iniciar o parar navegación Un botón que inicia o detiene la navegación. Tiempo del búfer para el seguimiento en línea Indica el tiempo que el búfer mantendrá los sitios para enviar sin conexión @@ -2501,7 +2501,7 @@ Añadir archivos GPX Importa archivos GPX o graba trazas. Añadir favoritos - Importar Favoritos o añadir mediante puntos de marcación en el mapa. + Importa los Favoritos o añádelos marcando puntos en el mapa. Importar archivo GPX El archivo «%1$s» no contiene puntos de referencia, ¿Quieres importarlo como una traza? Mover punto @@ -2601,7 +2601,7 @@ Muestra líneas direccionales desde su ubicación hasta los marcadores activos. Muestra una o dos flechas indicando la dirección a los marcadores activos. Elige cómo mostrar la distancia a los marcadores activos. - Define el número de indicadores de dirección: + Define el número de indicadores de dirección. Aspecto en el mapa Buscando trazas con puntos de referencia Más @@ -2614,7 +2614,7 @@ Pulsa un marcador en el mapa para moverlo al primer lugar de los marcadores activos, sin abrir el menú contextual. Activar «Una pulsación» ¡Hacer notas multimedia! - Añade una nota de audio, vídeo o foto para cada punto del mapa, utilizando el widget o el menú contextual. + Añade una nota de audio, vídeo o foto a cualquier punto del mapa, usando el widget o el menú contextual. Notas multimedia por fecha Por fecha Por tipo @@ -2660,7 +2660,7 @@ Copiar nombre de ubicación/PDI Ubicación sin nombre Mostrar notas de OSM cerradas - Mostrar/ocultar notas de OSM en el mapa. + Mostrar u ocultar notas de OSM en el mapa. GPX - adecuado para exportar a JOSM u otros editores OSM. OSC - adecuado para exportar a OSM. Archivo GPX @@ -2919,7 +2919,7 @@ Tipos de caminos Bajar en Esperar en la parada - Mostrar/ocultar trazas GPX + Mostrar u ocultar trazas GPX Un botón que muestra u oculta las trazas GPX elegidas en el mapa. Ocultar trazas GPX Mostrar trazas GPX @@ -2960,7 +2960,7 @@ Hormigón Adoquín Empedrado (adoquín) - Pavimento intertrabado / Adoquín prefabricado + Pavimento intertrabado o adoquín prefabricado Canto rodado Piedra Metal @@ -2977,16 +2977,16 @@ Muy horrible Intransitable Autopista - Carretera/ruta estatal + Carretera o ruta estatal Carretera principal Calle residencial Vía de servicio - Vereda/Acera + Vereda o acera Camino rural Camino ecuestre Escalera Sendero - Ciclovía/Bicisenda + Ciclovía o bicisenda Indefinido Lea más sobre el cálculo de las rutas de OsmAnd en nuestro blog. La navegación en transporte público se encuentra actualmente en fase de pruebas beta, se esperan errores e imprecisiones. @@ -3013,7 +3013,7 @@ Evitar trenes Sin subterráneos Evitar subterráneos y trenes ligeros - Sin ferris/transbordadores + Sin ferris o transbordadores Evitar ferris o transbordadores • Mostrar el tiempo entre transbordos en transporte público \n @@ -3106,9 +3106,9 @@ Cambia el zoom del mapa desplazando la rueda hacia arriba y abajo. La tecla «Escape» retrocede a la aplicación WunderLINQ. Controlar con WunderLINQ Añadir al menos un elemento a la lista en los ajustes de «Acción rápida» - Esquí alpino/de descenso + Esquí alpino o de descenso Pistas de esquí alpino o de descenso y acceso a remontes mecánicos. - Esquí de travesía/nórdico + Esquí de travesía o nórdico Senderos para esquí nórdico o de travesía. Esquí de travesía Rutas para esquí de travesía. @@ -3142,21 +3142,21 @@ Error OsmAnd falló la última vez. Por favor, ayúdanos a mejorar OsmAnd compartiendo el mensaje de error. OVNI - • Perfiles de aplicación: crea un perfil personalizado según tus necesidades, con un icono y color personalizado + • Perfiles de aplicación: crea un perfil personalizado según tus necesidades, con un icono y color personalizado \n -\n • Ahora puedes personalizar las velocidades predefinidas, máximas y mínimas de cualquier perfil +\n • Ahora puedes personalizar las velocidades predefinidas, máximas y mínimas de cualquier perfil \n -\n • Se ha añadido un widget para las coordenadas actuales +\n • Se ha añadido un widget para las coordenadas actuales \n -\n • Se añadieron opciones para mostrar la brújula y una regla radial en el mapa +\n • Se añadieron opciones para mostrar la brújula y una regla radial en el mapa \n -\n • Se ha corregido la grabación de trazas en segundo plano +\n • Se ha corregido la grabación de trazas en segundo plano \n -\n • Se mejoraron las descargas de mapas en segundo plano +\n • Se mejoraron las descargas de mapas en segundo plano \n -\n • Se ha corregido la selección de idioma de Wikipedia +\n • Se ha corregido la selección de idioma de Wikipedia \n -\n • Se ha corregido el comportamiento de los botones de la brújula durante la navegación +\n • Se ha corregido el comportamiento de los botones de la brújula durante la navegación \n \n • Otras correcciones de errores \n @@ -3367,11 +3367,11 @@ Un botón que muestra u oculta las curvas de nivel en el mapa. Mostrar curvas de nivel Ocultar curvas de nivel - Mostrar/ocultar curvas de nivel + Mostrar u ocultar curvas de nivel Un botón que muestra u oculta el sombreado de las colinas en el mapa. Mostrar el sombreado Ocultar el sombreado - Mostrar/ocultar el sombreado + Mostrar u ocultar el sombreado Imposible iniciar el motor de habla sintetizada. Simular la ubicación usando una traza GPX grabada. Exportar perfil @@ -3424,7 +3424,7 @@ Icono, color y nombre Editar la lista de perfiles Perfil marcado - Al pulsar en «%1$s», serán descartados todos los cambios. + Al pulsar en «%1$s», se descartan todos los cambios. Restablecer todos los ajustes del perfil a los valores predefinidos de la instalación. ¿Restablecer todos los ajustes del perfil\? %1$s %2$s @@ -3483,21 +3483,21 @@ Reproducir sonido al fotografiar Autorización exitosa Reordenar categorías - Cambia el orden de clasificación de la lista u oculta las categorías innecesarias. Puedes importar o exportar todos los cambios con los perfiles. - Puedes añadir una nueva categoría personalizada marcando una o varias categorías necesarias. + Cambia el orden de clasificación de la lista u oculta las categorías. Puedes importar o exportar todos los cambios con los perfiles. + Puedes añadir una nueva categoría personalizada marcando una o varias categorías. Disponible Añadir categoría personalizada Mostrar solo de noche - Todos los ajustes del complemento se restauraron al estado predefinido. - Todos los ajustes del perfil se restauraron al estado predefinido. + Todos los ajustes del complemento se restauraron al valor predefinido. + Todos los ajustes del perfil se restauraron al valor predefinido. %1$s/%2$s Atardecer a las %1$s Amanecer a las %1$s - Restablecer al valor predefinido, restablecerá el orden de clasificación al estado predefinido después de la instalación. - Modo de accesibilidad desactivado en su sistema. + «Restablecer al valor predefinido», restablecerá el orden de clasificación al valor predefinido de la instalación. + El modo de accesibilidad se encuentra desactivado en el sistema. Usar el tiempo de espera de la pantalla del sistema - Desactivado de forma predefinida, si OsmAnd se ejecuta en primer plano, la pantalla se mantendrá encendida. -\n + Desactivado de forma predefinida: Mientras OsmAnd se ejecute en primer plano, la pantalla no se apagará. +\n \nSi se activa, OsmAnd utilizará los ajustes de tiempo de espera del sistema. Vaciar datos grabados • Perfiles: ahora puedes cambiar el orden, definir el icono para el mapa, cambiar todos los ajustes para los perfiles base y restaurarlos de nuevo a los valores predefinidos @@ -3538,11 +3538,11 @@ %1$s → %2$s → %3$s Enrutamiento Incluir datos adicionales - El perfil importado contiene datos adicionales. Pulsa en «Importar» para importar sólo datos de perfil o marca datos adicionales para importar. + El perfil importado contiene datos adicionales. Pulsa en «Importar» para importar sólo datos de perfil o marca datos adicionales. Puedes marcar datos adicionales para exportar junto con el perfil. Antártida Aplicación predefinida (%s) - Desactivar el recálculo + Sin recálculo Distancia mínima para recalcular la ruta La ruta será recalculada si la distancia a la ruta es mayor que el parámetro especificado Perfil personalizado @@ -3595,7 +3595,7 @@ Permite ver el sombreado o el mapa de pendientes. Puedes leer más sobre estos tipos de mapas en nuestro sitio. Sombreado Pendientes - Mostrar/ocultar terreno + Mostrar u ocultar terreno Ocultar terreno Mostrar terreno Un botón que muestra u oculta la capa del terreno en el mapa. @@ -3618,9 +3618,9 @@ No se pudo escribir en «%1$s». No se pudo importar desde «%1$s». Cambios aplicados al perfil «%1$s». - Personaliza la cantidad de elementos en el menú lateral, la configuración del mapa y el menú contextual. + Personaliza la cantidad de elementos en el «Menú lateral», «Configuración del mapa» y «Menú contextual». \n -\nPuedes desactivar los complementos no utilizados, para ocultar todos sus controles desde «%1$s». +\nDesactiva los complementos no utilizados y oculta todos sus controles en «%1$s». Elementos del menú lateral y menú contextual Personalizar interfaz de usuario Menú lateral @@ -3631,7 +3631,7 @@ Oculto Estos elementos no se muestran en el menú, pero las opciones o complementos que representan seguirán funcionando. Ocultar los ajustes, los restablece a su estado original. - Las «Acciones principales» sólo contienen 4 botones. + Sólo contiene 4 botones. Acciones principales Sólo puedes mover objetos dentro de esta categoría. Complemento de desarrollador @@ -3676,13 +3676,13 @@ Mapas adicionales Acción «%1$s» no admitida %1$s / %2$s - El pago será cargado a la cuenta de Google Play al confirmar la compra. -\n -\nLa suscripción se renueva automáticamente a menos que se cancele antes de la fecha de renovación. La cuenta será cargada por el período de renovación (mes/trimestre/año) sólo en la fecha de renovación. -\n + El pago será cargado a la cuenta de Google Play al confirmar la compra. +\n +\nLa suscripción se renueva automáticamente a menos que se cancele antes de la fecha de renovación. Se le cobrará a su cuenta el período de renovación (mes/trimestre/año) sólo en la fecha de renovación. +\n \nPuedes administrar y cancelar las suscripciones accediendo a los ajustes de Google Play. Buscar por tipos de PDI - Combina tipos de PDI de diferentes categorías. Pulsa «Alternar» para marcar todo, pulsa el lado izquierdo para elegir una categoría. + Combina tipos de PDI de diferentes categorías. Pulsa «Alternar» para marcar todo y el lado izquierdo para elegir una categoría. OsmAnd Tracker OsmAnd + Mapillary Acción rápida @@ -3693,40 +3693,42 @@ Favoritos Suscripción - OsmAnd Live Compras de OsmAnd - La guía para la simbología de un mapa + La guía para la simbología de un mapa. Perfiles de navegación • Nuevos mapas sin conexión de las pendientes -\n +\n \n • Personalización más completa de los favoritos y puntos de referencia GPX (colores personalizados, iconos, formas) -\n -\n • Nueva personalización en el orden de los elementos en Configurar mapa, menú contextual y menú lateral -\n +\n +\n • Personalización en el orden de los elementos en «Configurar mapa», «Menú contextual» y «Menú lateral» +\n \n • Wikipedia ahora se visualiza como una capa separada en Configurar mapa, elige sólo los idiomas necesarios -\n -\n • Crea tu propio filtro/mapas de puntos de interés, con total flexibilidad -\n +\n +\n • Crea tus propios filtros o mapas de puntos de interés, con total flexibilidad +\n \n • Se añadieron opciones para restablecer los ajustes de los perfiles personalizados -\n +\n \n • Las rutas GPX para la navegación, ahora admiten los carriles de tráfico y completan las instrucciones de giro -\n +\n \n • Se ha corregido el tamaño de la interfaz en las tabletas -\n +\n \n • Se corrigieron los errores con RTL \n \n Puedes acceder a estas acciones pulsando el botón «%1$s». Ocultar transporte público Mostrar transporte público - Mostrar/ocultar transporte público - Un botón que muestra u oculta el transporte público en el mapa. - Crear/Editar PDI + Mostrar u ocultar transporte público + Botón que muestra u oculta el transporte público en el mapa. + Crear o editar PDI Puestos de estacionamiento - Añadir / Editar favorito + Añadir o editar favorito Restaurar el orden de los elementos predefinidos Volver a la edición Reanudar - Al pulsar el botón de acción se cambiará entre los perfiles elegidos. + El botón de acción alterna entre los perfiles elegidos. Añadir perfil Cambiar perfil de la aplicación - No se encontraron los perfiles marcados para esta acción. + No se pudo encontrar ninguno de estos perfiles. + Mapa mundial general (detallado) + Tipo no admitido \ No newline at end of file diff --git a/OsmAnd/res/values-eu/phrases.xml b/OsmAnd/res/values-eu/phrases.xml index 8bef83a950..1802a8843b 100644 --- a/OsmAnd/res/values-eu/phrases.xml +++ b/OsmAnd/res/values-eu/phrases.xml @@ -2187,10 +2187,10 @@ Konponketarik ez Gailu elektrikoen konponketa Motorren konponketa - Autozerbitzurik ez + Ez Automatizatu gabea Zerbitzu osoa - Kotxe-garbiketa: ez + Ez Komun publikoa Gizonezkoa Gizonezkoentzat debekatua @@ -3807,4 +3807,10 @@ Trabatzea Ur maila: batezbestekotik behera Ur maila: batezbestekotik gora + Bonbaren egora: Habea faltan + Xurgatzea + Presiopean + Lurrazpiko ura + Hodia + Presioa \ No newline at end of file diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index bea71fd6e6..2ac310ee14 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -3632,4 +3632,15 @@ Area honi dagokio: %1$s x %2$s Kolore pertsonalizatua Mapa gehigarriak onartu gabeko ekintza %1$s + Sortu / aldatu POIa + Aparkaleku-posizioak + Gehitu / aldatu gogokoa + Berrezarri lehenetsitako ordena + Itzuli ediziora + Ekintza botoiak hautatutako profilen artean txandakatzen du. + Gehitu profila + Aldatu aplikazioaren profila + Ezin izan dira profil horiek aurkitu. + Munduaren gainbegirada mapa (xehetsua) + Onartu gabeko mota \ No newline at end of file diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index d189deae1e..b9f2f752bb 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -29,7 +29,7 @@ نصب نسخه ظاهر برنامه را به‌دلخواه تنظیم کنید. پوستهٔ برنامه - تنظیمات دسترسی آسان + تنظیمات قابلیت دسترسی مشخص‌کردن نشانی انتخاب نقطهٔ موردعلاقه تغییرات OsmAnd @@ -423,7 +423,7 @@ راهنما روشن خاموش - طبق تنظیمات کلی دستگاه + طبق تنظیمات دستگاه برگشتن به منو ریزتر درشت‌تر @@ -985,13 +985,13 @@ با ایجاد یا اصلاح نقاط توجه (POI)، ایجاد یادداشت‌های OSM یا نظردادن روی آن‌ها و بارگذاری فایل‌های GPXای که ضبط کرده‌اید در تکمیل نقشهٔ OSM مشارکت کنید. برای این منظور لازم است نام کاربری و گذرواژهٔ خود را در OsmAnd وارد کنید. OpenStreetMap.org یک پروژهٔ نقشه‌کشی جامعه‌محور، جهانی و در مالکیت عمومی است. گفتاری را انتخاب کنید و با پخش پیام‌ها، آن را امتحان کنید: رندر بومی - حالت دسترسی آسان + حالت قابلیت دسترسی امکانات موردنیاز برای کاربران مبتلا به نارسایی جسمی را فعال می‌کند. جهت‌ها (۸سویه) میزان بزرگ‌نمایی نقشه را با حرکت افقی گوی مکان‌نما تغییر دهید. استفاده از گوی مکان‌نما برای کنترل بزرگ‌نمایی - تنظیمات مربوط به دسترسی آسان. - دسترسی آسان + تنظیمات مربوط به قابلیت دسترسی. + قابلیت دسترسی نشانی اینترنتی را با این پارامترها تعریف کنید: \nlat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6} نشانی اینترنتی ردیابی آنلاین @@ -1638,7 +1638,7 @@ مقیاس پیاده‌گردی آلپاین (SAC) بازکردن در بستن در - هزینهٔ اشتراک ماهانه است. هر زمان که خواستید، اشتراک خود را در گوگل‌پلی لغو کنید. + هزینهٔ اشتراک مطابق دورهٔ انتخابی است. هر زمان که خواستید، اشتراک خود را در گوگل‌پلی لغو کنید. کمک مالی به جامعهٔ OSM بخشی از کمک‌های مالی به مشارکت‌کنندگان OSM داده می‌شود. هزینهٔ اشتراک تغییری نمی‌کند. این اشتراک، به‌روزرسانی‌های ساعتی، روزانه و هفتگی و نیز امکان دانلود نامحدود همهٔ نقشه‌ها را فعال می‌کند. @@ -2240,7 +2240,7 @@ تلاش مجدد افزودن خط افزودن نقاط موردعلاقه - نقاط موردعلاقه را درون‌برد کنید یا آن‌ها را روی نقشه علامت بزنید. + علاقه‌مندی‌ها را درون‌برد کنید یا با علامت‌گذاری روی نقشه آن‌ها را اضافه کنید. جابه‌جاکردن نقطه یک کپی از مبدأ را به‌عنوان مقصد بیفزا. ایجاد سفر رفت‌وبرگشتی @@ -2298,7 +2298,7 @@ بازکردن مپیلاری نصب با مَپیلاری پوشش تصویری را بهتر کنید - برنامهٔ Mapillary را نصب کنید و یک یا چند عکس به این نقطه از نقشه اضافه کنید. + برنامهٔ Mapillary را نصب کنید و به این موقعیت در نقشه چند عکس اضافه کنید. تصاویر آنلاین افزودن تصویر اینجا عکسی ندارد. @@ -2614,7 +2614,7 @@ خطوط جهت‌داری را از موقعیت شما به‌سمت نشانه‌های فعال نمایش می‌دهد. با یک یا دو پیکان، سمت قرارگیری نشانه‌های فعال روی نقشه را نمایش می‌دهد. مشخص کنید مسافت شما تا نشانه‌های فعال کجا نشان داده شود. - تعداد جهت‌نماها را مشخص کنید: + تعداد جهت‌نماها را مشخص کنید. تنظیمات ظاهری ردّی را انتخاب کنید تا نقاط بین‌راهیِ آن را به نشانه‌ها اضافه کنید. دسته‌ای از نقاط موردعلاقه را انتخاب کنید تا به نشانه‌ها اضافه شود. @@ -2639,7 +2639,7 @@ فعال‌سازی «با یک لمس» یادداشت بگذارید! با استفاده از ابزارک یا منوی زمینه، برای هر نقطه‌ای روی نقشه یادداشت صوتی، عکسی یا ویدئویی بگذارید. - یادداشت‌های OSM بر اساس تاریخ + یادداشت‌های صوتی/تصویری بر اساس تاریخ بر اساس تاریخ بر اساس نوع جست‌وجوی خود را تغییر دهید. @@ -3449,7 +3449,7 @@ نماد، رنگ و نام ویرایش لیست پروفایل پروفایل انتخاب‌شده - با زدن روی %1$s، همهٔ تغییرات شما از بین می‌رود. + زدن روی %1$s، همهٔ تغییراتتان را از بین می‌برد. همهٔ تنظیمات پروفایل به حالت اولیهٔ پس از نصب بازنشانی می‌شود. همهٔ تنظیمات پروفایل را بازنشانی می‌کنید؟ %1$s: ‪%2$s‬ @@ -3518,7 +3518,7 @@ %1$s‏/%2$s غروب خورشید در %1$s طلوع خورشید در %1$s - حالت دسترسی آسان در دستگاه شما غیرفعال است. + حالت قابلیت دسترسی در دستگاهتان خاموش شده است. استفاده از زمان خاموشی صفحهٔ دستگاه پیشفرض غیرفعال است، اگر OsmAnd در پیش‌زمینه اجرا باشد صفحه خاموش نمی‌شود. \n @@ -3555,7 +3555,7 @@ قابل‌استفاده لطفاً یک نام برای پروفایل بنویسید بازکردن تنظیمات - افزونه غیرفعال شد + افزونه خاموش این افزونه یک برنامهٔ جداگانه است. اگر دیگر لازمش نداشتید باید جداگانه آن را حذف کنید. \n \nبا حذف OsmAnd، این افزونه روی دستگاه باقی می‌ماند. @@ -3563,12 +3563,12 @@ %1$s — %2$s — %3$s مسیریابی شامل دادهٔ افزوده - پروفایلِ درون‌بردی حاوی دادهٔ افزوده است. «درون‌برد» را بزنید تا فقط دادهٔ پروفایل درون‌برد شود. «دادهٔ افزوده» را انتخاب کنید تا آن را نیز درون‌برد کنید. + پروفایلِ درون‌بردی حاوی دادهٔ افزوده است. «درون‌برد» را بزنید تا فقط دادهٔ پروفایل درون‌برد شود، یا «دادهٔ افزوده» را انتخاب کنید تا آن را نیز درون‌برد کنید. می‌توانید همراه پروفایل، دادهٔ افزوده را نیز برون‌برد کنید. جنوبگان اعلام پیشفرض برنامه (%s) - غیرفعال‌سازی محاسبهٔ مجدد + بدون محاسبهٔ مجدد مسافت کمینی برای مسیریابی مجدد اگر مسافت تا مسیر بیش از پارامتر تعیین‌شده باشد، مسیر دوباره محاسبه می‌شود پروفایل سفارشی @@ -3650,9 +3650,9 @@ زبان‌ها زبان همهٔ زبان‌ها - تعداد اقلام کشو را به‌دلخواه تنظیم کنید، نقشه و منوی زمینه را پیکربندی نمایید. + تعداد اقلام «کشو»، «پیکربندی نقشه» و «منوی زمینه» را به‌دلخواه تنظیم کنید. \n -\nمی‌توانید افزونهٔ بی‌استفاده را غیرفعال کنید تا همهٔ کنترل‌های آن از برنامه پنهان شود. +\nافزونه‌های بی‌استفاده را غیرفعال کنید تا همهٔ کنترل‌های آن‌ها از برنامه پنهان شود. پنهان‌سازی تنظیمات آن‌ها را به حالت اولیه بازنشانی می‌کند. این اقلام از منو پنهان می‌شوند، اما گزینه‌ها یا افزونه‌های متناظر همچنان کار می‌کنند. پنهان @@ -3662,7 +3662,7 @@ اقلام کشو، منوی زمینه سفارشی‌سازی واسط کاربری کنش‌های منوی زمینه - کنش‌های اصلی فقط ۴ دکمه است. + فقط چهار دکمه دارد. کنش‌های اصلی افزونهٔ توسعه‌دهنده چیزهایی که از این نقطه به پایین قرار می‌گیرند، با جداکننده جدا می‌شوند. @@ -3750,4 +3750,6 @@ تغییر پروفایل برنامه چنین پروفایلی پیدا نشد. نقشهٔ نمای کلی جهان ( با جزئیات) + ازسرگیری + نوع پشتیبانی‌نشده \ No newline at end of file diff --git a/OsmAnd/res/values-fi/phrases.xml b/OsmAnd/res/values-fi/phrases.xml index 9a55a6806b..1f7d639c51 100644 --- a/OsmAnd/res/values-fi/phrases.xml +++ b/OsmAnd/res/values-fi/phrases.xml @@ -1458,4 +1458,40 @@ Matalaenergialamput Vesimylly Tavara hissi + Viinikellari + Hautausmaa + Asuntovaunualue + Kello + Internet-yhteys: palvelu + Serbian ortodoksinen + Seitsemännen päivän adventistit + Metsästysmaja + Huoneisto + Alppimaja + Juna (nähtävyys) + Karuselli + Historiallinen laiva + Linnoitus + Taistelukenttä + Pöytätennis + Luistelu + Rullaluistelu + Voimistelu + Kroketti + Kanootti + Jousiammunta + Hevosrata + Juoksurata + Veroneuvojan toimisto + Notaari + Kansalaisjärjestö + Asianajaja + Kuntoutus + Kätilö + Hoitokoti + Tulli + Eläkerahasto + Suurlähetystö + Siilo + Tuulimylly \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 67b2836171..d527cf7d64 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2125,10 +2125,10 @@ Emplacement Ce nom existe déjà, l\'action rapide a été renommée en %1$s. Nom d\'action rapide en double - Afficher / Masquer les favoris + Afficher / masquer les favoris Afficher les favoris Masquer les favoris - Afficher / Masquer les points d\'intérêt + Afficher / masquer les points d\'intérêt Afficher %1$s Masquer %1$s Ajouter une catégorie @@ -2376,7 +2376,7 @@ Mapillary Ouvrir Mapillary Améliorez la couverture photo avec Mapillary - Installez Mapillary pour ajouter une ou plusieurs photos à cet emplacement de la carte. + Installez Mapillary pour ajouter des photos à cet emplacement de la carte. Partagez vos photos de rue via Mapillary. Gadget Mapillary Permet de contribuer facilement à Mapillary. @@ -2444,7 +2444,7 @@ Ajouter des fichiers GPX Importer des fichiers GPX ou enregistrer des traces. Ajouter des favoris - Importez des favoris ou ajoutez-en depuis la carte. + Importez des favoris ou créez des favoris sur la carte. Importer le fichier GPX Le fichier %1$s ne contient aucune étape, l\'importer comme trace ? Déplacer le point @@ -2590,7 +2590,7 @@ Afficher les instructions de guidage de votre position vers les marques actives. Afficher une ou deux flèches indiquant la direction vers les marques actives. Indiquez comment afficher la distance avec les marques actives. - Indiquez le nombre d\'indications de direction à afficher : + Définir le nombre d\'indications de direction à afficher. Plus Recherche de fichiers de trace GPX avec points de passage Créer et modifier des éléments OSM @@ -2649,7 +2649,7 @@ Copier l\'emplacement / le nom du point Emplacement sans nom Afficher les notes fermées - Afficher / Masquer les notes OSM sur la carte. + Afficher / masquer les notes OSM sur la carte. GPX - adapté à l\'export vers JOSM et d\'autres éditeurs OSM. OSC - adapté à l\'export vers OSM. Fichier GPX @@ -3345,11 +3345,11 @@ Bouton affichant ou masquant les courbes de niveaux sur la carte. Afficher les courbes de niveaux Masquer les courbes de niveaux - Afficher/Masquer les courbes de niveaux + Afficher / masquer les courbes de niveaux Bouton affichant ou masquant l\'ombrage du relief sur la carte. Afficher l\'ombrage du relief Masquer l\'ombrage du relief - Afficher/Masquer l\'ombrage du relief + Afficher / masquer l\'ombrage du relief Impossible de démarrer le moteur de synthèse vocale. Simulez votre position à l\'aide d\'une trace GPX enregistrée. Exporter le profil @@ -3472,9 +3472,9 @@ Modifiez l\'ordre de tri de la liste, masquez des catégories. Vous pouvez importer et exporter toutes vos modifications via les profils. Restaurer les valeurs par défaut réinitialisera l\'ordre de tri. Le mode d\'accessibilité est désactivé dans votre système Android. - Vous pouvez ajouter une catégorie personnelle en sélectionnant la ou les catégories souhaitées. - Utiliser le délai système pour mettre en veille l\'écran - Inactif par défaut (lorsqu\'OsmAnd s’exécute en avant-plan, l\'écran reste toujours allumé). + Vous pouvez ajouter une catégorie personnelle en sélectionnant une ou plusieurs catégories. + Utiliser le délai système de mise en veille de l\'écran + Inactif par défaut : lorsqu\'OsmAnd s’exécute en avant-plan, l\'écran reste toujours allumé. \n \nSi actif, OsmAnd utilisera le délai système pour mettre en veille l\'écran. Effacer les données enregistrées @@ -3706,4 +3706,5 @@ Ajouter un profil Modifier le profil d\'application Carte mondiale générale (plus détaillée) + Type non pris en charge \ No newline at end of file diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 1c18955685..0ba169567c 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -3816,4 +3816,5 @@ Augas subterráneas Tubaxe Presión + Estado da bomba: sen chave \ No newline at end of file diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index fa9509ea7b..948647a0c3 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -1931,7 +1931,7 @@ Lon %2$s Eliminar o filtro Filtro novo Insire o nome do novo filtro, que se engadirá na túa lapela das \"Categorías\". - Cobraráseche unha subscrición mensual. Podes desbotar a túa subscrición na Google Play en calquera intre. + Cobraráseche unha subscrición polo período escollido. Podes desbotar a túa subscrición na Google Play en calquera intre. Doazón á comunidade do OSM Parte da túa doazón envíase ós contribuíntes do OSM. O custo da subscrición segue sendo a mesma. A subscrición permite actualizacións a cada hora, día ou semana e descargas ilimitadas de xeito global para todo os mapas. @@ -2222,7 +2222,7 @@ Lon %2$s Instalar Mellorar a cobertura das imaxes co Mapillary Abrir Mapillary - Instala o Mapillary para engadir unha ou máis imaxes a esta localización do mapa. + Instala o Mapillary para engadir imaxes a esta localización do mapa. Imaxes da rede Deter/Voltar á navegación Un botón para deter ou voltar á navegación. @@ -2337,7 +2337,7 @@ Lon %2$s No mapa aparece unha liña que conecta a túa posición até as localizacións das marcaxes activas. No mapa amósanse unha ou dúas frechas que indican a dirección ás marcaxes activas. Escolle de que xeito che gostaría ollar a distancia ás marcaxes activas. - Especifica o número de indicadores de dirección: + Especifica o número de indicadores de dirección. Número de díxitos decimais Dereita Esquerda @@ -2412,7 +2412,7 @@ Lon %2$s Accións Marcaxe Crear ou modificar obxectos de OSM - Crear ou modificar PDI do OSM, abrir ou comentar Notas do OSM e contribuír con ficheiros GPX gravados. + Crear ou modificar PDI do OSM, abrir ou comentar notas no OSM e contribuír con ficheiros GPX gravados. Eliminado Editado Engadido @@ -2420,7 +2420,7 @@ Lon %2$s Preme nunha marcaxe do mapa para movela cara a parte de enriba das marcaxes activas sen abrir o menú contextual. Activar cun toque Crea notas! - Engada unha nota de son, vídeo ou imaxe a cada punto do mapa empregando o trebello ou o menú de contexto. + Engadir notas de son, vídeo ou imaxe a calquera punto do mapa empregando os trebellos ou os menús contextuais. Notas A/V por data Por data Por tipo @@ -3443,7 +3443,7 @@ Lon %2$s Icona, cor e nome Editar a listaxe de perfís Perfil seleccionado - Ó premer en %1$s, serán desbotadas todas as túas modificacións. + Ó premer en %1$s desbotas todas as túas modificacións. Restabelecer todos os axustes do perfil ós valores por defecto da instalación. Restabelecer todos os axustes do perfil\? %1$s %2$s @@ -3501,22 +3501,22 @@ Lon %2$s Son do obturador da cámara A autorización foi correcta Reorganizar categorías - Muda a orde de clasificación da listaxe ou agocha as categorías innecesarias. Podes importar ou exportar todos as modificacións cos perfís. - Podes engadir unha nova categoría personalizada marcando unha ou varias categorías necesarias. - Restabelecer ó valor por defecto, restabelecerá a orde de clasificación ó estado por defecto após a instalación. + Mudar a orde de clasificación da listaxe ou agochar categorías. Podes importar ou exportar todas as modificacións cos perfís. + Podes engadir unha nova categoría personalizada marcando unha ou máis categorías. + \'Restabelecer ó valor por defecto\' restabelecerá a orde de clasificación ós valores por defecto da instalación. Dispoñíbel Engadir categoría personalizada Amosar só á noite - Todos os axustes do plugin restabelecéronse ó estado por defecto. - Todos os axustes do perfil restabelecéronse ó estado por defecto. + Todos os axustes do plugin restabelecéronse por defecto. + Todos os axustes do perfil restabelecéronse por defecto. %1$s/%2$s Solpor ás %1$s Amencer ás %1$s - Modo de accesibilidade desactivado no teu sistema. + O modo de accesibilidade está desactivado no teu sistema. Empregar o tempo de espera da pantalla do sistema - Desactivado de xeito predefinido, se o OsmAnd é executado en primeiro plano, a pantalla manterase acendida. -\n -\nSe se activa, o OsmAnd empregará os axustes de tempo de espera do sistema. + Desactivado por defecto: mentres o OsmAnd está a executarse en primeiro plano, a pantalla non se apagará. +\n +\nSe está activado, o OsmAnd empregará a configuración de tempo de espera do sistema. Limpar datos gravados • Perfís: agora podes mudar a orde, definir a icona para o mapa, mudar todos os axustes para os perfís base e restabelecelos de novo ó valores por defecto \n @@ -3556,13 +3556,13 @@ Lon %2$s %1$s — %2$s — %3$s Enrutamento Incluír datos adicionais - O perfil importado contén datos adicionais. Preme en \"Importar\" para importar só datos de perfil ou marca datos adicionais para importar. + O perfil importado contén datos adicionais. Preme en \"Importar\" para importar só datos de perfil ou marca datos adicionais. Podes marcar datos adicionais para exportar ó carón do perfil. Antártida Amosar notificación do sistema durante a navegación con instrucións de navegación. Notificación de navegación Aplicación por defecto (%s) - Desactivar recálculo + Sen recálculo Distancia mínima para recalcular a ruta A ruta será recalculada se a distancia á ruta é maior que o parámetro especificado Perfil personalizado @@ -3606,7 +3606,7 @@ Lon %2$s Lingua Todas as linguas Precísanse mapas adicionais para ollar os PDI da Wikipedia no mapa. - As \"Accións principais\" conteñen só 4 botóns. + Só ten catro botóns. Accións principais Só podes mover obxectos dentro desta categoría. Escolle as linguas nas que os artigos da Wikipedia aparecerán no mapa. Podes trocar entre todos as linguas dispoñíbeis en canto leas o artigo. @@ -3666,7 +3666,7 @@ Lon %2$s A ruta será recalculada se a distancia á localización actual é maior que o valor escollido. %1$s de %2$s Pendentes - Amosar/agochar terreo + Amosar / agochar terreo Agochar terreo Amosar terreo Un botón que amosa ou agocha a capa do terreo no mapa. @@ -3678,9 +3678,9 @@ Lon %2$s Octógono Cadrado Mín - Personaliza a morea de elementos na gabeta, na configuración do mapa e o menú contextual. + Personaliza a cantidade de elementos na \"Gabeta\", na \"Configuración do mapa\" e no \"Menú contextual\". \n -\nPodes desactivar os plugins non enpregados, para agochar todos os seus controis da aplicación %1$s. +\nDesactiva os plugins non enpregados, para agochar todos os seus controis da aplicación %1$s. Elementos da gabeta, menú contextual Personalización da interface de usuario Gabeta @@ -3698,7 +3698,7 @@ Lon %2$s \n \n  Podes xestionar e desbotar as túas subscricións entrando nos axustes da Google Play." Procurar tipos de PDI - Combina tipos de PDI de diferentes categorías. Preme en \"Trocar\" para marcar todo, preme o lado esquerdo para escoller unha categoría. + Combina tipos de PDI de diferentes categorías. Preme en \"trocar\" para marcar todo, preme o lado esquerdo para escoller unha categoría. Acción %1$s non admitida Rastrexador do OsmAnd OsmAnd + Mapillary @@ -3710,17 +3710,17 @@ Lon %2$s Favoritos Subscrición - OsmAnd Live Compras do OsmAnd - A guía para a simboloxía dun mapa + A guía para a simboloxía dun mapa. Perfís de navegación • Novos mapas sen conexión das pendentes \n \n • Personalización máis completa dos favoritos e puntos de referencia GPX (cores personalizadas, iconas, formas) \n -\n • Nova personalización na orde dos elementos en Configurar mapa, menú contextual e menú lateral +\n • Nova personalización na orde dos elementos en \"Configurar mapa\", \"menú contextual\" e \"gabeta\" \n \n • A Wikipedia agora visualízase coma una capa separada en Configurar mapa, escolle só as linguas precisas \n -\n • Crea o teu propio filtro/mapas de puntos de interese, con total flexibilidade +\n • Crea o teu propio filtro / mapas de puntos de interese, con total flexibilidade \n \n • Engadíronse opcións para restabelecer os axustes dos perfís personalizados \n @@ -3736,14 +3736,16 @@ Lon %2$s Agochar transporte público Amosar transporte público Amosar/agochar transporte público - Un botón que amosa ou agocha o transporte público no mapa. - Crear/Editar PDI + Botón que amosa ou agocha o transporte público no mapa. + Crear / Editar PDI Posicións de aparcamento Engadir / Editar favorito Restabelecer a orde dos elementos predefinidos Voltar á edición - Premendo no botón de acción mudarase entre os perfís escollidos. + O botón de acción troca entre os perfís escollidos. Engadir perfil Mudar perfil da aplicación - Non se atoparon os perfís marcados para esta acción. + Non foi posíbel atopar ningún destes perfís. + Mapa xeral do mundo (detallado) + Tipo non admitido \ No newline at end of file diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index dc3a91f654..16d80dc602 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -1119,7 +1119,7 @@ פתיחת Mapillary התקנה שיפור כיסוי התמונות עם Mapillary - ניתן להתקין את Mapillary כדי להוסיף תמונה אחת או יותר למיקום הזה במפה. + ניתן להתקין את Mapillary כדי להוסיף תמונות למיקום הזה במפה. תמונות מקוונות הוספת תמונות אין כאן תמונות. @@ -1327,7 +1327,7 @@ הצגת קווי כיוון מהמיקום שלך למיקומי הסמנים הפעילים. הצגת חץ או שניים המציינים את כיוון הסמנים הפעילים. ניתן לבחור כיצד להציג את המרחק עד לסמנים הפעילים. - ציון כמות מחווני כיוון: + ציון כמות מחווני כיוון. כמות הספרות העשרוניות ימין שמאל @@ -1712,7 +1712,7 @@ הוספת קובצי GPX ייבוא קובצי GPX או הקלטת מסלולים. הוספת מועדפים - ייבוא מועדפים או הוספה על ידי סימון נקודות במפה. + ייבוא מועדפים או הוספתם על ידי סימון נקודות במפה. ייבוא קובץ GPX הקובץ %1$s אינו מכיל נקודות דרך, לייבא אותו כמסלול? הזזת נקודה @@ -2004,7 +2004,7 @@ נוספה הסמן %s הופעל. אפשר ליצור הערות! - ניתן להוסיף הערה מסוג שמע, וידאו או תמונה לכל נקודה במפה באמצעות וידג׳ט או תפריט הקשר. + ניתן להוסיף הערה מסוג שמע, וידאו או תמונה לכל נקודה במפה באמצעות הווידג׳טים או תפריטי ההקשר. הערות שמע/וידאו לפי תאריך לפי תאריך לפי סוג @@ -3451,18 +3451,18 @@ לבדוק ולשתף תיעוד מפורט של יומני היישומון נדרשת הרשאה כדי להשתמש באפשרות הזו. סידור הקטגוריות מחדש - ניתן להחליף את סדר הרשימה ולהסתיר קטגוריות בלתי נחוצות. כמו כן, אפשר לייבא או לייצא את כל השינויים עם פרופילים. - ניתן להוסיף קטגוריה חדשה מותאמת אישית על ידי בחירה בקטגוריה נחוצה אחת או יותר. - איפוס לבררת מחדל יחזיר את הסדר למצב בררת המחדל כמו לאחר ההתקנה. + ניתן להחליף את סדר הרשימה ולהסתיר קטגוריות בלתי נחוצות. אפשר לייבא או לייצא את כל השינויים עם פרופילים. + ניתן להוסיף קטגוריה חדשה מותאמת אישית על ידי בחירה בקטגוריה אחת או יותר. + ‚איפוס לבררת מחדל’ יחזיר את הסדר למצב בררת המחדל כמו בהתקנה. זמין הוספת קטגוריה מותאמת אישית הצגה רק בלילה - כל הגדרות התוסף שוחזרו למצב בררת המחדל. - כל הגדרות הפרופיל אופסו למצב בררת המחדל. + כל הגדרות התוסף שוחזרו לבררת המחדל. + כל הגדרות הפרופיל אופסו לבררת המחדל. %1$s/%2$s שקיעה ב־%1$s זריחה ב־%1$s - מצב הנגישות כבוי ב־Android שלך. + מצב הנגישות כבוי במערכת ה־Android שלך. נא לבחור שם לפרופיל פתיחת ההגדרות התוסף כבוי @@ -3485,8 +3485,8 @@ הזווית המזערית בין המיקום שלי והמסלול המלצה: קשה לחזות מה יוקלט ומה לא, יכול להיות שעדיף לכבות את המסנן הזה. להשתמש בתפוגת שומר המסך של המערכת - מושבת כבררת מחדל, אם OsmAnd מופעל בחזית, המסך לא נכבה. -\n + מושבת כבררת מחדל: בזמן ש־OsmAnd מופעל בחזית, המסך לא יכבה. +\n \nאם פעיל, OsmAnd ישתמש בהגדרות כיבוי המסך של המערכת. • פרופילים: מעתה ניתן לשנות סדר, להגדיר סמל למפה, לשנות את כל ההגדרות לפרופיל הבסיסי ולשחזר אותן לבררות המחדל \n @@ -3730,4 +3730,5 @@ החלפת פרופיל יישומון לא ניתן למצוא פרופילים שכאלו. מפת סקירת העולם (מפורטת) + סוג לא נתמך \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index b7e790be2a..d619f0d562 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -2354,7 +2354,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Max/Min Min/Max Navigáció szüneteltetése/folytatása - A navigáció szüneteltetéséhez vagy folytatásához koppintson erre a gombra. + Gomb a navigáció szüneteltetéséhez vagy folytatásához. „Navigáció véget ért” panel megjelenítése Navigáció indítása/megállítása A navigáció elkezdéséhez vagy befejezéséhez koppintson erre a gombra. @@ -2543,11 +2543,11 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Lezárt jegyzetek megjelenítése OSM-jegyzetek megjelenítése/elrejtése a térképen. GPX – megfelelő export a JOSM és más OSM-szerkesztők számára. - OSC – megfelelő export az OpenStreetMap számára. + OSC – megfelelő export az OSM számára. GPX-fájl OSC-fájl Fájltípus kijelölése - Exportálás típusának kijelölése: OSM-jegyzetek, érdekes pontok (POI-k) vagy mindkettő. + Exportálás OSM-jegyzetként, érdekes pontként (POI) vagy mindkét módon. Minden adat OSM-jegyzetek Holnap ekkor nyit: @@ -2712,7 +2712,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Évente megújul %1$.2f %2$s Fizetési időköz: - Az adományok az OpenStreetMap-térképezést támogatják. + Az adományok az OSM-térképezést támogatják. Törlöd „%s” térképjelölőt\? Térképjelölő szerkesztése Utca keresése @@ -3138,7 +3138,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Navigáció testreszabása Téma, mértékegység, régió Profil testreszabása - A riasztások a képernyő bal alsó sarkában jelennek meg a navigáció közben. + A képernyő bal alsó sarkában megjelenő riasztások navigáció közben. Nyelv és kimenet Profilok létrehozása, importálása, szerkesztése Alkalmazásprofilok kezelése… @@ -3156,7 +3156,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Útvonal paraméterek Bővítménybeállítások Töltsd le a részletes %s térképet a terület megtekintéséhez. - Belső tároló, a felhasználó és a többi alkalmazás számára rejtett, kizárólag az OsmAnd számára hozzáférhető + Az OsmAnd belső tárolója (felhasználók és más alkalmazások számára rejtett). Tárolás mappájának módosítása Szélességkorlátozás Adja meg az útvonalakon a járművekre vonatkozó szélességkorlátozást. @@ -3450,8 +3450,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Az alkalmazás részletes naplóinak ellenőrzése és megosztása A beállítás használatához engedélyre van szükség. Kategóriák átrendezése - Lista sorrendjének módosítása, fölösleges kategóriák elrejtése. A lista a profilokkal importálható és exportálható. - Egy vagy több szükséges kategória kijelölésével hozzáadhat egy egyedi kategóriát. + Lista sorrendjének módosítása, kategóriák elrejtése. A lista a profilokkal importálható és exportálható. + Egy vagy több kategória kijelölésével hozzáadhat egy egyedi kategóriát. Rendelkezésre áll Egyedi kategória hozzáadása Csak éjszaka jelenjék meg @@ -3482,7 +3482,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Megjelenítés stílusa Útvonaltervezés %1$s/%2$s - Alapértelmezésben le van tiltva, így amennyiben az OsmAnd az előtérben fut, a kijelző nem kapcsol ki. + Alapértelmezésben le van tiltva: amíg az OsmAnd az előtérben fut, a kijelző nem kapcsol ki. \n \nAmennyiben engedélyezve van, az OsmAnd az időtúllépésre vonatkozó rendszerbeállítást használja. Kijelző időtűllépés rendszerbeállítás használata @@ -3491,9 +3491,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Legkisebb távolság, amely felett újraszámítja az útvonalat %1$s — %2$s — %3$s Menü - Bővítmény letiltva + Bővítmény kikapcsolva Beállítások megnyitása - Újraszámítás letiltása + Nincs újraszámítás Kérem, adjon nevet a profilnak Válassza ki az importálandó adatot. Mindkettő megtartása @@ -3515,7 +3515,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Az útvonal újraszámításra kerül, amennyiben az útvonal és a jelenlegi helyzet közötti távolság nagyobb, mint a kiválasztott érték. %1$s a %2$s-ból Lejtők - Domborzat megjelenítése/elrejtése + Domborzat megjelenítése / elrejtése Domborzat elrejtése Domborzat megjelenítése Váltógomb, amely a térképen megjeleníti vagy elrejti a domborzati réteget. @@ -3541,7 +3541,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Elválasztó Az ez alatti elemek elválasztásra kerülnek egy elválasztóval. Ezek az elemek a menüből elrejtésre kerültek, azonban az általuk képviselt beállítások vagy bővítmények továbbra is érvényben maradnak. - A \'fő műveletek\'-hez csak 4 elem tartozhat. + Csak 4 elemet tartalmaz. Rendszeralkalmazás használata Fényképező zárhang Hitelesítés sikeres @@ -3606,7 +3606,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Kedvencek Előfizetés - OsmAnd Live OsmAnd vásárlások - Útmutató a térkép szimbolikájához + Útmutató a térkép szimbolikájához. Navigációs profilok Váltógomb, amely a térképen megjeleníti vagy elrejti a tömegközlekedési réteget. Ezekhez a műveletekhez a \"%1$s\" gombra koppintva férhet hozzá. @@ -3615,13 +3615,13 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Tömegközlekedés elrejtése Tömegközlekedés megjelenítése Tömegközlekedés megjelenítése/elrejtése - POI készítés/módosítás + POI készítés / módosítás Parkolási pozíció Kedvenc hozzáadása/módosítása Alapértelmezett elemsorrend visszaállítása Vissza a szerkesztéshez - A művelethez kiválasztott profilok nem találhatók. - A műveletgombra koppintva válthat a kiválasztott profilok között. + Nem található ilyen profil + A műveletgomb vált a kiválasztott profilok között. Profil hozzáadása Alkalmazásprofil módosítása Kombináljon POI típusokat különböző kategóriákból. Koppintson egy kapcsolóra az összes altípus kiválasztásához, vagy koppintson egy szövegre az egyes altípusok kijelöléséhez. @@ -3631,7 +3631,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n \n • Kedvencek és GPX-útpontok teljes testreszabhatósága – egyéni színek, ikonok, formák \n -\n • Opciók menü, Térkép beállítása és Főmenü elemeinek sorrendje testreszabhatók +\n • Opciók menü, Térkép beállítása és Főmenü elemeinek sorrendje testreszabható \n \n • Wikipédia külön rétegként szerepel a Térkép beállítása menüben, a kívánt nyelvek kiválaszthatók \n @@ -3647,4 +3647,5 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n \n Nem támogatott típus + Folytatás \ No newline at end of file diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 82d219cb9e..dc8ed9599c 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3628,4 +3628,18 @@ Rappresenta l\'area: %1$s x %2$s \nDurante la lettura potrai cambiare fra tutte le lingue disponibili. Plugin sviluppatore Oggetti + Nascondi i trasporti pubblici + Mostra i trasporti pubblici + Mostra/nascondi i trasporti pubblici + Il pulsante mostra o nasconde nella mappa i trasporti pubblici. + Crea/Modifica PDI + Posizione di parcheggio + Aggiungi/Modifica Preferito + Ripristina l\'ordine preimpostato degli oggetti + Ritorna alla modifica + Il pulsante azione cambia fra i profili selezionati. + Aggiungi profilo + Cambia il profilo dell\'app + Non è possibile trovare alcun profilo. + Mappa mondiale generale (dettagliata) \ No newline at end of file diff --git a/OsmAnd/res/values-land/sizes.xml b/OsmAnd/res/values-land/sizes.xml index a927d1e718..3dac1a225d 100644 --- a/OsmAnd/res/values-land/sizes.xml +++ b/OsmAnd/res/values-land/sizes.xml @@ -1,8 +1,6 @@ - 200dp - - 12dp + 22dp 12dp 12dp diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 00e5606654..70b9e5eb7e 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -51,13 +51,11 @@ 24dp 6dp 114dp - 15dp -24dp 80dp 66dp 36dp 30dp - 24dp 15dp 9dp 23dp @@ -69,7 +67,6 @@ 11dp 9dp 5dp - 54dp 90dp 18dp @@ -101,12 +98,9 @@ 21dp 72dp 18dp - 72dp 18dp 48dp 60dp - 90dp - 84dp 78dp 27dp 27dp diff --git a/OsmAnd/res/values-mr/phrases.xml b/OsmAnd/res/values-mr/phrases.xml index b049308fb0..3356b753bb 100644 --- a/OsmAnd/res/values-mr/phrases.xml +++ b/OsmAnd/res/values-mr/phrases.xml @@ -1,108 +1,113 @@ - -दुकान - तातडीची सेवा - सार्वजनिक परिवहन - पाणीपुरवठा - शिक्षण - प्रशासकीय - पर्यटन - बस थांबा - ट्राम थांबा - कार्यालय - विकिपीडिया - पुस्तकालय - परिवहन - रस्त्यतील अडथळा - व्यक्तिगत परिवहन - वायु परिवहन - जल परिवहन - उर्जा - क्रिडा - कला - नैसर्गिक - बेकरी - मद्य - चॉकलेट दुकान - कॉफी दुकान - मॉल - मांस - चहाचे दुकान - वाइन दुकान - - सायकल दुकान - कपड्याचे दुकान - मुलांचे कपडे - कॉम्प्युटर दुकान - पडद्याचे दुकान - फुलांचे दुकान - फर्निचर - ज्युदो - बॅडमिंटन - मायक्रोव्हेव ओवन: हो - मायक्रोव्हेव ओवन: नाही - बिलियर्डस - - खाद्य - आर्थिक - सैन्य - मिठाई - आइसक्रीम पार्लर - चपलांचे दुकान - मेणबत्त्यांचे दुकान - दरवाजे - भेटवस्तूंचे दुकान - वनौषधी दुकान - शिकारीचे साहित्य - दागिन्याचे दुकान - वैद्यकीय पुरवठा - वाद्ये - संगीत दुकान - रंगाचे दुकान - पाळीव प्राण्यांचे दुकान - खेळण्यांचे दुकान - सौंदर्य प्रसाधने - घड्याळांचे दुकान - शस्त्रांचे दुकान - पोलिस - गाव - तालुका - शहर - फटाक्यांचे दुकान - - लांबी - - नेपाळी विकि - गुजराती विकि - पंजाबी विकि - उर्दु विकि - तामिळ विकि - मल्ल्याळम विकि - मराठी विकि - लॅटिन विकि - बंगाली विकि - तापमान - इमारत प्रकार: चर्च - इमारत प्रकार: मशिद - इमारत प्रकार: मंदिर - चौक - खाद्य दुकान - मनुष्य निर्मित - संभाषण - राहण्याची व्यवस्था - क्लब - शेतीमाल दुकान - दुग्धजन्य पदार्थांचे दुकान - इंधन प्रकार - प्रकार - इंटरनेट प्रकार - वाहनतळ प्रकार - राजधानी - धर्म - धूम्रपान - तंबू - वीज पुरवठा - कचरा विल्हेवाट - करमणूक - फोटो स्टुडिओ - - + + + दुकान + तातडीची सेवा + सार्वजनिक परिवहन + पाणीपुरवठा + शिक्षण + प्रशासकीय + पर्यटन + बस थांबा + ट्राम थांबा + कार्यालय + विकिपीडिया + पुस्तकालय + परिवहन + रस्त्यातील अडथळा + व्यक्तिगत परिवहन + वायु परिवहन + जल परिवहन + उर्जा + क्रिडा + कला + नैसर्गिक + बेकरी + मद्य + चॉकलेट दुकान + कॉफी दुकान + मॉल + मांस + चहाचे दुकान + वाइन दुकान + सायकल दुकान + कपड्याचे दुकान + मुलांचे कपडे + कॉम्प्युटर दुकान + पडद्याचे दुकान + फुलांचे दुकान + फर्निचर + ज्युदो + बॅडमिंटन + मायक्रोव्हेव ओवन: हो + मायक्रोव्हेव ओवन: नाही + बिलियर्डस + खाद्य + आर्थिक + सैन्य + मिठाईचे दुकान + आइसक्रीम पार्लर + चपलांचे दुकान + मेणबत्त्यांचे दुकान + दरवाजे + भेटवस्तूंचे दुकान + वनौषधी दुकान + शिकारीचे साहित्य + दागिन्याचे दुकान + वैद्यकीय पुरवठा + वाद्ये + संगीत दुकान + रंगाचे दुकान + पाळीव प्राण्यांचे दुकान + खेळण्यांचे दुकान + सौंदर्य प्रसाधने + घड्याळांचे दुकान + शस्त्रांचे दुकान + पोलिस + गाव + तालुका + शहर + फटाक्यांचे दुकान + लांबी + नेपाळी विकि + गुजराती विकि + पंजाबी विकि + उर्दु विकि + तामिळ विकि + मल्ल्याळम विकि + मराठी विकि + लॅटिन विकि + बंगाली विकि + तापमान + इमारत प्रकार: चर्च + इमारत प्रकार: मशिद + इमारत प्रकार: मंदिर + चौक + खाद्य दुकान + मनुष्य निर्मित + संभाषण + राहण्याची व्यवस्था + क्लब + शेतीमाल दुकान + दुग्धजन्य पदार्थांचे दुकान + इंधन प्रकार + प्रकार + इंटरनेट प्रकार + वाहनतळ प्रकार + राजधानी + धर्म + धूम्रपान + तंबू + वीज पुरवठा + कचरा विल्हेवाट + करमणूक + फोटो स्टुडिओ + पाणी पुरवठा प्रकार + वॉशिंग मशिन + लांबी + आंतरराष्ट्रीय + ग्रीक + जपानी + चीनी + भारतीय + पाण्याचा स्त्रोत + \ No newline at end of file diff --git a/OsmAnd/res/values-mr/strings.xml b/OsmAnd/res/values-mr/strings.xml index a1d76364ab..a7f347d7d4 100644 --- a/OsmAnd/res/values-mr/strings.xml +++ b/OsmAnd/res/values-mr/strings.xml @@ -1,373 +1,334 @@ -डाव्या बाजूने ड्रायव्हिंग - अजून स्थान माहित नाही - पारदर्शकता बदला (० - पारदर्शक, २५५ - अपारदर्शक) - फाइल डाउनलोड थांबवायचे का? - ऑनलाइन नकाशे (टाइल्स) - साधारण नकाशे (वेक्टर) - ऑनलाइन नकाशे (टाइल्स) - ऑनलाइन नकाशे वापरा (डाउनलोड करून एसडी कार्ड वार साठवा) - ऑनलाइन नकाशे - Configure online or cached tile map sources - - प्लगिन्स - प्लगिन्स - निवडलेल्या आवाजाची वाक्ये ऐकवा - आवाज तपासा - जिपीएक्स फाइल्स ओएसएम ला पाठवायच्या का? - वर्णन - जीपीएक्स फाइल्स अपलोड करण्यासाठी ओएसएम युजरनेम आणि पासवर्ड सांगा. - सहाय्य - नविन वैशिठ्यासाठी सहाय्य करा - - पट्टी दाखवा - माहिती - मदत - - चालू - बंद - पुन्हा मेनूकडे - झूम कमी करा - झूम वाढवा - झूम लेवल आहे - उत्तर - इशान्य-उत्तर - इशान्य - इशान्य-पुर्व - पुर्व - आग्नेय-पुर्व - आग्नेय - आग्नेय-दक्षिण - दक्षिण - नैऋत्य-दक्षिण - नैऋत्य - नैऋत्य-पश्चिम - पश्चिम - वायव्य-पश्चिम - वायव्य - वायव्य-उत्तर - पुढचा - पुढील उजवा - उजवीकडे - मागील उजवा - मागे - मागील डावा - डावीकडे - पुढील डावा - वाजता - कडे - अचूकता - उंची - काहि माहिती नाही - बाजूप्रमाणे (८ भाग) - घड्याळासारखे (१२ भाग) - दिशांचा प्रकार - मी इथे आहे - निवडलेले क्षेत्र दाखवण्यासाठी पुरेशी प्रोसेस मेमरी नाही - अपलोड करत आहे … - {0} पीओआय/नोट्स अपलोड झाले - - बदल ओएसएम मधे अपलोड करा - बदल काढून टाका - - निशुल्क व्हर्जन - पिओआय वर्णन दाखवा - उत्तर अमेरिका - उत्तर अमेरिका - युनायटेड स्टेट्स - मध्य अमेरिका - दक्षिण अमेरिका - युरोप - युरोप - फ्रान्स - युरोप - जर्मनी - रशिया - अफ्रिका - आशिया - ऑस्ट्रेलिया आणि ओशेनिया - विकिपेडिया (ऑफलाइन) - - दिशादर्शन - दिशादर्शनाचे पर्याय ठरवा - ऑफलाइन डेटा (डाउनलोड) - सर्वसाधारण पर्याय - तुमचे ओएसएम युजरनेम - तुमचा ओएसएम पासवर्ड - - %1$s एमबी डाउनलोड करण्यसाठी पुरेशी जागा शिल्लक नाही (शिल्लक जागा: %2$s). - {0} फाइल डाउनलोड करायच्या का? + + + डाव्या बाजूने ड्रायव्हिंग + अजून स्थान माहित नाही + पारदर्शकता बदला (० - पारदर्शक, २५५ - अपारदर्शक) + फाइल डाउनलोड थांबवायचे का? + ऑनलाइन नकाशे (टाइल्स) + साधारण नकाशे (वेक्टर) + ऑनलाइन नकाशे (टाइल्स) + ऑनलाइन नकाशे वापरा (डाउनलोड करून एसडी कार्ड वार साठवा) + ऑनलाइन नकाशे + Configure online or cached tile map sources + प्लगिन्स + प्लगिन्स + निवडलेल्या आवाजाची वाक्ये ऐकवा + आवाज तपासा + जिपीएक्स फाइल्स ओएसएम ला पाठवायच्या का? + वर्णन + जीपीएक्स फाइल्स अपलोड करण्यासाठी ओएसएम युजरनेम आणि पासवर्ड सांगा. + सहाय्य + नविन वैशिठ्यासाठी सहाय्य करा + पट्टी दाखवा + माहिती + मदत + चालू + बंद + पुन्हा मेनूकडे + झूम कमी करा + झूम वाढवा + झूम लेवल आहे + उत्तर + इशान्य-उत्तर + इशान्य + इशान्य-पुर्व + पुर्व + आग्नेय-पुर्व + आग्नेय + आग्नेय-दक्षिण + दक्षिण + नैऋत्य-दक्षिण + नैऋत्य + नैऋत्य-पश्चिम + पश्चिम + वायव्य-पश्चिम + वायव्य + वायव्य-उत्तर + पुढचा + पुढील उजवा + उजवीकडे + मागील उजवा + मागे + मागील डावा + डावीकडे + पुढील डावा + वाजता + कडे + अचूकता + उंची + काहि माहिती नाही + बाजूप्रमाणे (८ भाग) + घड्याळासारखे (१२ भाग) + दिशांचा प्रकार + मी इथे आहे + निवडलेले क्षेत्र दाखवण्यासाठी पुरेशी प्रोसेस मेमरी नाही + अपलोड करत आहे … + {0} पीओआय/नोट्स अपलोड झाले + बदल ओएसएम मधे अपलोड करा + बदल काढून टाका + निशुल्क व्हर्जन + पिओआय वर्णन दाखवा + उत्तर अमेरिका + उत्तर अमेरिका - युनायटेड स्टेट्स + मध्य अमेरिका + दक्षिण अमेरिका + युरोप + युरोप - फ्रान्स + युरोप - जर्मनी + रशिया + अफ्रिका + आशिया + ऑस्ट्रेलिया आणि ओशेनिया + विकिपेडिया (ऑफलाइन) + दिशादर्शन + दिशादर्शनाचे पर्याय ठरवा + ऑफलाइन डेटा (डाउनलोड) + सर्वसाधारण पर्याय + तुमचे ओएसएम युजरनेम + तुमचा ओएसएम पासवर्ड + %1$s एमबी डाउनलोड करण्यसाठी पुरेशी जागा शिल्लक नाही (शिल्लक जागा: %2$s). + {0} फाइल डाउनलोड करायच्या का? {1} एमबी जागा लागेल. (सध्या {2} एमबी जागा शिल्लक आहे.) - - - वेक्टर नकाशाचे पर्याय - %1$s काढून टाकायचे का? - उपनगर - खेडं - गाव - तालुका - शहर - फाइलचे नाव बदलू शकत नाही. - ह्या नावाची फाइल आधीच अस्तित्वात आहे. - जिपिएक्स राऊट - नावाने शोधा - नाव बदला - - स्थान शोधत आहे … - माझे स्थान (सापडले) - पत्ता … - आवडती ठिकाणे… - - ह्याच्या जवळ शोधा : - इथे जवळ शोधा - फाइलचे नाव : - ह्या नावाने फाइल आधीच अस्तित्वात आहे. - साठवा - - ओएसएम ला पाठवा - नकाशा सविस्तरपणे दाखवा - घर - मित्र - ठिकाणे - इतर - नाव - वर्गीकरण - नाही, धन्यवाद - नकाशाच्या फाइल्स मॅनेज करा - डाउनलोड - पिओआय डेटा - नविन शोध - नकाशावरील नावांसाठी अक्षरांचा आकार ठरवा - अक्षरांचा आकार - - - पुढे - मागे - मैल/फूट - मैल/यार्ड - किमी/मी - यार्ड - फूट - मैल/तास - शैक्षणिक - आपात्कालिन - मनोरंजन - आर्थिक - आरोग्य - ऐतिहासिक - सैनिकी - नैसर्गिक - कार्यालय - इतर - दुकाने - खेळ - उपजीवन - पर्यटन - परिवहन - किमी - किमी/तास - मी - सर्वात जवळील पिओआय - खाद्य़ - पर्यटकांसाठी - इंधन - दिवस - रात्र - सुर्योदय/सूर्यास्त - सर्व निवडा - वेगवान रस्ता - निवडा सर्वात वेगवान रस्त्यासाठी किंवा निवड काढा सर्वात जवळच्या रस्त्यासाठी - नकाशा डाउनलोड करा - पिओआय वेबसाइट दाखवा - पिओआय फोन दाखवा - वेबसाइट - फोन - - - ध्वनीमुद्रित आवाज - पिओआय बदला - पिओआय काढून टाका - कंपास प्रमाणे - दिशेप्रमाणे - फिरवू नका - मार्ग तपशील - कुठलाही - आवडती ठिकाणे - नकाशाचा स्त्रोत… - पिओआय शोधा - - मी कुठे आहे? - नेटवर्क - जीपीइस - सेकंद - मि. - आवाज चालू आहे - आवाज बंद आहे - दिशादशर्नासाठी आवाज मार्गदर्शन निवडा - आवाज मार्गदर्शन - - उजवीकडे वळा आणि जा - पटकन उजवीकडे वळा आणि जा - हलके उजवीकडे वळा आणि जा - डावीकडे वळा आणि जा - पटकन डावीकडे वळा आणि जा - हलके डावीकडे वळा आणि जा - उलटे वळा आणि जा - सरळ जा - नंतर - सिग्नल शोधत आहे… - जवळपास शोधा - उभा - आडवा - नविन नियम जोडा - मार्ग - थांबा - थांबे - शोध संपवा - उतरण्याचा थांबा निवडा - प्रवासाचे अंतर - परिवहन - ठीक - सार्वजनिक परिवहन थांबे नकाशावर दाखवा - परिवहन थांबे दाखवा - शहर: {0} - रस्ता: {0}, {1} - चौक: {0} x {1} in {2} - इमारत: {0}, {1}, {2} - "सगळे काढून टाका" - डेटा अपलोड करत आहे… - अपलोड करत आहे… - काही सापडले नाही - शोधत आहे… - पत्ता शोधत आहे… - ऑफलाएन शोध - ऑनलाएन शोध - एकुण अंतर %1$s, प्रवासाचा वेळ %2$d ता %3$d मि. - डाउनलोड {0} - {1} ? - पत्ता - डाउनलोड यशस्वी - - - उपलब्ध प्रदेशांची यादी डाउनलोड करत आहे… - प्रदेशांची यादी osmand.net वरून काढू शकलो नाही. - - फक्त दाखवा - पालन करा - परिवहन माध्यम: - क्रुपया आधी इच्छिन स्थळ निवडा - - असफल - - नविन मार्ग निवडला, अंतर - आपण इच्छित स्थळी पोहोचला आहात - बंद करा - डेटा लोड करत आहे… - समाप्त - - मार्ग गणना करण्य़ासाठी इंटरनेटचा वापर करा - ऑनलाइन दिशादर्शन वापरा - डेटा - आधिक सेटिंग्स - सेटिंग्स - नकाशा अपडेट करा - - आवडत्या ठिकणात नोंद करा - इंग्लिश आणि बोली नावांची निवड - नकाशामधे इंग्लिश नावे वापरा - ऍप्लिकेशन सेटिंग्स - पत्ता शोधा - इमारत निवडा - रस्ता निवडा - शहर किंवा पोस्टकोड निवडा - देश निवडा - नकाशाचा स्त्रोत - इंटरनेट वापरा - तुमचे स्थान दाखवा - - - नसलेल्या टाइल्स डाउनलोड करण्यासाठी इंटरनेटचा वापर करा - दिशादर्शन ऍप्लिकेशन - बाहेर पडा - - - - शोधा - शोधा - अजून शोधा - यादिमधून प्रदेश निवडा - कार - सायकल - पादचारी - मध्य़ - खाली - अक्षांश - रेखांश - नकाशावर दाखवा - पत्ता निवडा - प्रदेश - शहर - रस्ता - इमारत - इमारत - - - नकाशा अपडेट करा - पिओआय तयार करा - हो - रद्द करा - नाही - आवडते ठिकण बदला - आवडते ठिकाण काढून टाका - पिओआय बदला - पिओआय तयार करा - पिओआय काढून टाका - काढून टाका - "उघडे असण्याची वेळ" - टिप्पणी - - - पत्त्याचा शोध - सार्वजनिक परिवहन शोध - आवडत्या ठिकणांचा शोध - नकाशा आधिक तपशिलवार दाखवा - - तास - मिनिटे - कंपास वापरा -परिवहन माध्यम निवडा -सुर्योदय : %1$s \nसूर्यास्त : %2$s -दिवस/रात्र माहिती - - - -स्क्रिन कॉन्फिगर करा -कच्चे रस्ते टाळा -टाळा… -पट्टी -बघण्याची दिशा - - -सलग -इमेल -पार्किंग + वेक्टर नकाशाचे पर्याय + %1$s काढून टाकायचे का? + उपनगर + खेडं + गाव + तालुका + शहर + फाइलचे नाव बदलू शकत नाही. + ह्या नावाची फाइल आधीच अस्तित्वात आहे. + जिपिएक्स राऊट + नावाने शोधा + नाव बदला + स्थान शोधत आहे … + माझे स्थान (सापडले) + पत्ता … + आवडती ठिकाणे… + ह्याच्या जवळ शोधा : + इथे जवळ शोधा + फाइलचे नाव : + ह्या नावाने फाइल आधीच अस्तित्वात आहे. + साठवा + ओएसएम ला पाठवा + नकाशा सविस्तरपणे दाखवा + घर + मित्र + ठिकाणे + इतर + नाव + वर्गीकरण + नाही, धन्यवाद + नकाशाच्या फाइल्स मॅनेज करा + डाउनलोड + पिओआय डेटा + नविन शोध + नकाशावरील नावांसाठी अक्षरांचा आकार ठरवा + अक्षरांचा आकार + पुढे + मागे + मैल/फूट + मैल/यार्ड + किमी/मी + यार्ड + फूट + मैल/तास + शैक्षणिक + आपात्कालिन + मनोरंजन + आर्थिक + आरोग्य + ऐतिहासिक + सैनिकी + नैसर्गिक + कार्यालय + इतर + दुकाने + खेळ + उपजीवन + पर्यटन + परिवहन + किमी + किमी/तास + मी + सर्वात जवळील पिओआय + खाद्य़ + पर्यटकांसाठी + इंधन + दिवस + रात्र + सुर्योदय/सूर्यास्त + सर्व निवडा + वेगवान रस्ता + निवडा सर्वात वेगवान रस्त्यासाठी किंवा निवड काढा सर्वात जवळच्या रस्त्यासाठी + नकाशा डाउनलोड करा + पिओआय वेबसाइट दाखवा + पिओआय फोन दाखवा + वेबसाइट + फोन + ध्वनीमुद्रित आवाज + पिओआय बदला + पिओआय काढून टाका + कंपास प्रमाणे + दिशेप्रमाणे + फिरवू नका + मार्ग तपशील + कुठलाही + आवडती ठिकाणे + नकाशाचा स्त्रोत… + पिओआय शोधा + मी कुठे आहे? + नेटवर्क + जीपीइस + सेकंद + मि. + आवाज चालू आहे + आवाज बंद आहे + दिशादशर्नासाठी आवाज मार्गदर्शन निवडा + आवाज मार्गदर्शन + उजवीकडे वळा आणि जा + पटकन उजवीकडे वळा आणि जा + हलके उजवीकडे वळा आणि जा + डावीकडे वळा आणि जा + पटकन डावीकडे वळा आणि जा + हलके डावीकडे वळा आणि जा + उलटे वळा आणि जा + सरळ जा + नंतर + सिग्नल शोधत आहे… + जवळपास शोधा + उभा + आडवा + नविन नियम जोडा + मार्ग + थांबा + थांबे + शोध संपवा + उतरण्याचा थांबा निवडा + प्रवासाचे अंतर + परिवहन + ठीक + सार्वजनिक परिवहन थांबे नकाशावर दाखवा + परिवहन थांबे दाखवा + शहर: {0} + रस्ता: {0}, {1} + चौक: {0} x {1} in {2} + इमारत: {0}, {1}, {2} + "सगळे काढून टाका" + डेटा अपलोड करत आहे… + अपलोड करत आहे… + काही सापडले नाही + शोधत आहे… + पत्ता शोधत आहे… + ऑफलाएन शोध + ऑनलाएन शोध + एकुण अंतर %1$s, प्रवासाचा वेळ %2$d ता %3$d मि. + डाउनलोड {0} - {1} ? + पत्ता + डाउनलोड यशस्वी + उपलब्ध प्रदेशांची यादी डाउनलोड करत आहे… + प्रदेशांची यादी osmand.net वरून काढू शकलो नाही. + फक्त दाखवा + पालन करा + परिवहन माध्यम: + क्रुपया आधी इच्छिन स्थळ निवडा + असफल + नविन मार्ग निवडला, अंतर + आपण इच्छित स्थळी पोहोचला आहात + बंद करा + डेटा लोड करत आहे… + समाप्त + मार्ग गणना करण्य़ासाठी इंटरनेटचा वापर करा + ऑनलाइन दिशादर्शन वापरा + डेटा + आधिक सेटिंग्स + सेटिंग्स + नकाशा अपडेट करा + आवडत्या ठिकणात नोंद करा + इंग्लिश आणि बोली नावांची निवड + नकाशामधे इंग्लिश नावे वापरा + ऍप्लिकेशन सेटिंग्स + पत्ता शोधा + इमारत निवडा + रस्ता निवडा + शहर किंवा पोस्टकोड निवडा + देश निवडा + नकाशाचा स्त्रोत + इंटरनेट वापरा + तुमचे स्थान दाखवा + नसलेल्या टाइल्स डाउनलोड करण्यासाठी इंटरनेटचा वापर करा + दिशादर्शन ऍप्लिकेशन + बाहेर पडा + शोधा + शोधा + अजून शोधा + यादिमधून प्रदेश निवडा + कार + सायकल + पादचारी + मध्य़ + खाली + अक्षांश + रेखांश + नकाशावर दाखवा + पत्ता निवडा + प्रदेश + शहर + रस्ता + इमारत + इमारत + नकाशा अपडेट करा + पिओआय तयार करा + हो + रद्द करा + नाही + आवडते ठिकण बदला + आवडते ठिकाण काढून टाका + पिओआय बदला + पिओआय तयार करा + पिओआय काढून टाका + काढून टाका + "उघडे असण्याची वेळ" + टिप्पणी + पत्त्याचा शोध + सार्वजनिक परिवहन शोध + आवडत्या ठिकणांचा शोध + नकाशा आधिक तपशिलवार दाखवा + तास + मिनिटे + कंपास वापरा + परिवहन माध्यम निवडा + सुर्योदय : %1$s \nसूर्यास्त : %2$s + दिवस/रात्र माहिती + स्क्रिन कॉन्फिगर करा + कच्चे रस्ते टाळा + टाळा… + पट्टी + बघण्याची दिशा + सलग + इमेल + पार्किंग आपत्कालीन सार्वजनिक परिवहन करमणूक - - प्रथम शहर किंवा रस्ता निवडा + प्रथम शहर किंवा रस्ता निवडा वेळ अचूकपणा रस्त्याचे नाव - घर क्रमांक + घर क्रमांक पत्ता निवडा जिपिएस माहिती नकाशा प्राधान्य… - काही नाही + काही नाही दाखवा फोटो घ्या फोटो घ्या विडिओ रेकॉर्ड करा आवाज रेकॉर्ड करा नकाशा पहा - इच्छित स्थळ %1$s + इच्छित स्थळ %1$s इच्छित स्थळ निवडा रस्ता जवळपास्च्या शहरात शोधा वेग @@ -378,115 +339,97 @@ इच्छित स्थळ काढून टाका आवडते ठिकाण निवडा महामार्गांना प्राधान्य द्या - महामार्गांना प्राधान्य द्या + महामार्गांना प्राधान्य द्या क्रम बदला सुरू करा बंद करा - इतर नकाशे फक्त रस्ते साधारण नकाशा फक्त रस्त्याचा नकाशा - - सीमा - वेग मर्यादा + सीमा + वेग मर्यादा जिपिएक्स अक्षांश %1$.3f, रेखांश %2$.3f - - - इमारत सापडली नाही. इच्छित स्थळाची दिशा दाखवा मार्ग नाही - राहण्याची व्यवस्था - - - रस्त्याचे नाव - - मी कुठे आहे - कंपास - वाहनतळ - वेग - इच्छित स्थळ - उंची - पुढचे वळण - पुढचे वळण (लहान) - पुढचे दुसरे वळण - सुरूवातीचे ठिकाण रस्त्यापासून खुप दूर आहे. - डावीकडे रहा आणि जा - उजवीकडे रहा आणि जा - डावीकडून ट्राफिक असलेल्या देशांसाठी निवडा - सुरूवातीचे स्थळ अजून सापडले नाही - मैल - आवडते ठिकाण \'%s\' काढायचे का? - आवडते ठिकाण {0} यशस्वीरित्या काढले. - आवडत्या ठिकाणाचे नाव द्या - छेदणारा रस्ता - - छेदणारा रस्ता निवडा - सर्वात जवळच्या सुविधा - पिओआय निवडा - बघण्याची दिशा दाखवा - - रस्ते/इमारती लोड करत आहे… - पोस्ट कोड लोड करत आहे… - रस्ते लोड करत आहे… - शहरे लोड करत आहे… - पिओआय - पिओआय लोड करत आहे… - उघडण्याची वेळ - आवडते ठिकाण - पिओआय… - - मार्ग - - ऑफलाएन वेक्टर नकाशे - वेक्टर नकाशे लोड झाले नाही - - सार्वजनिक परिवहन शोधा - - डाउनलोड केलेले - मानव निर्मित - प्रशासकीय - अडथळे - लांबीचे माप बदला - लांबीचे एकक - - - - अपूर्ण - भाषा - भाषा निवडा (बदलल्यावर ओएसएमएएनडी पुन्हा चालू करा) - सिस्टिम - - घरक्रमांक + राहण्याची व्यवस्था + रस्त्याचे नाव + मी कुठे आहे + कंपास + वाहनतळ + वेग + इच्छित स्थळ + उंची + पुढचे वळण + पुढचे वळण (लहान) + पुढचे दुसरे वळण + सुरूवातीचे ठिकाण रस्त्यापासून खुप दूर आहे. + डावीकडे रहा आणि जा + उजवीकडे रहा आणि जा + डावीकडून ट्राफिक असलेल्या देशांसाठी निवडा + सुरूवातीचे स्थळ अजून सापडले नाही + मैल + आवडते ठिकाण \'%s\' काढायचे का? + आवडते ठिकाण {0} यशस्वीरित्या काढले. + आवडत्या ठिकाणाचे नाव द्या + छेदणारा रस्ता + छेदणारा रस्ता निवडा + सर्वात जवळच्या सुविधा + पिओआय निवडा + बघण्याची दिशा दाखवा + रस्ते/इमारती लोड करत आहे… + पोस्ट कोड लोड करत आहे… + रस्ते लोड करत आहे… + शहरे लोड करत आहे… + पिओआय + पिओआय लोड करत आहे… + उघडण्याची वेळ + आवडते ठिकाण + पिओआय… + मार्ग + ऑफलाएन वेक्टर नकाशे + वेक्टर नकाशे लोड झाले नाही + सार्वजनिक परिवहन शोधा + डाउनलोड केलेले + मानव निर्मित + प्रशासकीय + अडथळे + लांबीचे माप बदला + लांबीचे एकक + अपूर्ण + भाषा + भाषा निवडा (बदलल्यावर ओएसएमएएनडी पुन्हा चालू करा) + सिस्टिम + घरक्रमांक उघडा ठिकाणे - शोध - तपशील दाखवा - संदेश - वाहतुकीची चिह्ने व नियम नेमकेपणाने दाखविण्यासाठी कृपया आपले वाहनचालनाचे क्षेत्र निवडा: - सुस्वागतम् + शोध + तपशील दाखवा + संदेश + वाहतुकीची चिह्ने व नियम नेमकेपणाने दाखविण्यासाठी कृपया आपले वाहनचालनाचे क्षेत्र निवडा: + सुस्वागतम् आपणांस इतिहास पुसून टाकावयाचा आहे का? ता - मि - उर्वरित - - - किंवा - इतिहास - नकाशावर निवडा - आयात - निर्यात - अधिक… - अधिक क्रिया - क्रिया {0} - पत्ता - माझी ठिकाणे - ध्वनि - चलच्चित्र - छायाचित्र - जिपिएक्स रंग + मि + उर्वरित + + + किंवा + इतिहास + नकाशावर निवडा + आयात + निर्यात + अधिक… + अधिक क्रिया + क्रिया {0} + पत्ता + माझी ठिकाणे + ध्वनि + चलच्चित्र + छायाचित्र + जिपिएक्स रंग जिपिएक्स रुंदी लाल नारंगी @@ -507,12 +450,12 @@ विकिपेडिया विकिपेडिया नकाशे डाउनलोड करा - सद्ध्याचा मार्ग + सद्ध्याचा मार्ग वापरू नका - + मुळ रंग रात्र - महिना आणि देश निवडा + महिना आणि देश: सकाळ इतर नंतर @@ -557,4 +500,15 @@ मेमरी कार्ड बस ट्रेन - \ No newline at end of file + आकार निवडा + वर्तुळ + अष्टकोन + चौरस + भाषा + भाषा + सर्व भाषा + उर्दु + पंजाबी + नेपाळी + गुजराथी + \ No newline at end of file diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 8557eab8df..b89931b981 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -2354,7 +2354,7 @@ Vis retningsbestemte linjer fra din posisjon til de aktive markørplasseringene. Vis én eller to piler som indikerer retningen til de aktive markørene. Velg hvordan avstanden til aktive markører skal vises. - Velg antall retningsindikatorer: + Velg antall retningsindikatorer. Et trykk på kartet skjuler/viser kontrollknappene og miniprogrammene. Marker som passert Kunne ikke endre notatet. @@ -3040,9 +3040,9 @@ Del din tilbakemelding og legg til en vurdering på Google Play. Personvernspraksis Hjelp oss å forbedre OsmAnd - Tillat OsmAnd å samle inn og behandle anonym programbruksdata. Vi samler ikke inn eller lagrer data om din plassering, eller om plasseringer ser på på kartet. + Tillat OsmAnd å samle inn og behandle anonym programbruksdata. Ingen data om din plassering, eller om plasseringer ser på på kartet blir samlet inn. \n -\nDu kan alltid endre ditt valg i Innstillinger > Personvern og sikkerhet. +\nDu kan alltid endre ditt valg i \"Innstillinger\" → \"Personvern og sikkerhet\". Velg hvilken data du ønsker å dele: Nedlastede kart Besøkte skjermer @@ -3285,7 +3285,7 @@ \n \n • Ny kartnedlasting-dialog foreslår et kart til nedlasting mens man utforsker \n -\n • Nattdraktfikser +\n • Fikser for mørke drakter \n \n • Flere rutingsproblemer rundt om i verden fikset \n @@ -3513,7 +3513,7 @@ En knapp for å vise eller skjule terrenglag på kartet. Handlinger i bindeleddsmeny Skjult - Hovedhandlinger inneholder kun 4 knapper. + Har kun fire knapper. Hovedhandlinger Du kan kun flytte elementer innenfor denne kategorien. Utvikler-tillegg @@ -3552,7 +3552,7 @@ Legg til/rediger interessepunkt Vis/skjul offentlig transport Legg til profil - En knapp for å vise eller skjule offentlig transport på kartet. + Knapp for vising eller skjuling av offentlig transport på kartet. Direkte-til-punkt Tøm lagret data Inkluder ytterligere data @@ -3611,4 +3611,40 @@ Gjenopprett forvalgt elementrekkefølge Fant ingen slike profiler. Verdensoversiktskart (detaljert) + Sjekk og del detaljert loggføring fra programmet + Bruk systemets skjermtidsavbrudd + Programtillegg av + Ingen omregning + Angi et navn for profilen + Velg data å importere. + Du kan lese mer om løyper i %1$s. + Omarranger eller skjul elementer fra %1$s. + Elementer under dette punktet er inndelt av en skillelinje. + Skjuling av innstillinger tilbakestiller dem til forvalg. + Skigåing + Ustøttet type + Velg hvor mye avviksdistanse som skal utløse omruting. + Du kan velge ytterligere data å eksportere sammen med profilen. + Importer profil inneholder ytterligere data. Klikk «Import» for å importere kun profildata, eller velg ytterligere data. + Alle programtilleggsinnstillinger tilbakestilt til opprinnelse. + Du kan legge til en ny egendefinert kategori ved å velge én eller flere nødvendige kategorier. + Endre listens sorteringsrekkefølge, skjul unødvendige kategorier. Du kan importere eller eksportere alle endringer med profiler. + Endre kategoriforordning + Ruten vil bli kalkulert igjen hvis distansen til ruten er lengre enn angitt parameter + Dette programtillegget er et eget program, du vil måtte fjerne det for seg hvis du ikke lenger vil bruke det. +\n +\nDette programtillegget vil forbli på enheten etter fjerning av OsmAnd. + Importerte elementer vil bli lagt til med fortegnelse + Tilpass mengden elementer i \"Skuff\", \"Sett opp kart\", og \"Bindeleddsmeny\". +\n +\nSkru av ubrukte programtillegg for å skjule alle deres styringskontroller. %1$s. + Disse elementene er skjult fra menyen, men de representerte valgene eller programtilleggene vil fortsette å virke. + Velg språkene Wikipedia-artikler skal vises på i kartet. Du kan bytte mellom alle tilgjengelige språk mens du leser artikkelen. + Veiledning til kartets merking. + Ruteplanlegging + Minste avvik for anvisning av ny rute. + OsmAnd har allerede elementer med samme navn som de i importen. +\n +\nVelg en handling. + Kombiner interessepunkttyper fra forskjellige kategorier. Trykk for å velge alle, og venstre side for kategorivalg. \ No newline at end of file diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index b690022e15..8f2054e94b 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -1274,7 +1274,7 @@ Sneeuwmobiel Skating Geen - Buckels + Mogul Tuin bij woonhuis Gemeenschappelijke tuin Privé-tuin @@ -1594,13 +1594,13 @@ Reparatie van elektrische voertuigen Motorfiets-reparatie Ja - Geen zelfbediening + Nee Ja Geen automaat Full-service Ja Borstelloos: nee - Auto wassen: nee + Nee Man Verboden voor mannen Vrouw @@ -2372,7 +2372,7 @@ Buschenschank Grill Bagel - Diner + Eethuis Worst Taart Pannenkoeken @@ -3138,4 +3138,154 @@ Militair/openbaar Privaat Balkan + Ondersteuning: hangend + Boven + Onderwater + Metaalrooster + Kunstgras + Berggebied + Couloir + VHF-kanaal + Transportkantoor + Sociale voorzieningen + Overheidsdienst + Rijksarchief + Geen kano’s + Geen kajaks + Geen bijboten + Geen zeilboten + Geen jetskis + Geen waterfietsen + Geen woonboten + Geen motorboten + Bootverhuur + Reservering niet mogelijk + Reservering aangeraden + Geen winterkamer + Richting: uit + Ruimtehaven + Vrijlaten: ja + Adoptie: ja + Standaard + Offroadmotor + Sportmotor + Geen motorkleren + Geen banden + Geen onderdelen + Geen reparatie + Geen verhuur + Verkoop tweedehands + Verkoop: nee + Tribunes + Volière + Verblijf + Dierentuin + Taalschool + Kinderkamp + Telefonisch reparatiebedrijf + Wijn geserveerd + Bouw: verborgen + Bouw: raster + Soort + Fijn voedsel + Website + Emmer + Mosselkwekerij + Geen datumweergave + Soort: paddock + Paarden houden + Dierenhouden + Voedingsmiddelenwinkel + Verlichting + Dierenvoederplaats + Soort: plank + Soort: telefooncel + Openingstijden op kerstdagen + Kerstwinkel + Watertank + Consulaat + Reizigersinformatiedisplay: nee + Ondersteuning: sokkel + Analoge wijzerplaat + Toestelreparatiezaak + Kantoor van energieleverancier + Wijnwinkel + Spoorwegemplacement + Bouw: koepel + Bouw: vrijstandig + Soort: open stal + Schapen houden + Fotoatelier + E-sigarettenwinkel + Pachinko + Goklocatie + Slotenmaker + Feestwinkel + Sagardotegi + Soort: metaalkast + Soort: leesvak + Openbare boekenkast + Kerstmis: locatie + Kerstmis: opmerking + Kerstboomwinkel + Kerstpiramide + Puttenlatrine + Hoge Commissaris + Ereconsulaat + Alleen + Garnalenkwekerij + Ondersteuning: toren + Ondersteuning: billboard + Wandmontage + Zonnewijzer + Kerstevenement + Chemisch toilet + Spoeltoilet + Brandweerkazerne + Ambassadeurswoning + Permanente missie + Consulaat-generaal + Verkeersspiegel + Hoofdverdelingskader (MDF) + Aquacultuur: vis + Aquacultuur + Reizigersinformatiedisplay: ja + Ondersteuning: dak + Ondersteuning: plafond + Ondersteuning: terrein + Ondersteuning: boom + Ondersteuning: paal + Datumaanduiding + Digitaal beeldscherm + Beeldscherm: ja + Vertoning: nee + Pompstation + Uitvoer: biogas + Uitvoervermogen (biogas) + Uitvoer: vacuüm + Uitvoer: perslucht + Uitvoervermogen (perslucht) + Uitvoervermogen (warme water) + Uitvoer: koud water + Uitvoer: warme lucht + Uitvoer: stoom + Uitvoer: warme water + Uitvoer (stroom): nee + Uitvoer: stroom + Uitgangsvermogen + Kaslandbouw + Zwaartekracht + Troika-kaarten niet geaccepteerd + Troika-kaarten + Pompstatus: gesloten + Pompstatus: defecte + Pompstatus: ok + Pompstijl: historische + Pompsoort: India Mk II of III + Pompsoort: balkenmotor + Vrij-vliegen star: nee + Star + Druk + Pompstijl: moderne + Pompsoort: zwaartekracht \ No newline at end of file diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 7f4fd9466e..3913056526 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -1181,7 +1181,7 @@ Adresy krajowe Podstawowa mapa świata Światowa mapa tras narciarskich - Komunikaty głosowe wstrzymają odtwarzanie muzyki. + Komunikaty głosowe zatrzymają odtwarzanie muzyki. Przerywanie muzyki Zawsze wyśrodkowane położenie Głos @@ -1263,7 +1263,7 @@ Rozpocznij śledzenie online Zakończ śledzenie online Kontynuuj rejestrowanie śladu - Wstrzymaj rejestrowanie śladu + Zatrzymaj rejestrowanie śladu Rozpocznij nowy segment Budynki Trasy niedostępne dla aut @@ -1293,7 +1293,7 @@ Pieszo Różne kolory typów budynków Kontynuuj nawigację - Wstrzymaj nawigację + Zatrzymaj nawigację Klasyfikacja trudności wspinaczki alpinistycznej (SAC) Renderuj ścieżki zgodnie ze skalą SAC. Szlaki turystyczne @@ -2070,7 +2070,7 @@ Długość %2$s Oczekując Świąt Bożego Narodzenia i Nowego Roku, możesz włączyć wyświetlanie użytecznych miejsc związanych ze Świętami: choinki, jarmarki, itp. Wyświetlać świąteczne miejsca? Kontynuuj - Wstrzymaj + Zatrzymaj Ślad Zarejestrowany Rejestruj @@ -2347,7 +2347,7 @@ Reprezentuje obszar: %1$s x %2$s Poprawiona odległość Uprawnienia Nie można zaimportować pliku. Proszę sprawdzić czy program posiada uprawnienia do jego odczytywania. - Linijka promieniowa + Cyrkiel Załaduj ponownie Nazwa użytkownika Data @@ -2368,7 +2368,7 @@ Reprezentuje obszar: %1$s x %2$s Podjazd/zjazd Czas w ruchu Maks./min. - Wstrzymaj/wznów nawigację + Zatrzymaj/wznów nawigację Przycisk do wstrzymania lub wznowienia nawigacji. Rozpocznij/zakończ nawigację Przycisk rozpoczęcia lub zakończenia nawigacji. @@ -3270,7 +3270,7 @@ Reprezentuje obszar: %1$s x %2$s Konfiguruje nawigację Alerty będą wyświetlane w lewym dolnym rogu podczas nawigacji. Przywróć ustawienia domyślne - Konfiguruje opcje działające w całej aplikacji + Konfiguruje opcje dotyczące całej aplikacji Włącz ekran Mapa podczas nawigacji Mapa podczas nawigacji @@ -3480,7 +3480,7 @@ Reprezentuje obszar: %1$s x %2$s Dźwięk migawki aparatu Przywrócenie domyślnej kolejności sortowania spowoduje przywrócenie porządku sortowania do stanu domyślnego po instalacji. Tryb ułatwień dostępu wyłączony w twoim systemie. - Użyj czasu wyświetlania ekranu systemowego + Wygaś ekran zgodnie z ustawieniami systemu Wyczyść zarejestrowane dane - Profile: teraz można zmienić kolejność, ustawić ikonę dla mapy, zmienić wszystkie ustawienia dla profili bazowych i przywrócić je do domyślnych ustawień. \n @@ -3683,7 +3683,7 @@ Reprezentuje obszar: %1$s x %2$s Profile nawigacji OsmAnd + Mapillary Szybka czynność - Pomiar kąta + Cyrkiel Mierzenie odległości Podróże (Wikipodróże i Wikipedia) Znaczniki @@ -3728,4 +3728,6 @@ Reprezentuje obszar: %1$s x %2$s Miejsca parkingowe Przywróć domyślną kolejność elementów Nie znaleziono profili wybranych dla tej czynności. + Mapa przeglądowa świata (szczegółowa) + Nieobsługiwany typ \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index ff4221d368..39a4535dfc 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -242,7 +242,7 @@ Telesquis Telecorda Teleférico de carga - "Esteira rolante " + Esteira rolante Túnel Ponte Radar @@ -1809,11 +1809,11 @@ Aluguel de bicicletas: não Bomba Bomba de bicicleta: não - "Ferramentas para reparação " + Ferramentas para reparação Ferramentas para reparação de bicicleta DIY: não - "Limpeza " + Limpeza Limpeza de bicicletas: não - "Correia " + Correia Ferramenta para correia de bicicleta: não Venda de bicicletas de segunda mão Venda de bicicletas de segunda mão: não @@ -2091,7 +2091,7 @@ Período histórico: império antigo (2686 – 2181 a.C.) Período histórico: primeiro período intermediário (2181 – 2055 a.C.) Período histórico: segundo período intermediário (1650 – 1550 a.C.) - "Período histórico: terceiro período intermediário (1069 – 664 a.C.) " + Período histórico: terceiro período intermediário (1069 – 664 a.C.) Período histórico: primeiro período persa Período histórico: último período (664 – 332 a.C.) Período histórico: segundo período persa @@ -3502,7 +3502,7 @@ Afloramento Sem contato Não aceita Contactless - "Risco nuclear " + Risco nuclear Risco de erosão Risco de avalanche Via escorregadia @@ -3544,7 +3544,7 @@ Acadêmicos Crianças Atol - "Portal de pedágio " + Portal de pedágio Creche Denotação Monumento natural diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 2891e50a39..ac2770502c 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -2055,7 +2055,7 @@ Pôr do Sol: %2$s Abrir o Mapillary Instalar Melhorar a cobertura fotográfica com Mapillary - Instale Mapillary para adicionar uma ou mais fotos para este local do mapa. + Instale Mapillary para adicionar fotos neste local do mapa. Fotos on-line Adicionar fotos Não há fotos aqui. @@ -2160,7 +2160,7 @@ Pôr do Sol: %2$s Mostrar linha direcional desde a sua posição até os locais dos marcadores ativos. Mostrar uma ou duas setas indicando a direção para os marcadores ativos. Escolher como exibir a distância para os marcadores ativos. - Especifique o número de indicadores de direção: + Especifique o número de indicadores de direção. Número de casas decimais Direita Esqueda @@ -2278,7 +2278,7 @@ Pôr do Sol: %2$s Transliterar nomes Arquivo %1$s não possui pontos de passagem, importe-o como uma trilha? Adicionar a um arquivo GPX - Adicione notas de áudio, vídeo ou foto em qualquer ponto do mapa, usando o widget ou o menu de contexto. + Adicione notas de áudio, vídeo ou foto em qualquer ponto do mapa, usando o widget ou os menus de contexto. Um botão para fazer com que a tela centralize o destino da rota, um destino selecionado anteriormente se tornaria o último destino intermediário. Um botão para fazer com que a tela centralize o novo destino da rota, substituindo o destino selecionado anteriormente (se houver). Um botão para fazer com que a tela centralize o primeiro destino intermediário. @@ -2539,7 +2539,7 @@ Pôr do Sol: %2$s Adicione arquivos GPX Importe arquivos GPX ou grave trilhas. Adicione Favoritos - Importe Favoritos ou adicione novos marcando pontos do mapa. + Importe Favoritos ou adicione-os marcando pontos do mapa. Importar arquivo GPX Mover Ponto Destinatários OSM @@ -2718,8 +2718,7 @@ Pôr do Sol: %2$s Arquivos GPX Hora de chegada intermediária Hora intermediária - Adquira OsmAnd Live para desbloquear todos estes recursos: -\nAtualização diária de mapa com downloads ilimitados, todos os plugins grátis e pagos, Wikipédia, Wikivoyage e muito mais. + Adquira OsmAnd Live para desbloquear todos estes recursos: Atualização diária de mapa com downloads ilimitados, todos os plugins pagos grátis, Wikipédia, Wikivoyage e muito mais. Modificação do estilo padrão para aumentar o contraste de vias de pedestre e bicicleta. Usa as cores Mapnik antigo. Para condução off-road com base no estilo \"Topo\" e para utilização com imagens de satélite verdes como mapa de fundo. Espessura de via principal reduzido, espessura das trilhas, caminhos, ciclovias e outras vias aumentado. Para navegação náutica. Apresenta boias, faróis, vias fluviais, vias e sinais marítimos, portos, serviços de navegação e curvas batimétricas. @@ -3451,7 +3450,7 @@ Pôr do Sol: %2$s Efeito colateral: como resultado da filtragem por precisão, os pontos podem estar totalmente ausentes por ex. embaixo de pontes, sob árvores, entre prédios altos ou com certas condições climáticas. Recomendação: É difícil prever o que será gravado e o que não será, talvez seja melhor desativar esse filtro. Observação: se o GPS estava desligado imediatamente antes de uma gravação, o primeiro ponto medido pode ter uma precisão diminuída; portanto, em nosso código, podemos esperar um segundo antes da gravação de um ponto (ou gravar o melhor de três pontos consecutivos, etc.), mas isso ainda não foi implementado. - Esse filtro evita que pontos duplicados sejam gravados onde muito pouco movimento real possa ter ocorrido, cria uma aparência espacial mais agradável das faixas que não são processadas posteriormente posteriormente. + Esse filtro evita que pontos duplicados sejam gravados onde muito pouco movimento real possa ter ocorrido, cria uma aparência espacial mais agradável das trilhas que não são processadas posteriormente. Efeitos colaterais: Períodos em repouso não são registrados em absoluto ou em apenas um ponto cada. Pequenos movimentos (do mundo real) (por exemplo, de lado, para marcar um possível desvio na sua viagem) podem ser filtrados. Seu arquivo contém menos informações para pós-processamento e possui estatísticas piores ao filtrar pontos obviamente redundantes no tempo de gravação, mantendo potencialmente artefatos causados por má recepção ou efeitos de chipset GPS. Recomendação: Uma configuração de 5 metros pode funcionar bem se você não precisar capturar detalhes mais refinados do que isso e não desejar capturar dados explicitamente enquanto estiver em repouso. Buffer de tempo @@ -3468,21 +3467,21 @@ Pôr do Sol: %2$s Som do obturador da câmera Autorização bem sucedida Reorganizar categorias - Altere a ordem de classificação da lista, oculte categorias desnecessárias. Você pode importar ou exportar todas as alterações com perfis. - Você pode adicionar uma nova categoria personalizada selecionando uma ou algumas categorias necessárias. + Altere a ordem de classificação da lista, oculte as categorias. Você pode importar ou exportar todas as alterações com perfis. + Você pode adicionar uma nova categoria personalizada selecionando uma ou mais categorias. Disponível Adicionar categoria personalizada Mostrar apenas à noite - Todas as configurações de plug-in restauradas para o estado padrão. - Todas as configurações de perfil restauradas para o estado padrão. + Todas as configurações de plug-in restauradas para o padrão. + Todas as configurações de perfil são restauradas para o padrão. %1$s/%2$s Pôr do sol em %1$s Nascer do sol em %1$s - Modo de acessibilidade desativado no seu Android. - Redefinir como padrão redefinirá a ordem de classificação para o estado padrão após a instalação. + O modo de acessibilidade está desativado no seu sistema Android. + \'Redefinir para padrão\' restabelecerá a ordem de classificação para o padrão de instalação. Usar tempo limite da tela do sistema - Desabilitada por padrão, se OsmAnd estiver sendo executado em primeiro plano, a tela não atingirá o tempo limite. -\n + Desabilitado por padrão: Enquanto o OsmAnd estiver sendo executado em primeiro plano, a tela não atingirá o tempo limite +\n \nSe ativado, o OsmAnd usará as configurações de tempo limite do sistema. Limpar dados gravados • Perfis: agora você pode alterar a ordem, definir o ícone para o mapa, alterar todas as configurações dos perfis básicos e restaurá-los para os padrões @@ -3664,7 +3663,7 @@ Pôr do Sol: %2$s \n \n  Você pode gerenciar e cancelar suas assinaturas acessando as configurações do Google Play. Pesquisar tipos de POI - Combine tipos de POI de diferentes categorias. Tocar em \"Alternar\" seleciona tudo e o lado esquerdo seleciona a categoria. + Combine tipos de POI de diferentes categorias. Toque em para selecionar tudo, toque em lado esquerdo para selecionar a categoria. Rastreador do OsmAnd OsmAnd + Mapillary Ação rápida @@ -3699,7 +3698,7 @@ Pôr do Sol: %2$s Você pode acessar essas ações tocando no botão “%1$s”. Ocultar transporte público Mostrar transporte público - Mostrar / ocultar transporte público + Mostrar/ocultar transporte público Botão que mostra ou oculta o transporte público no mapa. Criar / Editar POI Posições de estacionamento @@ -3712,4 +3711,5 @@ Pôr do Sol: %2$s Alterar perfil do aplicativo Não foi possível encontrar nenhum desses perfis. Mapa geral do mundo (detalhado) + Tipo não suportado \ No newline at end of file diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index f6446df69a..a4786e862e 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -455,7 +455,7 @@ Автоцентр просмотра карты во время использования. Маршрут GPX Найдено несколько связанных категорий POI. - Загрузите данные для автономного поиска POI. + Загрузите данные для локального поиска POI. Поиск по имени Данные POI «%1$s» устарели и могут быть удалены. Файл с обновляемыми POI не найден и не может быть создан. @@ -786,12 +786,12 @@ Поиск адреса… Поиск адреса в OSM Nominatim Онлайн поиск: Номер дома, улица, Город - Автономный поиск + Локальный поиск Онлайн поиск Уровень детализации Выберите максимальный масштаб для загрузки тайлов карт из интернета. Общая протяжённость = %1$s, время в пути = %2$d ч. %3$d м. - Онлайн или автономный сервис для прокладки маршрута. + Онлайн или локальный сервис для прокладки маршрута. Прокладка маршрута Папка для хранения данных на SD-карте недоступна! Загрузить {0} — {1}\? @@ -1374,7 +1374,7 @@ Настройки навигации Настройки маршрутизации Грузовик - Автономно рассчитать маршрут OsmAnd + Локально рассчитать маршрут OsmAnd Копирование файлов данных OsmAnd… Скорость произношения Выберите отображаемые профили. @@ -1796,7 +1796,7 @@ Для правильного отображения дорожных знаков и правил, пожалуйста, выберите свой регион вождения: Добро пожаловать Отметить для удаления - OsmAnd обеспечивает глобальный автономный просмотр карт и автономную навигацию. + OsmAnd обеспечивает глобальный локальный просмотр карт и автономную навигацию. OSM изменения добавлены в локальную базу данных Во многих странах (Германия, Франция, Италия и другие) использование предупреждения о камерах контроля скорости не допускается законом. OsmAnd не несёт никакой ответственности, если вы нарушите закон. Пожалуйста, нажмите «Да» только если вы имеете право использовать эту функцию. Информация A-GPS @@ -2344,7 +2344,7 @@ Фильтровать фотографии по отправителю, дате или типу. Фильтры применяются только для больших масштабов. Не удалось импортировать файл. Пожалуйста, убедитесь что OsmAnd имеет разрешение на его чтение. Откорректированное расстояние - Установите Mapillary, чтобы добавить одну или несколько фотографий к этому месту на карте. + Установите Mapillary, чтобы добавить фотографии этого места. Высота маршрута Имя файла GPX: Показать на карте после сохранения @@ -2478,7 +2478,7 @@ Отображать направляющие линии от вашего местоположения до активных маркеров. Отображать одну или две стрелки, указывающие направление на активные маркеры. Выберите способ отображения расстояния до активных маркеров. - Выберите количество указателей направления: + Выберите количество указателей направления. Количество десятичных цифр Вставить Следующее поле @@ -2600,9 +2600,9 @@ Путевая точка 1 Точка маршрута 1 Добавить файлы GPX - Импорт файлов GPX, или запись треков. + Импорт файлов GPX или запись треков. Добавить избранные - Импортируйте избранное, или добавляйте, отмечая точки на карте. + Избранное можно импортировать или создать, отмечая точки на карте. Импортировать файл GPX Переместить точку Добавить в файл GPX @@ -3429,9 +3429,9 @@ Для использования этой функции требуется разрешение. Это низкоскоростной фильтр отсечки, чтобы не записывать точки ниже определённой скорости. Это может сделать записанные треки более гладкими при просмотре на карте. Упорядочить категории - Изменяйте порядок сортировки списка, скрывайте ненужные категории. Вы можете импортировать или экспортировать все изменения с профилями. - Вы можете добавить новую пользовательскую категорию, выбрав одну или несколько необходимых категорий. - Сброс к настройкам по умолчанию приведёт к сбросу порядка сортировки к настройкам по умолчанию после установки. + Изменяйте порядок сортировки списка, скрывайте категории. Вы можете импортировать или экспортировать все изменения с профилями. + Вы можете добавить новую пользовательскую категорию, выбрав одну или несколько категорий. + Сброс к настройкам по умолчанию приведёт к возврату порядка сортировки по умолчанию. Добавить пользовательскую категорию Показывать только ночью Все настройки плагина восстановлены до состояния по умолчанию. @@ -3441,8 +3441,8 @@ Восход в %1$s Режим специальных возможностей отключён в системе. Использовать системную блокировку экрана - По умолчанию отключено, если OsmAnd работает на переднем плане, экран не отключается. -\n + По умолчанию отключено: пока OsmAnd работает на переднем плане, экран не отключается. +\n \nЕсли включено, OsmAnd будет использовать системные настройки блокировки экрана. Очистить записанные данные • Профили: теперь вы можете изменить порядок, установить значок для карты, изменить все настройки для базовых профилей и вернуть их к настройкам по умолчанию @@ -3512,7 +3512,7 @@ Импорт профиля Навигация, точность ведения журнала Размер изображения, качество звука и видео - Логин, пароль, автономное редактирование + Логин, пароль, локальное редактирование Выберите значок, цвет и имя Позволяет обмениваться текущим местоположением с помощью записи поездки. Онлайн-отслеживание @@ -3674,7 +3674,7 @@ \nПодписка продлевается автоматически, если вы не отмените её до даты продления. С вашего счёта будет взиматься плата за период продления (месяц/три месяца/год) разово в день продления. \n \nВы можете управлять подписками и отменять их в настройках Google Play. - Можно объединить типы POI из разных категорий. Нажмите «Переключить», чтобы выбрать все; нажмите слева, чтобы выбрать категорию. + Можно объединить типы POI из разных категорий. Нажмите переключатель, чтобы выбрать все; нажмите слева, чтобы выбрать категорию. Поиск типов POI OsmAnd и Mapillary Путешествие (Викигид и Википедия) diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml index 25187eaf01..1235a11167 100644 --- a/OsmAnd/res/values-sc/phrases.xml +++ b/OsmAnd/res/values-sc/phrases.xml @@ -1248,7 +1248,7 @@ Època istòrica: rennu antigu (2686 – 2181 AC) Època istòrica: primu perìodu intermèdiu (2181 – 2055 AC) Època istòrica: segundu perìodu intermèdiu (1650 – 1550 AC) - "Època istòrica: tertzu perìodu intermèdiu (1069 – 664 AC) " + Època istòrica: tertzu perìodu intermèdiu (1069 – 664 AC) Època istòrica: primu perìodu persianu Època istòrica: perìodu bassu (664 – 332 AC) Època istòrica: segundu perìodu persianu @@ -1912,7 +1912,7 @@ No aztetat cartas pro donos Golden Crown No aztetat cartas Golden Crown - "PRO100 " + PRO100 No aztetat cartas PRO100 Union Card No aztetat Union Card @@ -2955,8 +2955,8 @@ Àrbore de Nadale Pasca de Nadale: perìodu pro s\'eventu Pasca de Nadale: nota - "Pasca de Nadale: oràriu de abertura" - "Pasca de Nadale: positzione" + Pasca de Nadale: oràriu de abertura + Pasca de Nadale: positzione Pasca de Nadale: situ web Libreria pùblica Casta: cabina telefònica @@ -2973,8 +2973,7 @@ Puddu Geladu Sushi - Pische e patatas fritas (Fish and chips) -\n + Pische e patatas fritas (Fish and chips) Frutos de mare Barbecue Ispaghitos (noodles) orientales @@ -3135,8 +3134,7 @@ Shawarma Loteria Pachinko - Machineddas (slot machines) -\n + Machineddas (slot machines) Iscummissas Bingo Integradores alimentares @@ -3723,7 +3721,7 @@ Pamentadore Furru de su pane Ebanista - Tarifa + Càrriga Toeletadura pro animales domèsticos ATM: eja Prelievu de dinare @@ -3788,7 +3786,7 @@ Butega de artìculos pro sa seguresa Tzentru pro su bowling Nùmeru de referèntzia de sa pista - Base pro sa cassa + Base de cassa Tzentru pro sas imbèrghidas in s\'abba SMS Vìdeu @@ -3818,7 +3816,8 @@ Retza de ricàrica de s\'abba potàbile Sutzione Presurizada - Abbas suta de terra + Abba suta de terra Pompa Pressione + Istadu de sa pompa: mancat sa trave \ No newline at end of file diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index bdb32f0e7c..fefaf3d7ee 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -2034,7 +2034,7 @@ Retzi indicatziones e iscoberi logos noos chene una connessione a ìnternet Retzi pro %1$s Iscàrriga iscarrigamentos de mapas chene lìmites e agiornamentos pro cada chida, cada die o fintzas cada ora. - Costu mensile de s\'abbonamentu. Podes iscantzellare s\'iscritzione tua in Google Play cando boles. + Costu periòdicu de s\'abbonamentu. Lu podes anullare in Google Play cando boles. Donatzione a sa comunidade de OpenStreetMap Parte de sa donatzione tua benit imbiada a sos impreadores chi faghent modìficas in OpenStreetMap. Su costu de iscritzione abarrat su matessi. S\'iscritzione abilitat agiornamentos cada ora, die o chida e sa possibilidade de iscarrigare totu sas mapas chene lìmites. @@ -2435,7 +2435,7 @@ Aberi Mapillary Installa Megiora sa cobertura fotogràfica cun Mapillary - Installa Mapillary pro annànghere una o prus fotografias a custa positzione de sa mapa. + Installa Mapillary pro annànghere fotografias a custa positzione de sa mapa. Immàgine de Mapillary Distàntzia curreta Autorizatziones @@ -2496,9 +2496,9 @@ Annanghe puntos a s\'àndala Annanghe una lìnia Annanghe documentos GPX - Importa documentos GPX, o registra rastas. + Importa documentos GPX o registra rastas. Annanghe preferidos - Importa preferidos, o annanghe·los pro mèdiu de marcadores in sa mapa. + Importa preferidos o annanghe·los pro mèdiu de marcadores in sa mapa. Importa unu documentu GPX Su documentu %1$s non cuntenit puntos de coladòrgiu, importare comente rasta? Move puntu @@ -2599,11 +2599,11 @@ Ammustra lìnias diretzionales dae sa positzione tua a sos marcadores ativos. Ammustra una o duas fritzas chi indicant sa diretzione cara a sos marcadores ativos. Issèbera comente ammustrare sa distàntzia cun sos marcadores ativos. - Dislinda su nùmeru de indicadores de diretzione de ammustrare: + Dislinda su nùmeru de indicadores de diretzione. Àteru Chirchende rastas cun puntos de coladòrgiu Crea o modìfica ogetos OSM - Crea o modìfica PDI OSM, aberi o cummenta notas OSM, e contribui cun documentos GPX registrados. + Crea o modìfica PDI OSM, aberi o cummenta sas notas OSM, e contribui cun documentos GPX registrados. Iscantzelladu Modificadu Annantu @@ -2611,7 +2611,7 @@ Incarca in unu marcadore in sa mapa pro lu moere in sa prima positzione in sos marcadores ativos, chene abèrrere su menù contestuale. \'Un\'incarcu\' ativu Piga notas! - Annanghe notas sonoras, vìdeos o fotografias a cada puntu in sa mapa, impreende su widget o su menù contestuale. + Annanghe notas sonoras, vìdeos o fotografias a cada puntu in sa mapa, impreende su widget o sos menùs cuntestuales. Notas sonoras/in vìdeu pro data Pro data Pro casta @@ -3137,7 +3137,7 @@ Muda sas impostatziones predefinidas de lestresa Imposta sa lestresa mìnima/màssima Profilu nou - Errore + Serradura arrepente S\'ùrtima sessione de OsmAnd s\'est serrada. Pro praghere agiuda·nos a megiorare OsmAnd cumpartzende su messàgiu de errore. OVNI (UFO) • Profilos de s\'aplicatzione: crea unu profilu personalizadu pro sas netzessidades tuas, cun un\'icona e unu colore personalizados @@ -3475,8 +3475,8 @@ Impòsitu: est prus difìtzile a intzertare ite at a èssere registradu e ite nono. Diat èssere mègius a istudare custu filtru. Durada de sa memòria tampone (buffer) Torra a ordinare sas categorias - Modìfica s\'òrdine de sa lista e cua sas categorias chi non ti serbint. Podes importare o esportare totu sas modìficas cun sos profilos. - Podes annànghere una categoria personalizada noa ischertende·nde una o unas cantas pagas chi ti serbint. + Modìfica s\'òrdine de sa lista e cua sas categorias. Podes importare o esportare totu sas modìficas cun sos profilos. + Podes annànghere una categoria personalizada noa ischertende·nde una o prus de una. Disponìbile Annanghe una categoria personalizada Ammustra a de note ebbia @@ -3486,8 +3486,8 @@ Intrinada a sas %1$s Arbèschida a sas %1$s Custu at a registrare petzi sos puntos medidos cun un\'acuradesa mìnima indicada (in metros/pees, comente benit sinnaladu dae Android pro su chipset tuo). S\'acuradesa si riferit a sa dispersione de movimentos torrados a repìtere, e no est ligada diretamente a sa pretzisione, chi definit canto sa medida tua est a curtzu a sa positzione bera tua. - Ripristinende sos valores predefinidos as a torrare a impostare s\'istadu predefinidu a pustis de s\'installatzione. - Sa modalidade de atzessibilidade est disabilitada in su sistema tuo. + \'Riprìstina sos valores predefinidos\' at a torrare a impostare s\'òrdine predefinidu de installatzione. + Sa modalidade de atzessibilidade est istudada in su sistema Android tuo. Imprea su tempus de isetu de s\'ischermu de su sistema Disabilitadu in sas impostatziones predefinidas. Si OsmAnd est traballende in primu pranu, s\'ischermu non s\'at a mòrrere. \n @@ -3497,7 +3497,7 @@ Deretu a su puntu Issèbera unu nùmene pro su profilu Aberi sas impostatziones - Estensione disabilitada + Estensione istudada S\'estensione est un\'aplicatzione a banda. L\'as a dèpere bogare a banda si non la cheres prus impreare. \n \nS\'estensione at a abarrare in su dispositivu a pustis de b\'àere bogadu OsmAnd. @@ -3505,7 +3505,7 @@ %1$s — %2$s — %3$s Càrculu de s\'àndala Inclue datos additzionales - Su profilu importadu tenet datos additzionales. Incarca in \"Importa\" pro importare sos datos de su profilu ebbia o ischerta sos datos additzionales de importare. + Su profilu importadu tenet datos additzionales. Incarca in \"Importa\" pro importare sos datos de su profilu ebbia, o ischerta sos datos additzionales. Podes ischertare datos additzionales de esportare in paris cun su profilu. Nota: verìfica de lestresa > 0: sa majoria de sos insiemes integrados (sos \"chipsets\") GPS frunit unu valore de lestresa petzi si s\'algoritmu determinat chi ses in movimentu, e perunu si non lu ses. Pro custa resone s\'impreu de s\'impostatzione> 0 in custu filtru, in unu tzertu sensu, impreat su rilevamentu de su movimentu de s\'insieme integradu GPS. Ma, fintzas si non benint filtradas inoghe in su momentu de sa registratzione, impreamus su matessi custa funtzionalidade in s\'anàlisi nostra de sas rastas GPX pro determinare sa distàntzia curreta. Est a nàrrere chi su valore ammustradu in cussu campu est sa distàntzia registrada durante su movimentu. Efetu segundàriu: pro more de su filtru pro acuradesa unos cantos puntos diant pòdere fartare de su totu. A es. in suta de sos pontes, de sos àrbores, intre sos fàbricos artos, o in unas cantas cunditziones metereològicas. @@ -3542,7 +3542,7 @@ Òrdina pro categoria Antàrticu Predefinidu in s\'aplicatzione (%s) - Disabìlita su ri-càrculu de s\'àndala + Perunu ri-càrculu Distàntzia mìnima pro torrare a carculare s\'àndala S\'àndala at a bènnere carculada torra si sa distàntzia dae s\'àndala est prus manna de cussa dislindada Profilu personalizadu @@ -3597,7 +3597,7 @@ Umbraduras de sos rilievos %1$s de %2$s Pistas - Ammustra/cua su terrinu + Ammustra / cua su terrinu Cua su terrinu Ammustra su terrinu Unu butone pro ammustrare o cuare s\'istratu de su terrinu in sa mapa. @@ -3635,7 +3635,7 @@ Cuadu Custos elementos sunt cuados dae su menù, ma sas optziones o sas estensiones rapresentadas ant a sighire a funtzionare. Cuende sas impostatziones las as a torrare a sos istados predefinidos issoro. - Sas \'atziones printzipales\' cuntenent 4 butones ebbia. + Tenet 4 butones ebbia. Atziones printzipales Podes mòere elementos in intro de custa categoria ebbia. Estensione pro sos isvilupadores @@ -3678,7 +3678,7 @@ \n \nPodes amministrare e annullare sos abbonamentos tuos intrende in sas impostatziones de Google Play tuas. Chirca castas de PDI - Cumbina castas de PDI de catogorias diferentes. Incarca su butone pro ischertare totu, incarca s\'ala a manca pro sa seletzione de sas categorias. + Cumbina castas de PDI de catogorias diferentes. Incarca su butone pro ischertare totu, incarca in s\'ala a manca pro ischertare una categoria. %1$s / %2$s Arrastadore de OsmAnd OsmAnd + Mapillary @@ -3692,22 +3692,22 @@ Còmporas de OsmAnd Sa ghia pro sa simbologia de sa mapa. Profilos de navigatzione - • Mapas noas non in lìnia de sas pendèntzias -\n -\n • Peronalizazione intrea de sos preferidos e de sos puntos de coladòrgiu - colores, iconas e formas personalizados -\n -\n • Personaliza s\'oòrdine de sos elementos in su Menù de cuntestu, in Cunfigura mapa e in su Calàssiu -\n -\n • Wikipedia comente un\'istratu a banda in Cunfigura mapa, in ue podes ischertare petzi sas limbas chi cheres -\n -\n • Crea su filtru tuo/sa mapa tua cun sos PDI cun una flessibilidade totale -\n -\n • Optzione pro ripristinare sas impostatziones pro sos profilos personalizados annànghida -\n -\n • Àndalas GPX intreas cun suportu pro sa navigatzione, corsias de tzirculatzione eistrutzione de bortada cumpridas -\n -\n • Mannària de interfache gràfica in sas tauleddas acontzadas -\n + • Mapas noas non in lìnia de sas pendèntzias +\n +\n • Peronalizazione intrea de sos preferidos e de sos puntos de coladòrgiu - colores, iconas e formas personalizados +\n +\n • Personaliza s\'oòrdine de sos elementos in su \"Menù de cuntestu\", in \"Cunfigura mapa\" e in su \"Calàssiu\" +\n +\n • Wikipedia comente un\'istratu a banda in Cunfigura mapa, in ue podes ischertare petzi sas limbas chi cheres +\n +\n • Crea su filtru tuo/sa mapa tua cun sos PDI cun una flessibilidade totale +\n +\n • Optzione pro ripristinare sas impostatziones pro sos profilos personalizados annànghida +\n +\n • Àndalas GPX intreas cun suportu pro sa navigatzione, corsias de tzirculatzione eistrutzione de bortada cumpridas +\n +\n • Mannària de interfache gràfica in sas tauleddas acontzadas +\n \n • Faddinas cun RTL acontzadas \n \n @@ -3716,15 +3716,16 @@ Cua su trasportu pùblicu Ammustra su trasportu pùblicu Ammustra/cua su trasportu pùblicu - Unu butone pro ammustrare o cuare su trasportu pùblicu in sa mapa. - Crea/Modìfica unu PDI + Butone pro ammustrare o cuare su trasportu pùblicu in sa mapa. + Crea / Modìfica unu PDI Logos de parchègiu Annanghe / Modìfica unu preferidu Riprìstina s\'òrdine predefinidu de sos elementos Torra a modificare - Tocende su butone de atzione as a colare dae unu profilu ischertadu a s\'àteru. + Su butone de atzione faghet colare dae unu profilu ischertadu a s\'àteru. Annanghe unu profilu Càmbia su profilu de s\'aplicatzione - Sos profilos ischertados pro custa atzione non s\'agatant. + Impossìbile a agatare custos profilos. Mapa mundiale generale (a sa minuda) + Casta non suportada \ No newline at end of file diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 85066863e3..8293003701 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -1475,13 +1475,13 @@ Oprava elektrických vozidiel Oprava motocyklov Áno - Bez samoobsluhy + Nie Áno Neautomatizované Všetky služby Áno S kefami - Bez autoumyvárne + Nie Čerpacia stanica pre lietadlá Verejná sprcha Muži @@ -3361,7 +3361,7 @@ Antuka Zdroj energie: biomasa Prístup snežným skútrom - "Prístup autobusom" + Prístup autobusom Prístup karavanom Prístup obytným autom Prístup s autom s prívesom diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 601dc971d2..efdf90c625 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -310,8 +310,7 @@ Inštalovať viac… Použiť rastrové mapy pre všetko nad touto úrovňou. Minimálna úroveň vektorového priblíženia - - Online OSM mapová klasifikácia s obrázkami. + Online OSM mapová klasifikácia s obrázkami. Nepodarilo sa vykonať offline hľadanie. Nájsť adresu pomocou polohy Systémový @@ -1477,7 +1476,7 @@ Simulovať pozíciu Zoznam Šírka %1$s -Dĺžka %2$s +\nDĺžka %2$s Často kladené otázky, nedávne zmeny a iné. Navigačné nastavenia Všeobecné nastavenia @@ -2029,7 +2028,7 @@ Dĺžka %2$s Získajte neobmedzené sťahovanie máp a aktualizácie každý týždeň, deň alebo hodinu. Neobmedzené sťahovanie máp, aktualizácií a modul Wikipédia. Míle/metre - Predplatné bude spoplatnené každý mesiac. Predplatné zrušte kedykoľvek na Google Play. + Predplatné bude spoplatnené v zvolenom intervale. Predplatné zrušte kedykoľvek na Google Play. Príspevok komunite OSM Časť príspevku bude zaslaná prispievateľom do OSM. Cena predplatného zostáva rovnaká. Predplatné umožňuje hodinové, denné, týždenné aktualizácie a neobmedzené sťahovanie máp celého sveta. @@ -2114,11 +2113,11 @@ Dĺžka %2$s Zobraziť editor Obľúbených Otvorený kód pre polohu (OLC) Neplatný kód OLC - +\n Krátky kód OLC -Prosím zadajte úplný kód +\nProsím zadajte úplný kód Platný kód OLC -Zodpovedá oblasti: %1$s x %2$s +\nZodpovedá oblasti: %1$s x %2$s Rýchla akcia Akcia %d Obrazovka %d @@ -2163,7 +2162,7 @@ Zodpovedá oblasti: %1$s x %2$s Vyberte voliteľnú kategóriu. Zoznam POI Pridať jednu alebo viac kategórií POI, ktoré sa zobrazia na mape. - Tlačidlo pre posunie zoznam dolu na ďalšiu stranu. + Tlačidlo pre posunutie zoznam dolu na ďalšiu stranu. Pridať štýl mapy Vyplňte všetky parametre Štýly mapy @@ -2246,15 +2245,17 @@ Zodpovedá oblasti: %1$s x %2$s \n • Priblíženie mapy sa prispôsobuje rýchlosti \n • Vyhľadávanie miest podľa adresy, typu (napr.: reštaurácie, hotely, čerpacie stanice, múzeá) alebo zemepisných súradníc \n • Umožňuje zadať prechodné body trasy -\n • Nahrajte alebo odošlite GPX stopu a nasledujte ju - "Mapa +\n • Nahrajte alebo odošlite GPX stopu a nasledujte ju +\n + Mapa \n • Zobrazenie POI (bodov záujmu) v okolí \n • Možnosť zobrazenia mapy v smere pohybu (alebo kompasu) \n • Zobrazovanie vašej pozície a orientácie na mape \n • Zdieľajte polohu, aby vás priatelia modli nájsť \n • Uloženie obľúbených miest \n • Môže zvoliť ako zobraziť názvy na mape: v angličtine, lokálnom jazyku alebo foneticky -\n • Umožňuje zobraziť špecializované podkladové mapy z Internetu, satelitné snímky (z Bing), rôzne prekryvné vrstvy ako turistické/navigačné GPX stopy a ďalšie vrstvy s nastaviteľnou priehľadnosťou " +\n • Umožňuje zobraziť špecializované podkladové mapy z Internetu, satelitné snímky (z Bing), rôzne prekryvné vrstvy ako turistické/navigačné GPX stopy a ďalšie vrstvy s nastaviteľnou priehľadnosťou +\n Lyžovanie \n Modul lyžiarskych máp umožňuje zobraziť náročnosť zjazdoviek a ďalšie údaje, ako poloha vlekov a iných služieb. Bicyklovanie @@ -2263,16 +2264,18 @@ Zodpovedá oblasti: %1$s x %2$s \n • Môžete vidieť rýchlosť a nadmorskú výšku \n • Nahrávanie GPX umožňuje nahrať výlet a zdieľať ho \n • Doplnkovým modulom môžete zobraziť vrstevnice a tieňovanie svahov - Prechádzky, turistika, prehliadky miest -\n • Mapy obsahujú aj cesty pre chodcov a turistov -\n • Wikipédia vo vašom jazyku vám povie veľa počas potuliek mestom -\n • Zastávky hromadnej dopravy (autobus, električka, vlak) vrátane názvov liniek -\n • GPS navigácia v režime chodca vytvorí trasu po cestách pre peších -\n • Môžete odoslať a nasledovať GPX trasu výletu alebo nahrať a zdieľať vlastné - Prispievajte do OSM -\n • Hláste chyby v mape -\n • Odosielajte GPX stopy do OSM priamo z aplikácie -\n • Pridávajte body záujmu a priamo ich odošlite do OSM (alebo neskôr, ak ste offline) + Prechádzky, turistika, prehliadky miest +\n • Mapy obsahujú aj cesty pre chodcov a turistov +\n • Wikipédia vo vašom jazyku vám povie veľa počas potuliek mestom +\n • Zastávky hromadnej dopravy (autobus, električka, vlak) vrátane názvov liniek +\n • GPS navigácia v režime chodca vytvorí trasu po cestách pre peších +\n • Môžete odoslať a nasledovať GPX trasu výletu alebo nahrať a zdieľať vlastné +\n + Prispievajte do OSM +\n • Hláste chyby v mape +\n • Odosielajte GPX stopy do OSM priamo z aplikácie +\n • Pridávajte body záujmu a priamo ich odošlite do OSM (alebo neskôr, ak ste offline) +\n OsmAnd je aktívne vyvíjaný slobodný softvér. Každý môže prispieť do aplikácie hlásením chýb, vylepšením prekladu alebo programovaním nových funkcií. Projektu tiež závisí od finančných príspevkov na vývoj a testovanie nových funkcií. \n Približná kvalita pokrytia máp: \n • Západná Európa: **** @@ -2299,7 +2302,8 @@ Zodpovedá oblasti: %1$s x %2$s \n • Voliteľné navádzanie v jazdných pruhoch, zobrazenie názvov ulíc a odhadovaný čas do cieľa \n • Umožňuje zadať prechodné body trasy \n • Automatické prepočítanie trasy ak sa odchýlite z trasy -\n • Vyhľadávanie miest podľa adresy, typu (napr.: reštaurácie, hotely, čerpacie stanice, múzeá) alebo zemepisných súradníc +\n • Vyhľadávanie miest podľa adresy, typu (napr.: reštaurácie, hotely, čerpacie stanice, múzeá) alebo zemepisných súradníc +\n Zobrazenie mapy \n • Zobrazovanie vašej pozície a orientácie na mape \n • Možnosť otočenia mapy v smere pohybu podľa kompasu @@ -2316,18 +2320,19 @@ Zodpovedá oblasti: %1$s x %2$s \n • Kompaktné vektorové offline mapy \n \n • Možnosť voľby medzi kompletnými mapami alebo len cestnou sieťou (napr. celé Japonsko má 700 MB, jeho cestná sieť iba 200 MB) - "Bezpečnostné funkcie + Bezpečnostné funkcie \n • Voliteľné automatické prepínanie medzi denným a nočným režimom \n • Voliteľné zobrazenie povolenej rýchlosti s upozornením na jej prekročenie \n • Voliteľné približovanie mapy podľa rýchlosti -\n • Zdieľajte vašu polohu s priateľmi, aby vás mohli nájsť " - "Funkcie pre cyklistov a chodcov +\n • Zdieľajte vašu polohu s priateľmi, aby vás mohli nájsť +\n + Funkcie pre cyklistov a chodcov \n • Mapy obsahujú aj cesty pre chodcov, turistov a cyklistov - vhodné pre aktivity v prírode \n • Špeciálne režimy zobrazenia a navigácie pre chodcov a cyklistov \n • Voliteľné zobrazenie zastávok hromadnej dopravy (autobus, električka, vlak) vrátane názvov liniek \n • Voliteľné nahrávanie výletu do GPX súboru (lokálneho alebo online služby) \n • Voliteľné zobrazenie rýchlosti a nadmorskej výšky -\n • Zobrazenie vrstevníc a tieňovania svahov (s doplnkovými modulmi) " +\n • Zobrazenie vrstevníc a tieňovania svahov (s doplnkovými modulmi) Prispievajte priamo do OpenStreetMap \n • Hláste chyby v údajoch \n • Odosielajte GPX stopy do OSM priamo z aplikácie @@ -2335,7 +2340,7 @@ Zodpovedá oblasti: %1$s x %2$s \n • Voliteľné nahrávanie výletu na pozadí (keď je zariadenie v režime spánku) \n OsmAnd je aktívne vyvíjaný slobodný softvér. Každý môže prispieť do aplikácie hlásením chýb, vylepšením prekladu alebo programovaním nových funkcií. Projekt tiež závisí od finančných príspevkov na vývoj a testovanie nových funkcií. \n - "Približná kvalita pokrytia máp: + Približná kvalita pokrytia máp: \n • Západná Európa: **** \n • Východná Európa: *** \n • Rusko: *** @@ -2346,8 +2351,9 @@ Zodpovedá oblasti: %1$s x %2$s \n • Blízky Východ: ** \n • Afrika: ** \n • Antarktída: * -\n Väčšina krajín sveta je k dispozícii na stiahnutie! -\n Od Afganistanu po Zimbabwe, od Austrálie po USA. Argentína, Brazília, Kanada, Francúzsko, Nemecko, Mexiko, Spojené kráľovstvo, Španielsko, Slovensko, … " +\n Väčšina krajín sveta je k dispozícii na stiahnutie. +\n Od Afganistanu po Zimbabwe, od Austrálie po USA. Argentína, Brazília, Kanada, Francúzsko, Nemecko, Mexiko, Spojené kráľovstvo, Španielsko, Slovensko, … +\n Obnoviť nákupy Hĺbkové vrstevnice (izobaty) a značky v moriach. Ďakujeme za zakúpenie \"Námorných hĺbkových vrstevníc\" @@ -2486,7 +2492,7 @@ Zodpovedá oblasti: %1$s x %2$s Pridať súbory GPX Importovať súbory GPX alebo zaznamenať stopy. Pridať obľúbené - Importovať Obľúbené body alebo pridať označením bodov na mape. + Importovať Obľúbené body alebo pridať ich označením bodov na mape. Importovať súbor GPX Súbor %1$s neobsahuje body trasy, naimportovať ako stopu? Presunúť bod @@ -2587,7 +2593,7 @@ Zodpovedá oblasti: %1$s x %2$s Zobraziť smerové čiary z vašej polohy k polohám aktívnych značiek. Zobraziť jednu alebo dve šípky smerujúce k aktívnym značkám. Zvoliť ako chcete zobraziť vzdialenosť k aktívnym značkám. - Zadajte počet smerových šípok: + Zadajte počet smerových šípok. Viac Hľadajú sa stopy s waypointami Vytvoriť alebo upraviť objekty OSM @@ -2598,7 +2604,7 @@ Zodpovedá oblasti: %1$s x %2$s Značka %s aktivovaná. Potlačte značku na mape na jej presunutie na prvé miesto v aktívnych značkách bez otvárania kontextového menu. Urobte poznámky! - Pridajte zvukové, video alebo fotografické poznámky ku každému bodu na mape, pomocou nástroja alebo kontextového menu. + Pridajte zvukové, video alebo fotografické poznámky k ľubovoľnému bodu na mape, pomocou nástroja alebo kontextového menu. Mediálne poznámky podľa dátumu Podľa dátumu Podľa typu @@ -3410,7 +3416,7 @@ Zodpovedá oblasti: %1$s x %2$s Ikona, farba a názov Upraviť zoznam profilov Zvolený profil - Stlačením %1$s zahodíte všetky vaše zmeny. + Stlačenie %1$s zahodí všetky vaše zmeny. Resetovať všetky nastavenia profilu do východzieho stavu. Resetovať všetky nastavenia profilu\? %1$s: %2$s @@ -3461,9 +3467,9 @@ Zodpovedá oblasti: %1$s x %2$s Zvuk spúšte fotoaparátu Prihlásenie je úspešné Usporiadať kategórie - Zmeňte poradie triedenia zoznamu, skryte nepotrebné kategórie. Môžete importovať a exportovať všetky zmeny s profilmi. + Zmeňte poradie triedenia zoznamu, skryte kategórie. Môžete importovať a exportovať všetky zmeny s profilmi. Môžete pridať novú kategóriu zvolením jednej alebo viacerých existujúcich. - Obnovenie do východzieho nastavenia vymaže poradie triedenia ako po novej inštalácii. + \"Obnovenie do východzieho nastavenia\" obnoví poradie triedenia ako po novej inštalácii. Dostupné Pridať vlastnú kategóriu Zobraziť iba v noci @@ -3472,10 +3478,10 @@ Zodpovedá oblasti: %1$s x %2$s %1$s/%2$s Západ slnka o %1$s Východ slnka o %1$s - Režim uľahčenia prístupu je na tomto systéme vypnutý. + Režim uľahčenia prístupu je vo vašom systéme Android vypnutý. Použiť systémový časový limit obrazovky - Predvolene vypnuté, ak OsmAnd beží v popredí, obrazovka nezhasne. -\n + Predvolene vypnuté: ak OsmAnd beží v popredí, obrazovka nezhasne. +\n \nAk je zapnuté, OsmAnd zhasne obrazovku podľa limitu nastaveného v systéme. Predvolená hodnota aplikácie (%s) Vlastný profil @@ -3536,10 +3542,10 @@ Zodpovedá oblasti: %1$s x %2$s Navigácia Vlastný štýl vykresľovania Zahrnúť dodatočné údaje - Importovaný profil obsahuje dodatočné údaje. Kliknite Import pre importovanie len údaje profilu alebo zvoľte, ktoré dodatočné údaje majú byť importované. + Importovaný profil obsahuje dodatočné údaje. Kliknite \"Import\" pre importovanie len údajov profilu, alebo zvoľte dodatočné údaje. Môžete zvoliť dodatočné údaje na importovanie spolu s profilom. Antarktída - Vypnúť prepočítavanie + Žiadne prepočítavanie Minimálna vzdialenosť pre prepočítanie trasy Trasa bude prepočítaná ak vzdialenosť od trasy je väčšia ako uvedený parameter Zobrazený %1$s už existuje v OsmAnd. @@ -3584,7 +3590,7 @@ Zodpovedá oblasti: %1$s x %2$s Trasa bude prepočítaná ak vzdialenosť od trasy k aktuálnej polohe je väčšia ako zvolená hodnota. %1$s z %2$s Svahy - Zobraziť/skryť terén + Zobraziť / skryť terén Skryť terén Zobraziť terén Tlačidlo pre zobrazenie alebo skrytie vrstvy terénu na mape. @@ -3612,9 +3618,9 @@ Zodpovedá oblasti: %1$s x %2$s Niektoré články Wikipedia nemusia byť dostupné vo vašom jazyku. Zvoľte jazyky, v ktorých sa články Wikipedia budú zobrazovať na mape. \nPri čítaní článku budete môcť prepínať medzi všetkými dostupnými jazykmi. Pre zobrazenie bodov Wikipedie na mape sú potrebné ďalšie mapy. - Upraviť počet položiek v Úvodnom paneli, Nastaviť mapu a Kontextovom menu. -\n -\nMôžete vypnúť nepoužívané moduly, aby sa skryli ich ovládacie prvky z aplikácie %1$s. + Upraviť počet položiek v \"Úvodnom paneli\", \"Nastaviť mapu\" a \"Kontextovom menu\". +\n +\nVypnite nepoužívané moduly pre skrytie ich ovládacích prvkov. %1$s. Položky v úvodnom paneli a kontextovom menu Prispôsobenie používateľského rozhrania Úvodný panel @@ -3625,7 +3631,7 @@ Zodpovedá oblasti: %1$s x %2$s Skryté Tieto položky sú skryté z menu, ale ich možnosti a moduly zostanú funkčné. Skrytie nastavení ich resetuje do pôvodného stavu. - \"Hlavné akcie\" obsahujú len 4 tlačidlá. + Obsahuje len 4 tlačidlá. Hlavné akcie Môžete presúvať položky len v rámci tejto kategórie. Doplnok pre vývojárov @@ -3669,7 +3675,7 @@ Zodpovedá oblasti: %1$s x %2$s \n \n Vaše predplatné môžete spravovať a zrušiť v nastaveniach Google Play. Hľadať typy bodov záujmu - Skombinovať typy bodov záujmov z rôznych kategórií. Stlačte \"Prepnúť\" pre zvolenie všetkých, stlačte ľavú stranu pre výber kategórií. + Skombinovať typy bodov záujmov z rôznych kategórií. Stlačte prepínač pre vybratie všetkých, stlačte ľavú stranu pre vybratie kategórie. Stopovanie OsmAnd OsmAnd + Mapillary Rýchla akcia @@ -3680,13 +3686,13 @@ Zodpovedá oblasti: %1$s x %2$s Obľúbené Predplatné - OsmAnd Live Nákupy v OsmAnd - Sprievodca symbolmi na mape + Sprievodca symbolmi na mape. Navigačné profily • Nové offline mapy svahov \n \n • Plné prispôsobenie Obľúbených a bodov GPX – vlastné farby, ikony a tvary \n -\n • Možnosť prispôsobenia poradia položiek v kontextovom menu, nastavení mapy a úvodnom paneli +\n • Možnosť prispôsobenia poradia položiek v \"kontextovom menu\", \"Nastavenie mapy\" a \"Úvodnom paneli\" \n \n • Wikipédia ako samostatná vrstva v nastavení mapy, možnosť vybrať iba potrebné jazyky \n @@ -3705,14 +3711,16 @@ Zodpovedá oblasti: %1$s x %2$s Zobraziť verejnú dopravu Zobraziť/skryť verejnú dopravu Tlačidlo na zobrazenie alebo skrytie verejnej dopravy na mape. - Vytvoriť/Upraviť bod záujmu + Vytvoriť / Upraviť bod záujmu Parkovacie miesta Pridať / Upraviť obľúbený bod Obnoviť predvolené poradie položiek Naspäť k úpravám K týmto akciám sa dostanete stlačením tlačidla “%1$s”. - Stlačením tlačidla akcie sa prepne medzi zvolenými profilmi. + Tlačidlo akcie prepne medzi zvolenými profilmi. Pridať profil Zmeniť aplikačný profil - Nenašli sa profily vybrané pre túto akciu. + Nenašli sa žiadne vhodné profily. + Prehľadová mapa sveta (detailná) + Nepodporovaný typ \ No newline at end of file diff --git a/OsmAnd/res/values-sw600dp-land/sizes.xml b/OsmAnd/res/values-sw600dp-land/sizes.xml index fcb6e1f8c5..90baa4ed8e 100644 --- a/OsmAnd/res/values-sw600dp-land/sizes.xml +++ b/OsmAnd/res/values-sw600dp-land/sizes.xml @@ -1,6 +1,6 @@ - 120dp + -48dp 12dp 24dp diff --git a/OsmAnd/res/values-sw600dp/sizes.xml b/OsmAnd/res/values-sw600dp/sizes.xml index cd419b6f73..8008a2e0d0 100644 --- a/OsmAnd/res/values-sw600dp/sizes.xml +++ b/OsmAnd/res/values-sw600dp/sizes.xml @@ -1,6 +1,6 @@ - 240dp + -48dp 36dp 24dp diff --git a/OsmAnd/res/values-tr/phrases.xml b/OsmAnd/res/values-tr/phrases.xml index 633992c85f..9a59a9adeb 100644 --- a/OsmAnd/res/values-tr/phrases.xml +++ b/OsmAnd/res/values-tr/phrases.xml @@ -1843,7 +1843,7 @@ Demir cevheri Kurşun Linyit - Kireçtaşı + Kireç taşı Mermer Civa Mika @@ -1858,7 +1858,7 @@ Rutil Tuz Kum - Kumtaşı + Kum taşı Silis Gümüş Kayrak;demir cevheri;bakır @@ -2311,7 +2311,7 @@ Uygarlık: minos Uygarlık: tiahuanaco Dil okulu - Hayvanlara izin verilmez + Hayvanlara izin verilmiyor Hayvanlara izin verilir At Köpek @@ -2360,4 +2360,35 @@ Hayır Hayır Hayır + Höyük + Megalit + Basınç + İçme suyu doldurma: hayır + İçme suyu doldurma: evet + İçme suyu doldurma şebekesi + Malzeme: kompozit + Malzeme: mermer + Malzeme: cam + Malzeme: alüminyum + Malzeme: kireç taşı + Malzeme: toprak + Malzeme: granit taşı + Malzeme: plastik + Malzeme: tunç + Malzeme: metal, ahşap + Malzeme: kum taşı + Malzeme: kaya + Malzeme: tuğla + Malzeme: taş + Malzeme: çelik + Malzeme: beton + Malzeme: metal + Tür: arma + Tarihi taş + Atlara izin veriliyor + Malzeme: güçlendirilmiş beton + Malzeme: ahşap + Tür: uzlaşma haçı + Atlara izin verilmiyor + Mutfak \ No newline at end of file diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index f4b30a5b89..8337605fd5 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -1807,7 +1807,7 @@ GPX kaydını duraklat Yeni bir segment başlat Araç olmayan otoyollar - Ahşap ve scrubs + Ağaç ve çalılıklar Binalar üzerinde yakınlaştırma 15 Erişim kısıtlamaları Geçiş hakkındaki kısıtlamaları ve geçiş ücretlerini göster @@ -2109,7 +2109,7 @@ İçerik menüsünü açmadan, harita üzerinde bir belirtecin üzerine bas ve aktif belirteçlerin üzerine sürükle. \'Tek basış\' aktif Not alın! - Widget veya içerik menüsünü kullanarak, harita üzerinde her nokta için ses, video veya fotoğraf notları al. + Widget veya içerik menülerini kullanarak, haritadaki herhangi bir nokta için ses, video veya fotoğraf notları ekleyin. Tarihe göre sesli/görüntülü notlar Tarihe göre Türe göre @@ -2123,7 +2123,7 @@ Grupları al İki Bir - Yön göstergelerinin sayısını belirtin: + Yön göstergelerinin sayısını belirtin. Ondalık hane sayısı Sağ Sol @@ -2183,7 +2183,7 @@ İzinler Dosya içe aktarılamadı. Lütfen OsmAnd\'ın okuma iznine sahip olduğundan emin olun. Mapillary ile fotoğraf kapsama alanını geliştir - Bu harita konumuna bir ya da daha fazla fotoğraf eklemek için Mapillary yükleyin. + Bu harita konumuna fotoğraf eklemek için Mapillary yükleyin. Çevrim-içi fotoğraflar Fotoğraf ekle Burada fotoğraf yok. @@ -3435,22 +3435,22 @@ Kamera deklanşör sesi Yetkilendirme başarılı Kategorileri yeniden düzenle - Listenin sıralama düzenini değiştirin, gereksiz kategorileri gizleyin. Profillerle tüm değişiklikleri içe veya dışa aktarabilirsiniz. - Bir veya birkaç gerekli kategori seçerek yeni bir özel kategori ekleyebilirsiniz. + Liste sıralama düzenini değiştirin, kategorileri gizleyin. Profillerle tüm değişiklikleri içe veya dışa aktarabilirsiniz. + Bir veya daha fazla kategori seçerek yeni bir özel kategori ekleyebilirsiniz. Mevcut Özel kategori ekle Sadece geceleri göster - Tüm eklenti ayarları öntanımlı durumuna geri yüklendi. - Tüm profil ayarları öntanımlı durumuna geri yüklendi. + Tüm eklenti ayarları öntanımlı değerlerine geri yüklendi. + Tüm profil ayarları öntanımlı değerlerine geri yüklendi. %1$s/%2$s %1$s\'de gün batımı %1$s\'de gün doğumu - Android cihazınızda erişilebilirlik modu kapalı. - Öntanımlılara sıfırla, sıralama düzenini kurulumdan sonraki öntanımlı duruma sıfırlayacaktır. + Android sisteminizde erişilebilirlik modu kapalı. + \'Öntanımlılara sıfırla\', sıralama düzenini öntanımlı kurulum durumuna geri döndürecektir. Sistem ekran zaman aşımını kullan - Öntanımlı olarak devre dışıdır, OsmAnd ön planda çalışıyorsa ekran zaman aşımına uğramaz. + Öntanımlı olarak devre dışıdır: OsmAnd ön planda çalışırken ekran zaman aşımına uğramayacaktır. \n -\nEtkinleştirilirse OsmAnd sistem zaman aşımı ayarlarını kullanacaktır. +\nEtkinleştirilirse, OsmAnd sistem zaman aşımı ayarını kullanacaktır. Kaydedilen verileri temizle • Profiller: artık sırayı değiştirebilir, harita simgesini ayarlayabilir, temel profiller için tüm ayarları değiştirebilir ve bunları öntanımlılara geri yükleyebilirsiniz \n @@ -3631,7 +3631,7 @@ \n \n Google Play ayarlarınıza giderek aboneliklerinizi yönetebilir ve iptal edebilirsiniz. POI türleri ara - Farklı kategorilerdeki POI türlerini birleştirin. \"Değiştir\" düğmesine dokunmak hepsini, sol taraf kategoriyi seçer. + Farklı kategorilerdeki POI türlerini birleştirin. Tümünü seçmek için düğmeye, kategori seçimi için sol tarafa dokunun. Yarıçap cetveli OsmAnd izleyici OsmAnd + Mapillary @@ -3667,7 +3667,7 @@ Bu eylemlere “%1$s” düğmesine dokunarak erişebilirsiniz. Toplu taşıma araçlarını gizle Toplu taşıma araçlarını göster - Toplu taşıma araçlarını göster / gizle + Toplu taşıma araçlarını göster/gizle Haritada toplu taşıma araçlarını gösteren veya gizleyen düğme. POI Oluştur / Düzenle Park etme alanları @@ -3679,4 +3679,5 @@ Uygulama profilini değiştir Böyle bir profil bulunamadı. Dünya genel bakış haritası (ayrıntılı) + Desteklenmeyen tür \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 1c28771902..77e3f8e16f 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -262,7 +262,7 @@ Налагоджувальні відомості про відмалювання Відображає плідність відмалювання. Розпаковуються нові дані… - Мережева служба навігації обрана, але Ви не підключені до Всемережжя. + Вибрано мережеву службу навігації, але ви не підключені до Інтернету. Мова не підтримується Вибрана мова не підтримується встановленим двигуном Android TTS (текстовим мовленням), замість цього буде використана його попередньо налаштована мова TTS. Шукаєте інший двигун TTS\? Дані відсутні @@ -801,7 +801,7 @@ Стоп Почати Звуко/відео-нотатки - Втулок OsmAnd для відображення горизонталей в автономному режимі + Плагін OsmAnd для показу горизонталей в автономному режимі Використовувати програму Камера Налаштування авдіо/відео запису. Налаштування аудіо/відео @@ -830,9 +830,9 @@ Звуко/відео-нотатки частин Горизонталі - Цей втулок показує як шар горизонталей, так і шар рельєфу поверх усталених мап OsmAnd. Ця функціональність стане в нагоді спортсменам, туристам, мандрівникам та будь-кому, хто цікавиться структурою рельєфу місцевості. (Зверніть увагу, що дані про горизонталі є окремими від даних про рельєф; додаткові завантаження доступні після задіювання втулку.) + Цей втулок показує як шар горизонталей, так і шар рельєфу поверх усталених мап OsmAnd. Ця функціональність стане в пригоді спортсменам, туристам, мандрівникам та будь-кому, хто цікавиться структурою рельєфу місцевості. (Зверніть увагу, що дані про горизонталі є окремими від даних про рельєф; додаткові завантаження доступні після задіювання втулку.) \n -\nВсесвітні дані (між 70° на півночі і 70° на півдні) засновано на вимірюваннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даних інструменту відмальовування Terra, флагманського супутника устрою спостереження Землі від NASA. ASTER — це підсумок спільної роботи NASA, міністерства економіки Японії, міністерства торгівлі і промисловості Японії (METI), агенції космічних систем Японії (J-spacesystems). +\nВсесвітні дані (між 70° на півночі й 70° на півдні) засновано на вимірюваннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даних інструменту відмальовування Terra, флагманського супутника устрою спостереження Землі від NASA. ASTER — це підсумок спільної роботи NASA, міністерства економіки Японії, міністерства торгівлі та промисловості Японії (METI), агенції космічних систем Японії (J-spacesystems). Горизонталі Інші мапи Тільки дороги @@ -1306,9 +1306,9 @@ Автівка Велосипед Пішки - Цей втулок задіює можливість записувати та зберігати Ваші треки вручну, торкаючись віджету записування GPX на екрані мапи, або автоматично записувати всі Ваші подорожі у файл GPX. + Цей втулок додає функцію запису та збереження ваших пересувань вручну, торканням віджету записування GPX на екрані мапи, або автоматично записувати всі ваші подорожі у файл GPX. \n -\nЗаписаними треками можна поділитись з Вашими друзями або іншими учасниками спільноти OSM. Атлети можуть використовувати записані треки для відстежування власних тренувань. Основний розбір треків наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість й т.п., звісно, записані треки можна також проаналізувати за допомогою іншого програмного забезпечення. +\nЗаписаними маршрутами можна поділитись з вашими друзями або іншими учасниками спільноти OSM. Атлети можуть користуватися записаними маршрутами для відстеження власних тренувань. Основні деталі маршрутів наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість тощо, звісно, записані маршрути, також можна проаналізувати за допомогою сторонніх інструментів. Писати трек у файл GPX Загальний запис розташування до файлу GPX можна ввімкнути або вимкнути кнопкою запис GPX на екрані з мапою. Інтервал записування @@ -1373,7 +1373,7 @@ Камера контролю швидкості Попередження на дорозі Натисніть на будь-який наявний елемент для перегляду додаткових відомостей, довго утримуйте, щоб знедіяти або вилучити. Наявні дані на пристрої (%1$s вільно): - Годинник + Перегляд Лижні траси Тип лижні Не використовувати маршрутизацію версії 1.9 @@ -1445,7 +1445,7 @@ Увімкнути Вимкнути Опис - Для встановлення цього втулку вам потрібне з’єднання з Всемережжям. + Для встановлення цього втулка вам потрібне з’єднання з Інтернетом. Отримати Цей втулок збагачує OsmAnd морськими мапами для човнів, вітрильного спорту та інших видів водних видів спорту. \n @@ -1700,7 +1700,7 @@ Зупинити симуляцію Вашої позиції. Пошук адреси Місця - Втулки + Плагіни Без приміських поїздів Уникати приміських поїздів Небезпека @@ -2242,11 +2242,11 @@ Відсортоване за відстанню Пошук у закладках Для того, щоб відобразити затінення рельєфу, потрібно завантажити спеціальну мапу для цієї області. - Щоб побачити рельєф місцевості на мапі, вам потрібно придбати та встановити втулок \'Горизонталі\' (\'Contour Lines\'). + Щоб побачити рельєф місцевості на мапі, вам потрібно придбати та встановити плагін \'Горизонталі\' (\'Contour Lines\'). Приховати від рівня масштабування Завантажте мапу \'Горизонталі\' (\'Contour Line\') для використання у цій області. Втулок - Щоб побачити горизонталі на мапі, вам потрібно придбати і встановити відповідний однойменний втулок (\'Contour Lines\'). + Щоб побачити горизонталі на мапі, вам потрібно придбати та встановити втулок \'Горизонталі\'. Схема кольорів Відображення від рівня масштабування Дозволити приватний доступ @@ -2435,7 +2435,7 @@ Відкрити Mapillary Встановити Поліпшити фотопокриття Mapillary - Встановіть Mapillary, щоб додати одну або кілька світлин до цього місця на мапі. + Встановіть Mapillary, щоб додати світлини до цього місця на мапі. Зображення Mapillary Відстань виправлена Права доступу @@ -2470,7 +2470,7 @@ Натисніть цю кнопку, щоб почати або закінчити навігацію. Час буферизації для мережевого стеження Задає час буферизації для збереження місць для відправки в автономному режимі - Ви повинні бути підключені до Всемережжя для перегляду світлин від Mapillary. + Ви повинні бути підключені до Інтернету для перегляду світлин від Mapillary. Повторити Перегляньте мапу і додайте точки Вимірювання відстані @@ -2597,7 +2597,7 @@ Відображати напрямні смуги від Вашого місця розташування до задіяних позначок. Відображати одну або дві стрілки, що вказують напрямок на задіяні позначки. Виберіть спосіб відображення відстані до задіяних позначок. - Виберіть, скільки відображати показників напрямку: + Виберіть, скільки відображати показників напрямку. Направо Наліво Пошук треків з шляховими точками @@ -2689,7 +2689,7 @@ Додати точку Зберегти як трек Редагувати дії - Отримайте OsmAnd Live, аби розблокувати всі функції: щоденні оновлення мапи з необмеженими завантаженнями, всі платні та безкоштовні втулки, Вікіпедію, Вікімандри та багато іншого. + Отримайте OsmAnd Live, аби розблокувати всі функції: щоденні оновлення мапи з необмеженими завантаженнями, всі платні та безплатні втулки, Вікіпедію, Вікімандри та багато іншого. Закладка Приховати повний опис Показати повний опис @@ -3275,7 +3275,7 @@ Впливає на весь застосунок Навігаційні вказівки та оголошення Буфер logcat - Налаштування втулка + Налаштування плагіна Усталено Розраховує час прибуття для невідомих типів доріг і обмежує швидкість для всіх доріг (може вплинути на маршрутизацію) Завантажте докладну мапу %s, щоб переглянути цю область. @@ -3475,7 +3475,7 @@ Звук затвору камери Авторизація пройшла успішно Перевпорядкувати категорії - Змінюйте порядок сортування списку, приховайте непотрібні категорії. Ви можете імпортувати або експортувати всі зміни з профілями. + Змінюйте впорядкування списку, приховайте непотрібні категорії. Ви можете імпортувати або експортувати всі зміни з профілями. Ви можете додати нову власну категорію, вибравши одну або кілька необхідних категорій. Доступні Додати власну категорію @@ -3523,9 +3523,9 @@ Укажіть назву профілю Відкрити налаштування Плагін вимкнено - Цей плагін є окремою програмою, якщо ви не плануєте користуватися ним надалі, його потрібно буде видалити окремо. + Цей втулок є окремою програмою, якщо ви не плануєте користуватися ним надалі, його потрібно буде видалити окремо. \n -\nВтулок залишиться на пристрої після видалення OsmAnd. +\nВін залишиться на пристрої після видалення OsmAnd. Меню %1$s — %2$s — %3$s Маршрутизація @@ -3617,7 +3617,7 @@ Для перегляду POI Вікіпедії на мапі потрібні додаткові мапи. Встановлення кількості елементів меню \"Скринька\", \"Налаштувати мапу\" та \"Контекстне меню\". \n -\nВимкніть непотрібні плагіни, щоби приховати всі їхні елементи керування %1$s. +\nВимкніть непотрібні втулки, щоби приховати всі їхні елементи керування %1$s. Елементи скриньки, контекстне меню Налаштування інтерфейсу Скринька @@ -3707,7 +3707,7 @@ Розташування припаркованого авто Приховати громадський транспорт Показати громадський транспорт - Показати / приховати громадський транспорт + Показати/приховати громадський транспорт Кнопка показу або приховування громадського транспорту на мапі. Створити / змінити POI Додати / редагувати вибране diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 1a3fdbe2c9..e6f2545021 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -80,6 +80,7 @@ \n- 全球離線向量圖資 \n- 直接由手機下載各國或區域圖資 \n- 可疊加不同的多種地圖層於自訂的透明度,如 GPX 或導航軌跡、興趣點、我的收藏、等高線、大眾運輸停靠站 +\n \n- 離線查詢地址、場所(POI) \n- 中程距離的離線路線 \n- 汽車、自行車、步行模式有多種選項: @@ -1196,8 +1197,7 @@ POI 覆蓋標籤 在導航期間顯示縮放按鈕。 顯示縮放按鈕 - - 線上 OSM 地圖的分類與影像。 + 線上 OSM 地圖的分類與影像。 按距離排序 按名稱排序 先長按來指定 GPX 檔案。 @@ -1478,7 +1478,7 @@ 照片 模擬您的位置 緯度 %1$s -經度 %2$s +\n經度 %2$s 常見的問題,最近的更改以及其它。 導航設定 一般設定 @@ -1868,7 +1868,7 @@ 啟動地圖標記功能。 移除所有的活動標記嗎? 清除地圖標記歷史記錄嗎? - 活動標記 + 活躍標記 地圖標記 地圖標記 新增所有的標點到地圖標記嗎? @@ -1988,7 +1988,7 @@ 鄰里 類別 郵遞區號 - "透過 OsmAnd 分享" + 透過 OsmAnd 分享 索布語 (上游) 返回查詢 自「歷程」移除已選取的項目嗎? @@ -2164,7 +2164,7 @@ 在畫面中央新增 POI 的按鈕。 打開位置編碼(OLC) 無效的 OLC - +\n 停用或啟用導航時的語音導引的開關。 在畫面中央新增停車位置的按鈕。 快速動作已重新命名為 %1$s 以避免重複。 @@ -2175,9 +2175,9 @@ 地圖底層變更為「%s」。 動作名稱 簡短 OLC -請提供完整的編碼 +\n請提供完整的編碼 有效完整的 OLC -代表區域:%1$s x %2$s +\n代表區域:%1$s x %2$s 用於翻閱下方列表的按鈕。 自動分割錄製之後的間隙 如果日期已更改,開始新區段在6分鐘後的間隔,新軌跡在2小時後的間隔,或新檔案在更長的間隔之後。 @@ -2294,21 +2294,23 @@ \n享有語音和視覺的導航,檢視 POI(興趣點),建立和管理 GPX 軌跡,使用視覺化的等高線和海拔資訊(透過外掛元件),能在汽車駕駛、騎自行車和步行模式之間選擇、OSM 編輯和更多。 GPS 導航 \n• 您可以在離線(當您在國外時就不需要國際漫遊費用了)或連線(快速)兩種模式間選擇 -\n• 轉向建議(turn by turn)語音導航(真人和合成語音) -\n• 當您偏離了行駛路線,重建改道規劃 -\n• 車道導引、街道名稱和預計抵達時間會有一路的幫助 -\n• 為了讓您的行程安全,有日/夜模式自動切換 -\n• 顯示車速限制,如果超速了則可以獲得提醒 +\n• 轉向建議語音導航(真人和合成語音) +\n• 當您偏離了行駛路線時將會重新計算路線 +\n• 車道導引、街道名稱和預計抵達時間將會一路陪伴您 +\n• 為了讓您的旅程更安全,有日/夜模式自動切換 +\n• 顯示速度限制,如果超速了則會提醒您 \n• 依您的速度調整地圖縮放 -\n• 按照地址、類別(例如:停車場、餐廳、旅店、加油站、博物館)或地理坐標搜尋目的地 -\n• 支援中轉點於您的旅程 -\n• 錄製自己的或上傳一個 GPX 軌跡並跟隨它 +\n• 按照地址、類別(例如:停車場、餐廳、旅店、加油站、博物館)或地理座標搜尋目的地 +\n• 支援在您的旅程中加入中轉點 +\n• 錄製自己的或上傳一個 GPX 軌跡並跟隨它 +\n 使用 OSM 和維基百科的資料 \n• 來自世界最好的協作專案所得的高品質資訊 \n• OSM 資料可用在每個國家或地區 \n• 維基百科 POI 卓越的觀光景點 \n• 直接從應用程式,無限制的免費下載 -\n• 密集的離線向量地圖更新,至少每月一次 +\n• 密集的離線向量地圖更新,至少每月一次 +\n \n• 可在完整的區域資料還是只有公路網之間選擇(舉例來說:整個日本就有 700 MB 而公路網部分僅有 200 MB) 導航 \n• 您可以在離線(當您在國外時就不需要國際漫遊費用了)或連線(快速)兩種模式間選擇 @@ -2331,11 +2333,12 @@ 地圖 \n• 顯示您週遭的 POI(興趣點) \n• 調整地圖到您的移動方向(或羅盤) -\n• 顯示的位置和您正在觀看的方向 +\n• 顯示的位置和您正在觀看的方向 \n• 分享您的位置,讓您的朋友能找到您 \n• 保存您最重要的地點於我的收藏 \n• 允許您選擇怎樣在地圖上顯示名稱:使用英文、裝置端或語言的拼寫 -\n• 顯示專用的線上地圖圖磚、衛星照片(來自 Bing)、不同的疊加層如旅遊/導航 GPX 軌跡以及可自定透明度的附加層 +\n• 顯示專用的線上地圖圖磚、衛星照片(來自 Bing)、不同的疊加層如旅遊/導航 GPX 軌跡以及可自訂透明度的額外圖層 +\n 自行車 \n• 在地圖找到自行車道 \n• GPS 導航在自行車模式下,使用自行車道構建您的路線 @@ -2367,14 +2370,14 @@ \n• 地圖會顯示您的步行和登山健行路徑 \n• 維基百科以您喜好的語言在市區旅遊中可以告訴您很多事 \n• 大眾運輸停靠站(公共汽車、電車、火車),包括路線名稱,有助於在新的城市裡導航 -\n• GPS 導航在行人模式下,使用步行路徑構建您的路線 -\n• 上傳並且跟隨 GPX 路線或著記錄和分享您自己的路線 +\n• GPS 導航在行人模式下,使用步行路徑構建您的路線 +\n• 上傳並且跟隨 GPX 路線或著記錄和分享您自己的路線 +\n OsmAnd+ (OSM Automated Navigation Directions) 是一個地圖和導航應用程式,可以免費存取全球性且高品質的 OSM 圖資。 \n享有語音和視覺的導航、檢視 POI(興趣點)、建立和管理 GPX 軌跡、使用視覺化的等高線和海拔資訊,能在汽車駕駛、騎自行車和步行模式之間選擇、OSM 編輯和更多。 \n \nOsmAnd+ 是 OsmAnd 的付費版本,透過購買這個應用程式來資助開發新功能,並收到最新的更新。 \n -\n \n一些主要特點: 用於速度控制自動縮放開關的按鈕。 概要 @@ -2423,7 +2426,7 @@ 這裡沒有照片。 安裝 提高 Mapillary 照片覆蓋的範圍 - 安裝 Mapillary 以將一張或更多張的照片增加到此地圖位置。 + 安裝 Mapillary 以將照片增加到此地圖位置。 開啟 Mapillary Mapillary 圖片 距離已校正 @@ -2487,7 +2490,7 @@ 新增 GPX 檔案 匯入 GPX 檔案或錄製軌跡。 增加到我的收藏 - 匯入最愛或透過地圖上的標記點新增。 + 匯入最愛或透過地圖上的標記點來新增它們。 匯入 GPX 檔案 %1$s 檔案不包含航點,要將其匯入軌跡嗎? 移動標點 @@ -2585,7 +2588,7 @@ 選擇如何顯示活動標記的距離。 - 指定方向指示數量: + 指定方向指示數量。 標記為已通過的標點將顯現在此螢幕上。 顯示指引路線到活動標記位置。 顯示一個或兩個箭頭指示方向到活動標記。 @@ -2599,7 +2602,7 @@ 標記 %s 已啟動。 「點一下」啟動 加註記! - 使用小工具或內容選單,增加音訊、視訊或照片附註在地圖上的每個標點。 + 使用小工具或內容選單,增加音訊、視訊或照片附註在地圖上的任何標點。 以日期排序的音訊/視訊註記 按照日期 按照類型 @@ -2754,7 +2757,7 @@ OsmAnd 團隊 重新啟動應用程式 顯示圖片 - "您已取消您的 OsmAnd Live 訂閱" + 您已取消您的 OsmAnd Live 訂閱 恢復訂閱以繼續使用所有的功能: 根據您已存書籤的文章,建議您去下載下方的地圖: 您需要的地圖 @@ -3471,21 +3474,21 @@ 相機快門聲 驗證成功 重新排列分類 - 變更清單順序,隱藏不需要的分類。你可以匯入或匯出所有包含變更的設定檔。 - 您可以透過選取一個或多個需要的分類來新增自訂的分類。 + 變更清單順序、隱藏分類。你可以匯入或匯出所有包含變更的設定檔。 + 您可以透過選取一個或多個分類來新增自訂的分類。 可用 新增自訂分類 僅在夜間顯示 - 所有外掛程式設定都已恢復為預設狀態。 - 所有設定檔的設定都已恢復為預設狀態。 + 所有外掛程式設定都已恢復為預設值。 + 所有設定檔的設定都已恢復為預設值。 %1$s/%2$s 日落於 %1$s 日出於 %1$s - 您的 Android 關閉了無障礙模式。 - 重設為預設值將會把排序重設回安裝後的預設值。 + 您的 Android 系統關閉了無障礙模式。 + 「重設為預設值」會將排序恢復為安裝時的預設值。 使用系統畫面逾時 - 預設停用,如果 OsmAnd 在前景執行,畫面就不會有逾時的問題。 -\n + 預設停用:當 OsmAnd 在前景執行時,畫面就不會有逾時的問題。 +\n \n若啟用,OsmAnd 將會使用系統逾時設定。 清除已紀錄的資料 • 設定檔:現在您可以變更順序、設定地圖圖示、變更基本設定檔的所有設定以及將它們復原 @@ -3716,4 +3719,5 @@ 變更應用程式設定檔 找不到任何這類的設定檔。 全球地圖總覽(詳細) + 不支援的類型 \ No newline at end of file diff --git a/OsmAnd/res/values/colors.xml b/OsmAnd/res/values/colors.xml index dc88bfcfbc..21d084f9c5 100644 --- a/OsmAnd/res/values/colors.xml +++ b/OsmAnd/res/values/colors.xml @@ -128,6 +128,8 @@ #e5e5e5 #536dfe #485dd9 + #727272 + #cccccc #f0f0f0 #1b1d1f diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 6383e285c7..cd33774ac5 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -164,7 +164,6 @@ 16dp 4dp 76dp - 10dp -16dp 4dp 54dp diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 01a7f7b6f2..45f609ade4 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -28,6 +28,7 @@ SQLiteDB file One image file per tile Pseudo-Mercator projection + OsmAnd GPX is not well formed, please contact support team to investigate further Unsupported type World overview map (detailed) Could not find any such profiles. @@ -40,7 +41,7 @@ Parking positions Create / Edit POI Button showing or hiding public transport on the map. - Show / hide public transport + Show/hide public transport Show public transport Hide public transport @@ -217,18 +218,18 @@ • Added Antarctica map\n\n Copy coordinates - Reset to default will reset sort order to the default state after installation. - Use system screen timeout - Disabled by default, if OsmAnd running on foreground, the screen doesn’t time out.\n\nIf enabled OsmAnd will use system timeout settings. - Accessibility mode turned off in your Android. + \'Reset to default\' will reinstate the sort order to the installation default. + Use the system screen timeout + Disabled by default: While OsmAnd is running in the foreground, the screen will not time out.\n\nIf enabled, OsmAnd will use the system timeout setting. + Accessibility mode is turned off in your Android system. Rearrange categories - Change the sort order of the list, hide unnecessary categories. You can import or export all changes with profiles. - You can add a new custom category by selecting one or a few needed categories. + Change the list sort order, hide categories. You can import or export all changes with profiles. + You can add a new custom category by selecting one or more categories. Available Add custom category Show only at night - All plugin settings restored to default state. - All profile settings restored to default state. + All plugin settings restored to default. + All profile settings restored to default. %1$s/%2$s Sunset at %1$s Sunrise at %1$s @@ -976,7 +977,7 @@ Actions Marker Create or modify OSM objects - Create or modify OSM POIs, open or comment OSM notes, and contribute recorded GPX files. + Create or modify OSM POIs, open or comment on OSM notes, and contribute recorded GPX files. Deleted Edited Added @@ -984,7 +985,7 @@ Tap a marker on the map to move it to the top of the active markers without opening the context menu. \'One tap\' active Make notes! - Add audio, video or photo note to every point on the map, using widget or context menu. + Add audio, video, or photo notes to any point on the map by using the widgets or context menus. A/V notes by date By date By type @@ -1007,7 +1008,7 @@ Show directional line from your position to the active marker locations. Show one or two arrows indicating the direction to the active markers. Choose how to display the distance to active markers. - Specify number of direction indicators: + Specify number of direction indicators. Number of decimal digits Right Left @@ -1134,7 +1135,7 @@ Open Mapillary Install Improve photo coverage with Mapillary - Install Mapillary to add one or more photos to this map location. + Install Mapillary to add photos to this map location. Online photos Add photos No photos here. @@ -3698,9 +3699,9 @@ Waypoint 1 Route Point 1 Add GPX files - Import GPX files, or record tracks. + Import GPX files or record tracks. Add Favorites - Import Favorites, or add by marking points on the map. + Import Favorites or add them by marking points on the map. Import GPX file File %1$s does not contain waypoints, import it as a track? Move Point diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 914b44be07..3c8eed9206 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -375,18 +375,20 @@ public class AndroidUtils { } } - public static void updateImageButton(Context ctx, ImageButton button, int iconLightId, int iconDarkId, int bgLightId, int bgDarkId, boolean night) { + public static void updateImageButton(OsmandApplication ctx, ImageButton button, + @DrawableRes int iconLightId, @DrawableRes int iconDarkId, + @DrawableRes int bgLightId, @DrawableRes int bgDarkId, boolean night) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - button.setBackground(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); + button.setBackground(ctx.getUIUtilities().getIcon(night ? bgDarkId : bgLightId)); } else { - button.setBackgroundDrawable(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); + button.setBackgroundDrawable(ctx.getUIUtilities().getIcon(night ? bgDarkId : bgLightId)); } int btnSizePx = button.getLayoutParams().height; - int iconSizePx = (int) button.getContext().getResources().getDimension(R.dimen.map_widget_icon); + int iconSizePx = ctx.getResources().getDimensionPixelSize(R.dimen.map_widget_icon); int iconPadding = (btnSizePx - iconSizePx) / 2; button.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); button.setScaleType(ImageView.ScaleType.FIT_CENTER); - button.setImageDrawable(AppCompatResources.getDrawable(ctx, night ? iconDarkId : iconLightId)); + button.setImageDrawable(ctx.getUIUtilities().getMapIcon(night ? iconDarkId : iconLightId, !night)); } public static void setDashButtonBackground(Context ctx, View view, boolean night) { diff --git a/OsmAnd/src/net/osmand/SecondSplashScreenFragment.java b/OsmAnd/src/net/osmand/SecondSplashScreenFragment.java index 9853e77390..147c4b80cc 100644 --- a/OsmAnd/src/net/osmand/SecondSplashScreenFragment.java +++ b/OsmAnd/src/net/osmand/SecondSplashScreenFragment.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; import androidx.fragment.app.FragmentActivity; @@ -36,15 +37,6 @@ public class SecondSplashScreenFragment extends BaseOsmAndFragment { return (MapActivity) getActivity(); } - private boolean hasNavBar() { - int id = getResources().getIdentifier("config_showNavigationBar", "bool", "android"); - if (id > 0) { - return getResources().getBoolean(id); - } else { - return false; - } - } - private int getStatusBarHeight() { int statusBarHeight = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); @@ -55,7 +47,7 @@ public class SecondSplashScreenFragment extends BaseOsmAndFragment { } private int getNavigationBarHeight() { - if (!hasNavBar()) + if (!AndroidUtils.hasNavBar(getContext()) && !AndroidUtils.isNavBarVisible(getMapActivity())) return 0; int orientation = getResources().getConfiguration().orientation; if (isSmartphone() && Configuration.ORIENTATION_LANDSCAPE == orientation) @@ -67,7 +59,7 @@ public class SecondSplashScreenFragment extends BaseOsmAndFragment { } private int getNavigationBarWidth() { - if (!hasNavBar()) + if (!AndroidUtils.hasNavBar(getContext()) && !AndroidUtils.isNavBarVisible(getMapActivity())) return 0; int orientation = getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE && isSmartphone()) { @@ -80,7 +72,7 @@ public class SecondSplashScreenFragment extends BaseOsmAndFragment { @Nullable @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { OsmandApplication app = requireMyApplication(); FragmentActivity activity = requireActivity(); @@ -130,11 +122,11 @@ public class SecondSplashScreenFragment extends BaseOsmAndFragment { RelativeLayout.LayoutParams osmTextLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); osmTextLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); osmTextLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); - - int defaultLogoMarginTop = (int) getResources().getDimension(R.dimen.splash_screen_logo_top); + + int defaultLogoMarginTop = getResources().getDimensionPixelSize(R.dimen.splash_screen_logo_top); int logoMarginTop = defaultLogoMarginTop - (Build.VERSION.SDK_INT >= 21 ? 0 : getStatusBarHeight()); - int textMarginBottom = (int) getResources().getDimension(R.dimen.splash_screen_text_bottom); - int osmTextMarginBottom = (int) getResources().getDimension(R.dimen.splash_screen_osm_text_bottom); + int textMarginBottom = getResources().getDimensionPixelSize(R.dimen.splash_screen_text_bottom); + int osmTextMarginBottom = getResources().getDimensionPixelSize(R.dimen.splash_screen_osm_text_bottom); int elementsPaddingLeft = 0; int elementsPaddingRight = 0; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) { diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index 3338594403..c39fe3a9d5 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -553,7 +553,8 @@ public class AppInitializer implements IProgress { customConfigs.put(fileName, builder); } catch (XmlPullParserException | IOException e) { - throw new IllegalStateException(e); + Algorithms.removeAllFiles(f); + LOG.error(e.getMessage(), e); } } } diff --git a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java index da3d5c8fce..322c19e8e4 100644 --- a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java +++ b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java @@ -1161,7 +1161,6 @@ public class MapMarkersHelper { removeGroupActiveMarkers(group, true); return; } - for (FavouritePoint fp : favGroup.getPoints()) { addNewMarkerIfNeeded(group, groupMarkers, new LatLon(fp.getLatitude(), fp.getLongitude()), fp.getName(), fp, null); } diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java index 8e4ae960c2..0b2683fcc6 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java @@ -79,7 +79,7 @@ public class OsmAndLocationSimulation { @Override public boolean processResult(GPXUtilities.GPXFile[] result) { GPXRouteParamsBuilder builder = new GPXRouteParamsBuilder(result[0], app.getSettings()); - startAnimationThread(app, builder.getPoints(), true, speedup.getValue() + 1); + startAnimationThread(app, builder.getPoints(app), true, speedup.getValue() + 1); if (runnable != null) { runnable.run(); } diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 9f16bbc9a0..0a168ffec9 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -144,7 +144,7 @@ public class UiUtilities { } public Drawable getMapIcon(@DrawableRes int id, boolean light) { - return getDrawable(id, light ? R.color.icon_color_default_light : 0); + return getDrawable(id, light ? R.color.map_button_icon_color_light : R.color.map_button_icon_color_dark); } public static Drawable getSelectableDrawable(Context ctx) { diff --git a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java index f1d28dfa2b..916f64fc59 100644 --- a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java @@ -132,7 +132,7 @@ public class ContributionVersionActivity extends OsmandListActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if(ACTIVITY_TO_INSTALL == requestCode && resultCode != RESULT_OK){ + if (ACTIVITY_TO_INSTALL == requestCode && resultCode != RESULT_OK && currentInstalledDate != null) { updateInstalledApp(false, currentInstalledDate); } } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index c5ad4ec536..2fddc98cc6 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -368,7 +368,7 @@ public class MapActivityActions implements DialogProvider { adapter.addItem(itemBuilder .setTitleId(R.string.shared_string_actions, mapActivity) .setId(MAP_CONTEXT_MENU_MORE_ID) - .setIcon(R.drawable.map_overflow_menu_white) + .setIcon(R.drawable.ic_actions_menu) .setOrder(40) .createItem()); @@ -514,7 +514,7 @@ public class MapActivityActions implements DialogProvider { params.setCalculateOsmAndRouteParts(settings.GPX_ROUTE_CALC_OSMAND_PARTS.get()); params.setUseIntermediatePointsRTE(settings.GPX_CALCULATE_RTEPT.get()); params.setCalculateOsmAndRoute(settings.GPX_ROUTE_CALC.get()); - List ps = params.getPoints(); + List ps = params.getPoints(settings.getContext()); mapActivity.getRoutingHelper().setGpxParams(params); settings.FOLLOW_THE_GPX_ROUTE.set(result.path); if (!ps.isEmpty()) { @@ -776,7 +776,7 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.home, mapActivity) .setId(DRAWER_DASHBOARD_ID) - .setIcon(R.drawable.map_dashboard) + .setIcon(R.drawable.ic_dashboard) .setListener(new ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked, int[] viewCoordinates) { diff --git a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java index 76293f870d..cb91f7d167 100644 --- a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java @@ -166,17 +166,18 @@ public class OsmandInAppPurchaseActivity extends AppCompatActivity implements In @Override public void onItemPurchased(String sku, boolean active) { + FragmentManager fragmentManager = getSupportFragmentManager(); if (purchaseHelper != null && purchaseHelper.getLiveUpdates().containsSku(sku)) { getMyApplication().logEvent("live_osm_subscription_purchased"); - if (!active) { + if (!active && !fragmentManager.isStateSaved()) { OsmLiveRestartBottomSheetDialogFragment fragment = new OsmLiveRestartBottomSheetDialogFragment(); fragment.setUsedOnMap(this instanceof MapActivity); - fragment.show(getSupportFragmentManager(), OsmLiveRestartBottomSheetDialogFragment.TAG); + fragment.show(fragmentManager, OsmLiveRestartBottomSheetDialogFragment.TAG); } } onInAppPurchaseItemPurchased(sku); - fireInAppPurchaseItemPurchasedOnFragments(getSupportFragmentManager(), sku, active); + fireInAppPurchaseItemPurchasedOnFragments(fragmentManager, sku, active); } public void fireInAppPurchaseItemPurchasedOnFragments(@NonNull FragmentManager fragmentManager, diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index 1b01f158be..65eeffd8bd 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -1,6 +1,7 @@ package net.osmand.plus.dashboard; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -96,7 +97,7 @@ public class DashFavoritesFragment extends DashLocationFragment { public void setupFavorites() { View mainView = getView(); - OsmandApplication app = getMyApplication(); + final OsmandApplication app = getMyApplication(); if (mainView == null || app == null) { return; } @@ -112,7 +113,7 @@ public class DashFavoritesFragment extends DashLocationFragment { Collections.sort(points, new Comparator() { @Override public int compare(FavouritePoint point, FavouritePoint point2) { - // LatLon lastKnownMapLocation = getMyApplication().getSettings().getLastKnownMapLocation(); + // LatLon lastKnownMapLocation = app.getSettings().getLastKnownMapLocation(); int dist = (int) (MapUtils.getDistance(point.getLatitude(), point.getLongitude(), loc.getLatitude(), loc.getLongitude())); int dist2 = (int) (MapUtils.getDistance(point2.getLatitude(), point2.getLongitude(), @@ -123,7 +124,7 @@ public class DashFavoritesFragment extends DashLocationFragment { } LinearLayout favorites = (LinearLayout) mainView.findViewById(R.id.items); favorites.removeAllViews(); - DashboardOnMap.handleNumberOfRows(points, getMyApplication().getSettings(), ROW_NUMBER_TAG); + DashboardOnMap.handleNumberOfRows(points, app.getSettings(), ROW_NUMBER_TAG); List distances = new ArrayList(); for (final FavouritePoint point : points) { LayoutInflater inflater = getActivity().getLayoutInflater(); @@ -136,38 +137,40 @@ public class DashFavoritesFragment extends DashLocationFragment { view.findViewById(R.id.divider).setVisibility(View.VISIBLE); ImageView groupImage = (ImageView)view.findViewById(R.id.group_image); if (point.getCategory().length() > 0) { - ((TextView) view.findViewById(R.id.group_name)).setText(point.getCategoryDisplayName(getMyApplication())); - groupImage.setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_group_name_16)); + ((TextView) view.findViewById(R.id.group_name)).setText(point.getCategoryDisplayName(app)); + groupImage.setImageDrawable(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_group_name_16)); } else { groupImage.setVisibility(View.GONE); } - ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(FavoriteImageDrawable.getOrCreate( - getActivity(), point.getColor(), false, point)); + int iconColor = app.getFavorites().getColorWithCategory(point, getResources().getColor(R.color.color_favorite)); + Drawable favoriteIcon = FavoriteImageDrawable.getOrCreate(app, iconColor, false, point); + ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(favoriteIcon); DashLocationView dv = new DashLocationView(direction, label, new LatLon(point.getLatitude(), point.getLongitude())); distances.add(dv); - name.setText(point.getDisplayName(getMyApplication())); + name.setText(point.getDisplayName(app)); name.setTypeface(Typeface.DEFAULT, point.isVisible() ? Typeface.NORMAL : Typeface.ITALIC); view.findViewById(R.id.navigate_to).setVisibility(View.VISIBLE); - ((ImageView) view.findViewById(R.id.navigate_to)).setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_gdirections_dark)); + Drawable directionIcon = app.getUIUtilities().getThemedIcon(R.drawable.ic_action_gdirections_dark); + ((ImageView) view.findViewById(R.id.navigate_to)).setImageDrawable(directionIcon); view.findViewById(R.id.navigate_to).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DirectionsDialogs.directionsToDialogAndLaunchMap(getActivity(), point.getLatitude(), point.getLongitude(), - new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(getMyApplication()))); + new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(app))); } }); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - getMyApplication().getSettings().setMapLocationToShow(point.getLatitude(), point.getLongitude(), - 15, new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(getMyApplication())), true, - point); //$NON-NLS-1$ + app.getSettings().setMapLocationToShow(point.getLatitude(), point.getLongitude(), + 15, new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(app)), + true, point); MapActivity.launchMapActivityMoveToTop(getActivity()); } }); diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java index 3833a9713a..b52e495dd3 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java @@ -24,6 +24,7 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CompoundButton; import android.widget.FrameLayout; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.ListView; @@ -49,13 +50,11 @@ import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.ValueHolder; import net.osmand.data.LatLon; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.OnRowItemClick; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -78,6 +77,8 @@ import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingParameter; import net.osmand.plus.routing.IRouteInformationListener; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.srtmplugin.ContourLinesMenu; import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.srtmplugin.TerrainFragment; @@ -340,7 +341,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo UiUtilities iconsCache = mapActivity.getMyApplication().getUIUtilities(); ImageView lst = (ImageView) dashboardView.findViewById(R.id.toolbar_list); lst.setVisibility(View.GONE); - ImageView back = (ImageView) dashboardView.findViewById(R.id.toolbar_back); + ImageButton back = (ImageButton) dashboardView.findViewById(R.id.toolbar_back); Drawable icBack = getMyApplication().getUIUtilities().getIcon(AndroidUtils.getNavigationIconResId(mapActivity)); back.setImageDrawable(icBack); back.setOnClickListener(new View.OnClickListener() { @@ -414,7 +415,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo DashboardActionButton myLocationButton = new DashboardActionButton(); - myLocationButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_my_location); + myLocationButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_my_location); myLocationButton.text = mapActivity.getString(R.string.map_widget_back_to_loc); myLocationButton.onClickListener = new View.OnClickListener() { @Override @@ -429,7 +430,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo }; DashboardActionButton navigateButton = new DashboardActionButton(); - navigateButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_start_navigation); + navigateButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_action_start_navigation); navigateButton.text = mapActivity.getString(R.string.follow); navigateButton.onClickListener = new View.OnClickListener() { @Override @@ -440,7 +441,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo }; DashboardActionButton routeButton = new DashboardActionButton(); - routeButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_directions); + routeButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_action_gdirections_dark); routeButton.text = mapActivity.getString(R.string.layer_route); routeButton.onClickListener = new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java index 3cfd370057..b5ea815bed 100644 --- a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java @@ -215,7 +215,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { SunriseSunset sunriseSunset = getMyApplication().getDaynightHelper().getSunriseSunset(); pref = new Preference(this); pref.setTitle(R.string.day_night_info); - if (sunriseSunset != null) { + if (sunriseSunset != null && sunriseSunset.getSunrise() != null && sunriseSunset.getSunset() != null) { SimpleDateFormat prt = new SimpleDateFormat("yyyy-MM-dd HH:mm"); pref.setSummary(getString(R.string.day_night_info_description, prt.format(sunriseSunset.getSunrise()), prt.format(sunriseSunset.getSunset()))); diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 4c3378c77e..b3e11e54b6 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -37,9 +37,6 @@ import net.osmand.plus.DialogListItemAdapter; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; -import net.osmand.plus.settings.backend.OsmandSettings.ListStringPreference; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -51,6 +48,9 @@ import net.osmand.plus.inapp.InAppPurchaseHelper; import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.render.RendererRegistry; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; +import net.osmand.plus.settings.backend.OsmandSettings.ListStringPreference; import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.transport.TransportLinesMenu; import net.osmand.plus.views.OsmandMapTileView; @@ -504,7 +504,7 @@ public class ConfigureMapMenu { String description = ""; SunriseSunset sunriseSunset = activity.getMyApplication().getDaynightHelper().getSunriseSunset(); - if (sunriseSunset != null) { + if (sunriseSunset != null && sunriseSunset.getSunrise() != null && sunriseSunset.getSunset() != null) { DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT); String sunriseTime = dateFormat.format(sunriseSunset.getSunrise()); String sunsetTime = dateFormat.format(sunriseSunset.getSunset()); @@ -529,6 +529,9 @@ public class ConfigureMapMenu { @Override public boolean onContextMenuClick(final ArrayAdapter ad, int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return false; + } final OsmandMapTileView view = activity.getMapView(); AlertDialog.Builder bld = new AlertDialog.Builder(new ContextThemeWrapper(view.getContext(), themeRes)); bld.setTitle(R.string.daynight); @@ -570,6 +573,9 @@ public class ConfigureMapMenu { @Override public boolean onContextMenuClick(final ArrayAdapter ad, int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return false; + } final OsmandMapTileView view = activity.getMapView(); final OsmandSettings.OsmandPreference mapDensity = view.getSettings().MAP_DENSITY; AlertDialog.Builder bld = new AlertDialog.Builder(new ContextThemeWrapper(view.getContext(), themeRes)); @@ -638,6 +644,9 @@ public class ConfigureMapMenu { @Override public boolean onContextMenuClick(final ArrayAdapter ad, int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return false; + } final OsmandMapTileView view = activity.getMapView(); AlertDialog.Builder b = new AlertDialog.Builder(new ContextThemeWrapper(view.getContext(), themeRes)); // test old descr as title @@ -682,6 +691,9 @@ public class ConfigureMapMenu { @Override public boolean onContextMenuClick(final ArrayAdapter ad, int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return false; + } final OsmandMapTileView view = activity.getMapView(); AlertDialog.Builder b = new AlertDialog.Builder(new ContextThemeWrapper(view.getContext(), themeRes)); @@ -991,7 +1003,9 @@ public class ConfigureMapMenu { final int themeRes, final boolean nightMode, @ColorInt final int selectedProfileColor) { - + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return; + } AlertDialog.Builder bld = new AlertDialog.Builder(new ContextThemeWrapper(activity, themeRes)); boolean[] checkedItems = new boolean[prefs.size()]; final boolean[] tempPrefs = new boolean[prefs.size()]; @@ -1245,7 +1259,10 @@ public class ConfigureMapMenu { @Override public boolean onContextMenuClick(final ArrayAdapter ad, - final int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + final int itemId, final int pos, boolean isChecked, int[] viewCoordinates) { + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return false; + } AlertDialog.Builder b = new AlertDialog.Builder(new ContextThemeWrapper(view.getContext(), themeRes)); // test old descr as title b.setTitle(propertyDescr); diff --git a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java index 426cba0e2d..6142f90c7a 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java @@ -761,13 +761,15 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement } @Override - public boolean onOptionsItemSelected(MenuItem item) { - int itemId = item.getItemId(); - for (int i = 0; i < optionsMenuAdapter.length(); i++) { - ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(i); - if (itemId == contextMenuItem.getTitleId()) { - contextMenuItem.getItemClickListener().onContextMenuClick(null, itemId, i, false, null); - return true; + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if (optionsMenuAdapter != null) { + int itemId = item.getItemId(); + for (int i = 0; i < optionsMenuAdapter.length(); i++) { + ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(i); + if (itemId == contextMenuItem.getTitleId()) { + contextMenuItem.getItemClickListener().onContextMenuClick(null, itemId, i, false, null); + return true; + } } } return super.onOptionsItemSelected(item); diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 96914f4e13..ba8e105ad0 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -9,7 +9,6 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.os.ParcelFileDescriptor; import android.provider.OpenableColumns; import android.provider.Settings; import android.widget.Toast; @@ -60,7 +59,6 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -165,7 +163,7 @@ public class ImportHelper { return false; } - public void handleFavouritesImport(@NonNull Uri uri) { + public void handleGpxOrFavouritesImport(@NonNull Uri uri) { String scheme = uri.getScheme(); boolean isFileIntent = "file".equals(scheme); boolean isContentIntent = "content".equals(scheme); @@ -177,7 +175,7 @@ public class ImportHelper { } else if (isContentIntent) { fileName = getNameFromContentUri(app, uri); } - handleFavouritesImport(uri, fileName, saveFile, false, true); + handleGpxOrFavouritesImport(uri, fileName, saveFile, false, true); } public void handleFileImport(Uri intentUri, String fileName, Bundle extras, boolean useImportDir) { @@ -186,40 +184,48 @@ public class ImportHelper { final boolean saveFile = !isFileIntent || !isOsmandSubdir; - if (fileName != null && fileName.endsWith(KML_SUFFIX)) { + if (fileName == null) { + handleGpxOrFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); + } else if (fileName.endsWith(KML_SUFFIX)) { handleKmlImport(intentUri, fileName, saveFile, useImportDir); - } else if (fileName != null && fileName.endsWith(KMZ_SUFFIX)) { + } else if (fileName.endsWith(KMZ_SUFFIX)) { handleKmzImport(intentUri, fileName, saveFile, useImportDir); - } else if (fileName != null && fileName.endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) { + } else if (fileName.endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) { handleObfImport(intentUri, fileName); - } else if (fileName != null && fileName.endsWith(IndexConstants.SQLITE_EXT)) { + } else if (fileName.endsWith(IndexConstants.SQLITE_EXT)) { handleSqliteTileImport(intentUri, fileName); - } else if (fileName != null && fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) { + } else if (fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) { handleOsmAndSettingsImport(intentUri, fileName, extras, null); - } else if (fileName != null && fileName.endsWith(ROUTING_FILE_EXT)) { + } else if (fileName.endsWith(ROUTING_FILE_EXT)) { handleXmlFileImport(intentUri, fileName, null); } else { - handleFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); + handleGpxOrFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); } } public static String getNameFromContentUri(OsmandApplication app, Uri contentUri) { - final String name; - final Cursor returnCursor = app.getContentResolver().query(contentUri, new String[] {OpenableColumns.DISPLAY_NAME}, null, null, null); - if (returnCursor != null && returnCursor.moveToFirst()) { - int columnIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); - if (columnIndex != -1) { - name = returnCursor.getString(columnIndex); + try { + final String name; + final Cursor returnCursor = app.getContentResolver().query(contentUri, new String[]{OpenableColumns.DISPLAY_NAME}, null, null, null); + if (returnCursor != null && returnCursor.moveToFirst()) { + int columnIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + if (columnIndex != -1) { + name = returnCursor.getString(columnIndex); + } else { + name = contentUri.getLastPathSegment(); + } } else { - name = contentUri.getLastPathSegment(); + name = null; } - } else { - name = null; + if (returnCursor != null && !returnCursor.isClosed()) { + returnCursor.close(); + } + return name; + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + return null; } - if (returnCursor != null && !returnCursor.isClosed()) { - returnCursor.close(); - } - return name; + } @SuppressLint("StaticFieldLeak") @@ -236,10 +242,8 @@ public class ImportHelper { protected GPXFile doInBackground(Void... nothing) { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(gpxFile, "r"); - - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(gpxFile); + if (is != null) { return GPXUtilities.loadGPXFile(is); } } catch (FileNotFoundException e) { @@ -264,7 +268,7 @@ public class ImportHelper { } @SuppressLint("StaticFieldLeak") - private void handleFavouritesImport(final Uri fileUri, final String fileName, final boolean save, final boolean useImportDir, final boolean forceImportFavourites) { + private void handleGpxOrFavouritesImport(final Uri fileUri, final String fileName, final boolean save, final boolean useImportDir, final boolean forceImportFavourites) { new AsyncTask() { ProgressDialog progress = null; @@ -278,10 +282,8 @@ public class ImportHelper { InputStream is = null; ZipInputStream zis = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(fileUri, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); - + is = app.getContentResolver().openInputStream(fileUri); + if (is != null) { if (fileName != null && fileName.endsWith(KML_SUFFIX)) { final String result = Kml2Gpx.toGpx(is); if (result != null) { @@ -331,7 +333,7 @@ public class ImportHelper { progress.dismiss(); } - importFavourites(result, fileName, save, useImportDir, forceImportFavourites); + importGpxOrFavourites(result, fileName, save, useImportDir, forceImportFavourites); } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -394,9 +396,8 @@ public class ImportHelper { InputStream is = null; ZipInputStream zis = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(kmzFile, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(kmzFile); + if (is != null) { zis = new ZipInputStream(is); zis.getNextEntry(); final String result = Kml2Gpx.toGpx(zis); @@ -449,9 +450,8 @@ public class ImportHelper { protected GPXFile doInBackground(Void... nothing) { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(kmlFile, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(kmlFile); + if (is != null) { final String result = Kml2Gpx.toGpx(is); if (result != null) { try { @@ -533,13 +533,12 @@ public class ImportHelper { InputStream in = null; OutputStream out = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(uri, "r"); - if (pFD != null) { - in = new FileInputStream(pFD.getFileDescriptor()); + in = app.getContentResolver().openInputStream(uri); + if (in != null) { out = new FileOutputStream(dest); Algorithms.streamCopy(in, out); try { - pFD.close(); + in.close(); } catch (IOException e) { e.printStackTrace(); } @@ -893,9 +892,8 @@ public class ImportHelper { private void checkImportType() { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(intentUri, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(intentUri); + if (is != null) { XmlPullParser parser = PlatformUtil.newXMLPullParser(); parser.setInput(is, "UTF-8"); int tok; @@ -911,7 +909,7 @@ public class ImportHelper { } } try { - pFD.close(); + is.close(); } catch (IOException e) { log.error(e); } @@ -1101,8 +1099,8 @@ public class ImportHelper { } } - private void importFavourites(final GPXFile gpxFile, final String fileName, final boolean save, - final boolean useImportDir, final boolean forceImportFavourites) { + private void importGpxOrFavourites(final GPXFile gpxFile, final String fileName, final boolean save, + final boolean useImportDir, final boolean forceImportFavourites) { if (gpxFile == null || gpxFile.isPointsEmpty()) { if (forceImportFavourites) { final DialogInterface.OnClickListener importAsTrackListener = new DialogInterface.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java index 239715e192..5cd0ce4b39 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java @@ -17,11 +17,8 @@ import net.osmand.data.LocationPoint; import net.osmand.data.PointDescription; import net.osmand.data.WptLocationPoint; import net.osmand.osm.PoiType; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.UiUtilities; @@ -33,6 +30,9 @@ import net.osmand.plus.routing.AlarmInfo; import net.osmand.plus.routing.AlarmInfo.AlarmInfoType; import net.osmand.plus.routing.RouteCalculationResult; import net.osmand.plus.routing.VoiceRouter; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.util.MapUtils; import java.util.ArrayList; @@ -627,20 +627,21 @@ public class WaypointHelper { amenities.addAll(pf.searchAmenitiesOnThePath(locs, poiSearchDeviationRadius)); } for (Amenity a : amenities) { - AmenityRoutePoint rp = a.getRoutePoint(); - int i = locs.indexOf(rp.pointA); - if (i >= 0) { - LocationPointWrapper lwp = new LocationPointWrapper(route, POI, new AmenityLocationPoint(a), - (float) rp.deviateDistance, i); - lwp.deviationDirectionRight = rp.deviationDirectionRight; - lwp.setAnnounce(announcePOI); - locationPoints.add(lwp); + AmenityRoutePoint routePoint = a.getRoutePoint(); + if (routePoint != null) { + int i = locs.indexOf(routePoint.pointA); + if (i >= 0) { + LocationPointWrapper lwp = new LocationPointWrapper(route, POI, new AmenityLocationPoint(a), + (float) routePoint.deviateDistance, i); + lwp.deviationDirectionRight = routePoint.deviationDirectionRight; + lwp.setAnnounce(announcePOI); + locationPoints.add(lwp); + } } } } } - private void calculateAlarms(RouteCalculationResult route, List array, ApplicationMode mode) { AlarmInfo prevSpeedCam = null; for (AlarmInfo i : route.getAlarmInfo()) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index 64f18db5e5..e28559d055 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -914,7 +914,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL } public int getFabIconId() { - int res = R.drawable.map_directions; + int res = R.drawable.ic_action_gdirections_dark; MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 7c8d5b6553..2fda1e16fb 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -513,9 +513,9 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo zoomInButtonView = (ImageButton) view.findViewById(R.id.context_menu_zoom_in_button); zoomOutButtonView = (ImageButton) view.findViewById(R.id.context_menu_zoom_out_button); if (menu.zoomButtonsVisible()) { - AndroidUtils.updateImageButton(mapActivity, zoomInButtonView, R.drawable.map_zoom_in, R.drawable.map_zoom_in_night, + AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.ic_zoom_in, R.drawable.ic_zoom_in, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); - AndroidUtils.updateImageButton(mapActivity, zoomOutButtonView, R.drawable.map_zoom_out, R.drawable.map_zoom_out_night, + AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.ic_zoom_out, R.drawable.ic_zoom_out, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); zoomInButtonView.setOnClickListener(new View.OnClickListener() { @Override @@ -622,7 +622,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } }); TextView directionsButton = (TextView) view.findViewById(R.id.context_menu_directions_button); - int iconResId = R.drawable.map_directions; + int iconResId = R.drawable.ic_action_gdirections_dark; if (menu.navigateInPedestrianMode()) { iconResId = R.drawable.ic_action_pedestrian_dark; } @@ -1150,7 +1150,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = leftTitleButtonController.getLeftIcon(); Drawable rightIcon = leftTitleButtonController.getRightIcon(); leftTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - leftTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + leftTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) leftTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { leftTitleButtonView.setVisibility(View.INVISIBLE); @@ -1169,7 +1169,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = rightTitleButtonController.getLeftIcon(); Drawable rightIcon = rightTitleButtonController.getRightIcon(); rightTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - rightTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + rightTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) rightTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { rightTitleButtonView.setVisibility(View.INVISIBLE); @@ -1185,7 +1185,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = bottomTitleButtonController.getLeftIcon(); Drawable rightIcon = bottomTitleButtonController.getRightIcon(); bottomTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - bottomTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + bottomTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) bottomTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { bottomTitleButtonView.setVisibility(View.GONE); @@ -1209,7 +1209,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = leftDownloadButtonController.getLeftIcon(); Drawable rightIcon = leftDownloadButtonController.getRightIcon(); leftDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - leftDownloadButton.setCompoundDrawablePadding(dpToPx(8f)); + leftDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) leftDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { leftDownloadButtonView.setVisibility(View.INVISIBLE); @@ -1225,7 +1225,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = rightDownloadButtonController.getLeftIcon(); Drawable rightIcon = rightDownloadButtonController.getRightIcon(); rightDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - rightDownloadButton.setCompoundDrawablePadding(dpToPx(8f)); + rightDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) rightDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { rightDownloadButtonView.setVisibility(View.INVISIBLE); @@ -1295,7 +1295,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = buttonController.getLeftIcon(); Drawable rightIcon = buttonController.getRightIcon(); buttonText.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - buttonText.setCompoundDrawablePadding(dpToPx(8f)); + buttonText.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) buttonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); buttonView.setOnClickListener(new View.OnClickListener() { @Override @@ -1314,7 +1314,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo final ImageView iconView = (ImageView) view.findViewById(R.id.context_menu_icon_view); Drawable icon = menu.getRightIcon(); int iconId = menu.getRightIconId(); - int sizeId = menu.isBigRightIcon() ? R.dimen.context_menu_big_icon_size : R.dimen.map_widget_icon; + int sizeId = menu.isBigRightIcon() ? R.dimen.context_menu_big_icon_size : R.dimen.standard_icon_size; if (menu.getPointDescription().isFavorite() || menu.getPointDescription().isWpt()) { sizeId = R.dimen.favorites_icon_size; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java index 4158b39fdb..8875949d3f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java @@ -2,7 +2,6 @@ package net.osmand.plus.mapcontextmenu.editors; import android.app.Activity; import android.app.Dialog; -import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -99,7 +98,7 @@ public class SelectCategoryDialogFragment extends DialogFragment { } View itemView = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_category_dialog_item, null); Button button = (Button)itemView.findViewById(R.id.button); - button.setCompoundDrawablesWithIntrinsicBounds(getIcon(activity, R.drawable.map_zoom_in), null, null, null); + button.setCompoundDrawablesWithIntrinsicBounds(getIcon(activity, R.drawable.ic_zoom_in), null, null, null); button.setCompoundDrawablePadding(AndroidUtils.dpToPx(activity,15f)); button.setText(activity.getResources().getText(R.string.favorite_category_add_new)); button.setOnClickListener(new View.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java index a73e8a812f..8050da14d9 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java @@ -525,7 +525,7 @@ public class PlanRouteFragment extends BaseOsmAndFragment implements OsmAndLocat if (loc != null) { end = TargetPoint.createStartPoint(new LatLon(loc.getLatitude(), loc.getLongitude()), new PointDescription(PointDescription.POINT_TYPE_MY_LOCATION, - getString(R.string.shared_string_my_location))); + mapActivity.getString(R.string.shared_string_my_location))); } } if (end != null) { diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java index d7aba2f321..1231edf3ab 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java @@ -25,19 +25,19 @@ import com.google.android.material.slider.Slider; import net.osmand.AndroidUtils; import net.osmand.Location; import net.osmand.ValueHolder; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.NavigationService; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndTaskManager.OsmAndTaskRunnable; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.SavingTrackHelper; import net.osmand.plus.activities.SavingTrackHelper.SaveGpxResult; import net.osmand.plus.dashboard.tools.DashFragmentData; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.fragments.BaseSettingsFragment; import net.osmand.plus.views.MapInfoLayer; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; @@ -333,18 +333,20 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { startGPXMonitoring(activity, showTrackSelection); } } else if (item == R.string.clear_recorded_data) { - AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode)); - builder.setTitle(R.string.clear_recorded_data); - builder.setMessage(R.string.are_you_sure); - builder.setNegativeButton(R.string.shared_string_cancel, null).setPositiveButton( - R.string.shared_string_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - app.getSavingTrackHelper().clearRecordedData(true); - app.getNotificationHelper().refreshNotifications(); - } - }); - builder.show(); + if (AndroidUtils.isActivityNotDestroyed(activity)) { + AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode)); + builder.setTitle(R.string.clear_recorded_data); + builder.setMessage(R.string.are_you_sure); + builder.setNegativeButton(R.string.shared_string_cancel, null).setPositiveButton( + R.string.shared_string_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + app.getSavingTrackHelper().clearRecordedData(true); + app.getNotificationHelper().refreshNotifications(); + } + }); + builder.show(); + } } else if(item == R.string.gpx_monitoring_stop) { stopRecording(); } else if(item == R.string.gpx_start_new_segment) { @@ -482,19 +484,21 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { } } - - public static void showIntervalChooseDialog(final Context uiCtx, final String patternMsg, + public static void showIntervalChooseDialog(final Activity activity, final String patternMsg, String title, final int[] seconds, final int[] minutes, final ValueHolder choice, final ValueHolder v, final boolean showTrackSelection, OnClickListener onclick) { - final OsmandApplication app = (OsmandApplication) uiCtx.getApplicationContext(); + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return; + } + final OsmandApplication app = (OsmandApplication) activity.getApplicationContext(); boolean nightMode; - if (uiCtx instanceof MapActivity) { + if (activity instanceof MapActivity) { nightMode = app.getDaynightHelper().isNightModeForMapControls(); } else { nightMode = !app.getSettings().isLightContent(); } - Context themedContext = UiUtilities.getThemedContext(uiCtx, nightMode); + Context themedContext = UiUtilities.getThemedContext(activity, nightMode); AlertDialog.Builder dlg = new AlertDialog.Builder(themedContext); dlg.setTitle(title); LinearLayout ll = createIntervalChooseLayout(app, themedContext, patternMsg, seconds, minutes, choice, v, showTrackSelection, nightMode); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java index 237eb3fc7a..7793c85e29 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java @@ -784,7 +784,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement i++; } menuAdapter.addItem(itemBuilder.setTitleId(R.string.add_new_folder, app) - .setIcon(R.drawable.map_zoom_in).setTag(-1).createItem()); + .setIcon(R.drawable.ic_zoom_in).setTag(-1).createItem()); final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final ArrayAdapter listAdapter = menuAdapter.createListAdapter(getActivity(), app.getSettings().isLightContent()); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java index e56916bff0..5022942bf8 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java @@ -155,7 +155,7 @@ public class FavoritesActivity extends TabActivity { } } else if (requestCode == IMPORT_FAVOURITES_REQUEST && resultCode == Activity.RESULT_OK) { if (data != null && data.getData() != null) { - importHelper.handleFavouritesImport(data.getData()); + importHelper.handleGpxOrFavouritesImport(data.getData()); } } else { super.onActivityResult(requestCode, resultCode, data); diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index 0037c5634b..8e30fb274f 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -340,11 +340,7 @@ public class PoiFiltersHelper { public List getSortedPoiFilters(@NonNull ApplicationMode appMode, boolean onlyActive) { initPoiUIFiltersState(appMode); List allFilters = new ArrayList<>(); - for (PoiUIFilter filter : getTopDefinedPoiFilters()) { - if (!filter.isWikiFilter()) { - allFilters.add(filter); - } - } + allFilters.addAll(getTopDefinedPoiFilters()); allFilters.addAll(getSearchPoiFilters()); Collections.sort(allFilters); if (onlyActive) { @@ -617,6 +613,10 @@ public class PoiFiltersHelper { } public void loadSelectedPoiFilters() { + // don't deal with not loaded poi types + if(!application.getPoiTypes().isInit()) { + return; + } selectedPoiFilters.clear(); OsmandSettings settings = application.getSettings(); Set filters = settings.getSelectedPoiFilters(); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java index 692ffa5991..1d925023bb 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java @@ -352,9 +352,9 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe ImageButton zoomOutButtonView = (ImageButton) view.findViewById(R.id.map_zoom_out_button); ImageButton myLocButtonView = (ImageButton) view.findViewById(R.id.map_my_location_button); this.myLocButtonView = myLocButtonView; - AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.map_zoom_in, R.drawable.map_zoom_in_night, + AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.ic_zoom_in, R.drawable.ic_zoom_in, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); - AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.map_zoom_out, R.drawable.map_zoom_out_night, + AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.ic_zoom_out, R.drawable.ic_zoom_out, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); zoomInButtonView.setOnClickListener(new OnClickListener() { @Override @@ -402,14 +402,14 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe ImageButton myLocButtonView = this.myLocButtonView; if (myLocButtonView != null) { if (!enabled) { - myLocButtonView.setImageDrawable(getIcon(R.drawable.map_my_location, R.color.icon_color_default_light)); + myLocButtonView.setImageDrawable(getIcon(R.drawable.ic_my_location, R.color.icon_color_default_light)); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle, R.drawable.btn_circle_night); myLocButtonView.setContentDescription(mapActivity.getString(R.string.unknown_location)); } else if (tracked) { - myLocButtonView.setImageDrawable(getIcon(R.drawable.map_my_location, R.color.color_myloc_distance)); + myLocButtonView.setImageDrawable(getIcon(R.drawable.ic_my_location, R.color.color_myloc_distance)); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle, R.drawable.btn_circle_night); } else { - myLocButtonView.setImageResource(R.drawable.map_my_location); + myLocButtonView.setImageResource(R.drawable.ic_my_location); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle_blue, R.drawable.btn_circle_blue); myLocButtonView.setContentDescription(mapActivity.getString(R.string.map_widget_back_to_loc)); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 12c3a5b5d2..73d1573858 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -2299,7 +2299,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener case ROUTE_INFO: return 0; case ROUTE_DETAILS: - return app != null ? app.getRoutingHelper().getAppMode().getIconRes() : R.drawable.map_directions; + return app != null ? app.getRoutingHelper().getAppMode().getIconRes() : R.drawable.ic_action_gdirections_dark; default: return 0; } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 0ba3112d26..80359f7dca 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -237,7 +237,7 @@ public class RoutingOptionsHelper { if (gpxParam.id == R.string.gpx_option_reverse_route) { rp.setReverse(selected); TargetPointsHelper tg = app.getTargetPointsHelper(); - List ps = rp.getPoints(); + List ps = rp.getPoints(app); if (ps.size() > 0) { Location first = ps.get(0); Location end = ps.get(ps.size() - 1); diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 2605e8a6c9..febfa7aa0b 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -19,15 +19,15 @@ import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; import net.osmand.data.WptLocationPoint; import net.osmand.osm.io.NetworkUtils; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.Version; import net.osmand.plus.render.NativeOsmandLibrary; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.router.GeneralRouter; import net.osmand.router.GeneralRouter.RoutingParameter; import net.osmand.router.GeneralRouter.RoutingParameterType; @@ -173,12 +173,14 @@ public class RouteProvider { return passWholeRoute; } - public GPXRouteParams build(Location start, OsmandSettings settings) { + public GPXRouteParams build(OsmandApplication app) { GPXRouteParams res = new GPXRouteParams(); - res.prepareGPXFile(this); -// if (passWholeRoute && start != null) { -// res.points.add(0, start); -// } + try { + res.prepareGPXFile(this); + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + app.showShortToastMessage(app.getString(R.string.gpx_parse_error) + " " + e.getMessage()); + } return res; } @@ -190,9 +192,8 @@ public class RouteProvider { return file; } - public List getPoints() { - GPXRouteParams copy = new GPXRouteParams(); - copy.prepareGPXFile(this); + public List getPoints(OsmandApplication app) { + GPXRouteParams copy = build(app); return copy.getPoints(); } } diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index f60e4f7ea9..9a4fb32f83 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -1172,7 +1172,7 @@ public class RoutingHelper { params.start = start; params.end = end; params.intermediates = intermediates; - params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(start, settings); + params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(app); params.onlyStartPointChanged = onlyStartPointChanged; if (recalculateCountInInterval < RECALCULATE_THRESHOLD_COUNT_CAUSING_FULL_RECALCULATE || (gpxRoute != null && gpxRoute.isPassWholeRoute() && isDeviatedFromRoute)) { diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java index 996716c4af..270391c619 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java @@ -83,7 +83,7 @@ public class ImportedSettingsItemsAdapter extends holder.title.setText(R.string.shared_string_settings); break; case QUICK_ACTIONS: - holder.icon.setImageDrawable(uiUtils.getIcon(R.drawable.map_quick_action, activeColorRes)); + holder.icon.setImageDrawable(uiUtils.getIcon(R.drawable.ic_quick_action, activeColorRes)); holder.title.setText(R.string.configure_screen_quick_action); break; case POI_TYPES: diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java index 590be355fa..14ff53106b 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java @@ -7,13 +7,13 @@ import android.widget.ImageView; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.SettingsBaseActivity; import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.preferences.ListPreferenceEx; import net.osmand.router.GeneralRouter; @@ -123,7 +123,8 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O public boolean onPreferenceClick(Preference preference) { if (preference.getKey().equals(GeneralRouter.DEFAULT_SPEED)) { RouteService routeService = getSelectedAppMode().getRouteService(); - showSeekbarSettingsDialog(getActivity(), routeService == RouteService.STRAIGHT, getSelectedAppMode()); + boolean defaultSpeedOnly = routeService == RouteService.STRAIGHT || routeService == RouteService.DIRECT_TO; + showSeekbarSettingsDialog(getActivity(), defaultSpeedOnly, getSelectedAppMode()); return true; } return super.onPreferenceClick(preference); diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainAction.java b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainAction.java index 43f94c2401..2202a1f174 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainAction.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainAction.java @@ -16,7 +16,7 @@ import net.osmand.plus.quickaction.QuickActionType; public class TerrainAction extends QuickAction { public static final QuickActionType TYPE = new QuickActionType(30, - "contourlines.showhide", TerrainAction.class). + "terrain.showhide", TerrainAction.class). nameRes(R.string.quick_action_show_hide_hillshade).iconRes(R.drawable.ic_action_hillshade_dark).nonEditable(). category(QuickActionType.CONFIGURE_MAP); diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java index bdd4b1a8b1..75bd4ed3db 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java @@ -35,8 +35,6 @@ import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.TerrainMode; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -46,6 +44,8 @@ import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.DownloadValidationManager; import net.osmand.plus.download.IndexItem; import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.TerrainMode; import net.osmand.plus.widgets.style.CustomTypefaceSpan; import org.apache.commons.logging.Log; @@ -53,10 +53,10 @@ import org.apache.commons.logging.Log; import java.io.IOException; import java.util.List; -import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.HILLSHADE; -import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.SLOPE; import static net.osmand.plus.download.DownloadActivityType.HILLSHADE_FILE; import static net.osmand.plus.download.DownloadActivityType.SLOPE_FILE; +import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.HILLSHADE; +import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.SLOPE; import static net.osmand.plus.srtmplugin.SRTMPlugin.TERRAIN_MAX_ZOOM; import static net.osmand.plus.srtmplugin.SRTMPlugin.TERRAIN_MIN_ZOOM; @@ -527,18 +527,18 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL @Override public void downloadInProgress() { DownloadIndexesThread downloadThread = app.getDownloadThread(); - IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem(); - if (downloadIndexItem != null) { - int downloadProgress = downloadThread.getCurrentDownloadingItemProgress(); - ArrayAdapter adapter = (ArrayAdapter) listAdapter; - for (int i = 0; i < adapter.getCount(); i++) { - ContextMenuItem item = adapter.getItem(i); - if (item != null && item.getProgressListener() != null) { - item.getProgressListener().onProgressChanged( - downloadIndexItem, downloadProgress, adapter, (int) adapter.getItemId(i), i); - } + IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem(); + if (downloadIndexItem != null && listAdapter != null) { + int downloadProgress = downloadThread.getCurrentDownloadingItemProgress(); + ArrayAdapter adapter = (ArrayAdapter) listAdapter; + for (int i = 0; i < adapter.getCount(); i++) { + ContextMenuItem item = adapter.getItem(i); + if (item != null && item.getProgressListener() != null) { + item.getProgressListener().onProgressChanged( + downloadIndexItem, downloadProgress, adapter, (int) adapter.getItemId(i), i); } } + } } @Override diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 153159c44a..c308dce187 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -273,7 +273,7 @@ public class MapControlsLayer extends OsmandMapLayer { }); View compass = mapActivity.findViewById(R.id.map_compass_button); - compassHud = createHudButton(compass, R.drawable.map_compass, COMPASS_HUD_ID).setIconColorId(0). + compassHud = createHudButton(compass, R.drawable.ic_compass, COMPASS_HUD_ID).setIconColorId(0). setBg(R.drawable.btn_inset_circle_trans, R.drawable.btn_inset_circle_night); compassHud.compass = true; controls.add(compassHud); @@ -298,9 +298,8 @@ public class MapControlsLayer extends OsmandMapLayer { }); View search = mapActivity.findViewById(R.id.map_search_button); - quickSearchHud = createHudButton(search, R.drawable.map_search_dark, QUICK_SEARCH_HUD_ID) - .setIconsId(R.drawable.map_search_dark, R.drawable.map_search_night) - .setIconColorId(0) + quickSearchHud = createHudButton(search, R.drawable.ic_action_search_dark, QUICK_SEARCH_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) .setBg(R.drawable.btn_inset_circle_trans, R.drawable.btn_inset_circle_night); controls.add(quickSearchHud); search.setOnClickListener(new View.OnClickListener() { @@ -355,7 +354,8 @@ public class MapControlsLayer extends OsmandMapLayer { private void initControls() { View backToLocation = mapActivity.findViewById(R.id.map_my_location_button); - backToLocationControl = createHudButton(backToLocation, R.drawable.map_my_location, BACK_TO_LOC_HUD_ID) + backToLocationControl = createHudButton(backToLocation, R.drawable.ic_my_location, BACK_TO_LOC_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) .setBg(R.drawable.btn_circle_blue); controls.add(backToLocationControl); @@ -375,8 +375,9 @@ public class MapControlsLayer extends OsmandMapLayer { final boolean dash = settings.SHOW_DASHBOARD_ON_MAP_SCREEN.get(); menuControl = createHudButton(backToMenuButton, - !dash ? R.drawable.map_drawer : R.drawable.map_dashboard, MENU_HUD_ID).setBg( - R.drawable.btn_round, R.drawable.btn_round_night); + !dash ? R.drawable.ic_navigation_drawer : R.drawable.ic_dashboard, MENU_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) + .setBg(R.drawable.btn_round, R.drawable.btn_round_night); controls.add(menuControl); backToMenuButton.setOnClickListener(new View.OnClickListener() { @Override @@ -392,8 +393,9 @@ public class MapControlsLayer extends OsmandMapLayer { zoomText = (TextView) mapActivity.findViewById(R.id.map_app_mode_text); View routePlanButton = mapActivity.findViewById(R.id.map_route_info_button); - routePlanningBtn = createHudButton(routePlanButton, R.drawable.map_directions, ROUTE_PLANNING_HUD_ID).setBg( - R.drawable.btn_round, R.drawable.btn_round_night); + routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) + .setBg(R.drawable.btn_round, R.drawable.btn_round_night); controls.add(routePlanningBtn); routePlanButton.setOnClickListener(new View.OnClickListener() { @Override @@ -586,8 +588,7 @@ public class MapControlsLayer extends OsmandMapLayer { private void initZooms() { final OsmandMapTileView view = mapActivity.getMapView(); View zoomInButton = mapActivity.findViewById(R.id.map_zoom_in_button); - mapZoomIn = createHudButton(zoomInButton, R.drawable.map_zoom_in, ZOOM_IN_HUD_ID). - setIconsId(R.drawable.map_zoom_in, R.drawable.map_zoom_in_night).setRoundTransparent(); + mapZoomIn = createHudButton(zoomInButton, R.drawable.ic_zoom_in, ZOOM_IN_HUD_ID).setRoundTransparent(); controls.add(mapZoomIn); zoomInButton.setOnClickListener(new View.OnClickListener() { @Override @@ -606,8 +607,7 @@ public class MapControlsLayer extends OsmandMapLayer { final View.OnLongClickListener listener = MapControlsLayer.getOnClickMagnifierListener(view); zoomInButton.setOnLongClickListener(listener); View zoomOutButton = mapActivity.findViewById(R.id.map_zoom_out_button); - mapZoomOut = createHudButton(zoomOutButton, R.drawable.map_zoom_out, ZOOM_OUT_HUD_ID). - setIconsId(R.drawable.map_zoom_out, R.drawable.map_zoom_out_night).setRoundTransparent(); + mapZoomOut = createHudButton(zoomOutButton, R.drawable.ic_zoom_out, ZOOM_OUT_HUD_ID).setRoundTransparent(); controls.add(mapZoomOut); zoomOutButton.setOnClickListener(new View.OnClickListener() { @Override @@ -791,19 +791,19 @@ public class MapControlsLayer extends OsmandMapLayer { updateMyLocation(rh, routeDialogOpened || trackDialogOpened || contextMenuOpened); boolean showButtons = (showRouteCalculationControls || !routeFollowingMode) && !isInMovingMarkerMode() && !isInGpxDetailsMode() && !isInMeasurementToolMode() && !isInPlanRouteMode() && !contextMenuOpened && !isInChoosingRoutesMode() && !isInWaypointsChoosingMode(); - //routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.map_directions); + //routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.ic_action_gdirections_dark); int routePlanningBtnImage = mapRouteInfoMenu.getRoutePlanningBtnImage(); if (routePlanningBtnImage != 0) { routePlanningBtn.setIconResId(routePlanningBtnImage); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else if (rh.isFollowingMode()) { - routePlanningBtn.setIconResId(R.drawable.map_start_navigation); + routePlanningBtn.setIconResId(R.drawable.ic_action_start_navigation); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else if (routePlanningMode) { - routePlanningBtn.setIconResId(R.drawable.map_directions); + routePlanningBtn.setIconResId(R.drawable.ic_action_gdirections_dark); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else { - routePlanningBtn.setIconResId(R.drawable.map_directions); + routePlanningBtn.setIconResId(R.drawable.ic_action_gdirections_dark); routePlanningBtn.resetIconColors(); } routePlanningBtn.updateVisibility(showButtons); @@ -858,15 +858,15 @@ public class MapControlsLayer extends OsmandMapLayer { compassHud.updateVisibility(showCompass); } if (settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_NONE) { - compassHud.setIconResId(isNight ? R.drawable.map_compass_niu_white : R.drawable.map_compass_niu); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_niu_white : R.drawable.ic_compass_niu); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_none_opt)); compassHud.updateVisibility(showCompass); } else if (settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_BEARING) { - compassHud.setIconResId(isNight ? R.drawable.map_compass_bearing_white : R.drawable.map_compass_bearing); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_bearing_white : R.drawable.ic_compass_bearing); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_bearing_opt)); compassHud.updateVisibility(true); } else { - compassHud.setIconResId(isNight ? R.drawable.map_compass_white : R.drawable.map_compass); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_white : R.drawable.ic_compass); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_compass_opt)); compassHud.updateVisibility(true); } @@ -891,7 +891,7 @@ public class MapControlsLayer extends OsmandMapLayer { if (!enabled) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); - backToLocationControl.setIconColorId(R.color.icon_color_default_light, 0); + backToLocationControl.setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark); backToLocationControl.iv.setContentDescription(mapActivity.getString(R.string.unknown_location)); } else if (tracked) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); @@ -987,8 +987,8 @@ public class MapControlsLayer extends OsmandMapLayer { int resId; int resLightId; int resDarkId; - int resClrLight = R.color.icon_color_default_light; - int resClrDark = 0; + int resClrLight = R.color.map_button_icon_color_light; + int resClrDark = R.color.map_button_icon_color_dark; String id; boolean nightMode = false; @@ -1097,11 +1097,11 @@ public class MapControlsLayer extends OsmandMapLayer { } public boolean resetIconColors() { - if (resClrLight == R.color.icon_color_default_light && resClrDark == 0) { + if (resClrLight == R.color.map_button_icon_color_light && resClrDark == R.color.map_button_icon_color_dark) { return false; } - resClrLight = R.color.icon_color_default_light; - resClrDark = 0; + resClrLight = R.color.map_button_icon_color_light; + resClrDark = R.color.map_button_icon_color_dark; f = true; return true; } @@ -1161,14 +1161,9 @@ public class MapControlsLayer extends OsmandMapLayer { } if (iv instanceof ImageView) { if (compass) { - ((ImageView) iv).setImageDrawable(new CompassDrawable(d)); + setMapButtonIcon((ImageView) iv, new CompassDrawable(d)); } else { - int btnSizePx = (iv).getLayoutParams().height; - int iconSizePx = (int) ctx.getResources().getDimension(R.dimen.map_widget_icon); - int iconPadding = (btnSizePx - iconSizePx) / 2; - iv.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); - ((ImageView) iv).setScaleType(ImageView.ScaleType.FIT_CENTER); - ((ImageView) iv).setImageDrawable(d); + setMapButtonIcon((ImageView) iv, d); } } else if (iv instanceof TextView) { ((TextView) iv).setCompoundDrawablesWithIntrinsicBounds( diff --git a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java index aa1c4506af..f77a57e550 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java @@ -2,6 +2,7 @@ package net.osmand.plus.views; import android.graphics.Canvas; +import android.graphics.drawable.Drawable; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; @@ -237,8 +238,9 @@ public class MapInfoLayer extends OsmandMapLayer { expand.setVisibility(mapInfoControls.hasCollapsibles(settings.getApplicationMode())? View.VISIBLE : View.GONE); - this.expand.setImageResource(expanded ? R.drawable.map_up : - R.drawable.map_down); + Drawable expandIcon = map.getMyApplication().getUIUtilities().getMapIcon(expanded ? R.drawable.ic_action_arrow_up : + R.drawable.ic_action_arrow_down, true); + setMapButtonIcon(expand, expandIcon); expand.setContentDescription(map.getString(expanded ? R.string.shared_string_collapse : R.string.access_widget_expand)); expand.setOnClickListener(new OnClickListener() { @@ -289,7 +291,9 @@ public class MapInfoLayer extends OsmandMapLayer { updateTopToolbar(nightMode); lanesControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, ts.textBold, ts.textShadowRadius / 2); rulerControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, (int) (2 * view.getDensity())); - this.expand.setBackgroundResource(ts.expand); + int padding = expand.getPaddingLeft(); + expand.setBackgroundResource(ts.expand); + expand.setPadding(padding, padding, padding, padding); rightStack.invalidate(); leftStack.invalidate(); } diff --git a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java index 55adfc9eaf..5f7b3d94d0 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java @@ -283,15 +283,9 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe } private void updateQuickActionButton(boolean widgetVisible) { - quickActionButton.setBackgroundResource( - nightMode ? R.drawable.btn_circle_night : R.drawable.btn_circle_trans); - int btnSizePx = quickActionButton.getLayoutParams().height; - int iconSizePx = (int) quickActionButton.getContext().getResources().getDimension(R.dimen.map_widget_icon); - int iconPadding = (btnSizePx - iconSizePx) / 2; - quickActionButton.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); - quickActionButton.setScaleType(ImageView.ScaleType.FIT_CENTER); - quickActionButton.setImageDrawable(app.getUIUtilities().getMapIcon( - !widgetVisible ? R.drawable.map_quick_action : R.drawable.ic_action_close, !nightMode)); + quickActionButton.setBackgroundResource(nightMode ? R.drawable.btn_circle_night : R.drawable.btn_circle_trans); + setMapButtonIcon(quickActionButton, app.getUIUtilities().getMapIcon( + !widgetVisible ? R.drawable.ic_quick_action : R.drawable.ic_action_close, !nightMode)); quickActionButton.setContentDescription(mapActivity.getString(!widgetVisible ? R.string.configure_screen_quick_action : R.string.shared_string_cancel)); } @@ -394,9 +388,13 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe contextMarker.draw(canvas); } if (this.nightMode != nightMode) { - this.nightMode = nightMode; - updateQuickActionButton(currentWidgetState); - } + this.nightMode = nightMode; + boolean widgetVisible = false; + if (currentWidgetState != null) { + widgetVisible = currentWidgetState; + } + updateQuickActionButton(widgetVisible); + } setupQuickActionBtnVisibility(); } diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java index 0e154d098f..45f5541d29 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java @@ -20,6 +20,7 @@ import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.util.Pair; import android.view.MotionEvent; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.core.graphics.ColorUtils; @@ -645,6 +646,15 @@ public abstract class OsmandMapLayer { return (int) textScale * radiusPoi; } + public void setMapButtonIcon(ImageView imageView, Drawable icon) { + int btnSizePx = imageView.getLayoutParams().height; + int iconSizePx = imageView.getContext().getResources().getDimensionPixelSize(R.dimen.map_widget_icon); + int iconPadding = (btnSizePx - iconSizePx) / 2; + imageView.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); + imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); + imageView.setImageDrawable(icon); + } + public abstract class MapLayerData { public int ZOOM_THRESHOLD = 1; public RotatedTileBox queriedBox; diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java index 2124c17b75..b1b18862d4 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java @@ -455,7 +455,7 @@ public class MapWidgetRegistry { boolean selected = app.getQuickActionRegistry().isQuickActionOn(); contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder() .setTitleId(R.string.configure_screen_quick_action, mapActivity) - .setIcon(R.drawable.map_quick_action) + .setIcon(R.drawable.ic_quick_action) .setSelected(selected) .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setSecondaryIcon( R.drawable.ic_action_additional_option) diff --git a/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java index ccc40c5ad4..d2830e4b62 100644 --- a/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java @@ -8,6 +8,7 @@ import android.webkit.WebViewClient; import androidx.fragment.app.FragmentActivity; +import net.osmand.AndroidUtils; import net.osmand.data.Amenity; import static net.osmand.plus.wikipedia.WikiArticleHelper.WIKI_DOMAIN; @@ -41,7 +42,9 @@ public class WikipediaWebViewClient extends WebViewClient { WikiArticleHelper.warnAboutExternalLoad(url, context, nightMode); } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - context.startActivity(i); + if (AndroidUtils.isIntentSafe(context, i)) { + context.startActivity(i); + } } return true; } diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java index b9fb48a1c3..fe47a8f370 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java @@ -12,12 +12,13 @@ import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.wikipedia.WikiArticleHelper; import net.osmand.plus.wikivoyage.article.WikivoyageArticleDialogFragment; import net.osmand.plus.wikivoyage.data.TravelArticle; @@ -124,7 +125,9 @@ public class WikivoyageWebViewClient extends WebViewClient { } } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - activity.startActivity(i); + if (AndroidUtils.isIntentSafe(activity, i)) { + activity.startActivity(i); + } } return true; }