diff --git a/OsmAnd-java/build.gradle b/OsmAnd-java/build.gradle index 093c9747e9..827b63393b 100644 --- a/OsmAnd-java/build.gradle +++ b/OsmAnd-java/build.gradle @@ -40,9 +40,15 @@ task collectRegionsInfoResources(type: Copy) { } task collectTestResources(type: Copy) { - from "../../resources/test-resources" into "src/test/resources/" - include "*" + from("../../resources/test-resources") { + include "*" + } + from("../../resources/poi") { + include "poi_types.xml" + include "/phrases/en/*" + //include "/phrases/ru/*" + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java index 964f714865..47c1ed5bd7 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java @@ -1,37 +1,9 @@ package net.osmand.binary; -import gnu.trove.list.array.TIntArrayList; -import gnu.trove.map.TIntObjectMap; -import gnu.trove.map.hash.TIntObjectHashMap; -import gnu.trove.map.hash.TLongObjectHashMap; -import gnu.trove.set.hash.TIntHashSet; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.RandomAccessFile; -import java.io.Reader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; +import com.google.protobuf.CodedInputStream; +import com.google.protobuf.CodedOutputStream; +import com.google.protobuf.WireFormat; import net.osmand.Collator; import net.osmand.CollatorStringMatcher; @@ -72,9 +44,37 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import com.google.protobuf.CodedInputStream; -import com.google.protobuf.CodedOutputStream; -import com.google.protobuf.WireFormat; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.RandomAccessFile; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import gnu.trove.list.array.TIntArrayList; +import gnu.trove.map.TIntObjectMap; +import gnu.trove.map.hash.TIntObjectHashMap; +import gnu.trove.map.hash.TLongObjectHashMap; +import gnu.trove.set.hash.TIntHashSet; public class BinaryMapIndexReader { @@ -130,7 +130,7 @@ public class BinaryMapIndexReader { init(); } - /*private */BinaryMapIndexReader(final RandomAccessFile raf, File file, boolean init) throws IOException { + public BinaryMapIndexReader(final RandomAccessFile raf, File file, boolean init) throws IOException { this.raf = raf; this.file = file; codedIS = CodedInputStream.newInstance(raf); diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index c0b20007f6..bd284ba474 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -1,16 +1,19 @@ package net.osmand.data; import net.osmand.Location; +import net.osmand.osm.MapPoiTypes; import net.osmand.osm.PoiCategory; -import net.osmand.osm.edit.Node; import net.osmand.util.Algorithms; +import org.json.JSONObject; + import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; @@ -317,4 +320,49 @@ public class Amenity extends MapObject { public boolean isClosed() { return OSM_DELETE_VALUE.equals(getAdditionalInfo(OSM_DELETE_TAG)); } + + public JSONObject toJSON() { + JSONObject json = super.toJSON(); + json.put("subType", subType); + json.put("type", type.getKeyName()); + json.put("openingHours", openingHours); + if (additionalInfo != null && additionalInfo.size() > 0) { + JSONObject additionalInfoObj = new JSONObject(); + for (Entry e : additionalInfo.entrySet()) { + additionalInfoObj.put(e.getKey(), e.getValue()); + } + json.put("additionalInfo", additionalInfoObj); + } + + return json; + } + + public static Amenity parseJSON(JSONObject json) { + Amenity a = new Amenity(); + MapObject.parseJSON(json, a); + + if (json.has("subType")) { + a.subType = json.getString("subType"); + } + if (json.has("type")) { + String categoryName = json.getString("type"); + a.setType(MapPoiTypes.getDefault().getPoiCategoryByName(categoryName)); + } else { + a.setType(MapPoiTypes.getDefault().getOtherPoiCategory()); + } + if (json.has("openingHours")) { + a.openingHours = json.getString("openingHours"); + } + if (json.has("additionalInfo")) { + JSONObject namesObj = json.getJSONObject("additionalInfo"); + a.additionalInfo = new HashMap<>(); + Iterator iterator = namesObj.keys(); + while (iterator.hasNext()) { + String key = iterator.next(); + String value = namesObj.getString(key); + a.additionalInfo.put(key, value); + } + } + return a; + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Building.java b/OsmAnd-java/src/main/java/net/osmand/data/Building.java index a025e755ff..7668d16a30 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Building.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Building.java @@ -1,12 +1,15 @@ package net.osmand.data; +import net.osmand.util.Algorithms; + +import org.json.JSONObject; + import java.util.Collections; import java.util.LinkedHashMap; +import java.util.Locale; import java.util.Map; -import net.osmand.util.Algorithms; - public class Building extends MapObject { private String postcode; @@ -216,4 +219,43 @@ public class Building extends MapObject { return ""; } + public JSONObject toJSON() { + JSONObject json = super.toJSON(); + json.put("postcode", postcode); + if (latLon2 != null) { + json.put("lat2", String.format(Locale.US, "%.5f", latLon2.getLatitude())); + json.put("lon2", String.format(Locale.US, "%.5f", latLon2.getLongitude())); + } + if (interpolationType != null) { + json.put("interpolationType", interpolationType.name()); + } + if (interpolationInterval != 0) { + json.put("interpolationInterval", interpolationInterval); + } + json.put("name2", name2); + + return json; + } + + public static Building parseJSON(JSONObject json) throws IllegalArgumentException { + Building b = new Building(); + MapObject.parseJSON(json, b); + + if (json.has("postcode")) { + b.postcode = json.getString("postcode"); + } + if (json.has("lat2") && json.has("lon2")) { + b.latLon2 = new LatLon(json.getDouble("lat2"), json.getDouble("lon2")); + } + if (json.has("interpolationType")) { + b.interpolationType = BuildingInterpolation.valueOf(json.getString("interpolationType")); + } + if (json.has("interpolationInterval")) { + b.interpolationInterval = json.getInt("interpolationInterval"); + } + if (json.has("name2")) { + b.name2 = json.getString("name2"); + } + return b; + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/City.java b/OsmAnd-java/src/main/java/net/osmand/data/City.java index 264fc455b6..76d8d61a93 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/City.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/City.java @@ -1,5 +1,8 @@ package net.osmand.data; +import org.json.JSONArray; +import org.json.JSONObject; + import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -55,7 +58,6 @@ public class City extends MapObject { return new City(postcode, POSTCODE_INTERNAL_ID--); } - public City(CityType type) { if (type == null) { throw new NullPointerException(); @@ -156,4 +158,43 @@ public class City extends MapObject { return m; } + public JSONObject toJSON() { + JSONObject json = super.toJSON(); + json.put("type", type.name()); + json.put("postcode", postcode); + JSONArray listOfStreetsArr = new JSONArray(); + for (Street s : listOfStreets) { + listOfStreetsArr.put(s.toJSON()); + } + json.put("listOfStreets", listOfStreetsArr); + + return json; + } + + public static City parseJSON(JSONObject json) throws IllegalArgumentException { + CityType type; + if (json.has("type")) { + type = CityType.valueOf(json.getString("type")); + } else { + throw new IllegalArgumentException(); + } + City c = new City(type); + MapObject.parseJSON(json, c); + + if (json.has("postcode")) { + c.postcode = json.getString("postcode"); + } + if (json.has("listOfStreets")) { + JSONArray streetsArr = json.getJSONArray("listOfStreets"); + c.listOfStreets = new ArrayList<>(); + for (int i = 0; i < streetsArr.length(); i++) { + JSONObject streetObj = streetsArr.getJSONObject(i); + Street street = Street.parseJSON(c, streetObj); + if (street != null) { + c.listOfStreets.add(street); + } + } + } + return c; + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java index 8c345239d6..6df662561e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java @@ -1,19 +1,23 @@ package net.osmand.data; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import net.osmand.Collator; import net.osmand.OsmAndCollator; import net.osmand.util.Algorithms; import net.sf.junidecode.Junidecode; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; + public abstract class MapObject implements Comparable { @@ -289,4 +293,48 @@ public abstract class MapObject implements Comparable { return referenceFile; } + public JSONObject toJSON() { + JSONObject json = new JSONObject(); + json.put("name", name); + json.put("enName", enName); + if (names != null && names.size() > 0) { + JSONObject namesObj = new JSONObject(); + for (Entry e : names.entrySet()) { + namesObj.put(e.getKey(), e.getValue()); + } + json.put("names", namesObj); + } + if (location != null) { + json.put("lat", String.format(Locale.US, "%.5f", location.getLatitude())); + json.put("lon", String.format(Locale.US, "%.5f", location.getLongitude())); + } + json.put("id", id); + + return json; + } + + protected static void parseJSON(JSONObject json, MapObject o) { + if (json.has("name")) { + o.name = json.getString("name"); + } + if (json.has("enName")) { + o.enName = json.getString("enName"); + } + if (json.has("names")) { + JSONObject namesObj = json.getJSONObject("names"); + o.names = new HashMap<>(); + Iterator iterator = namesObj.keys(); + while (iterator.hasNext()) { + String key = iterator.next(); + String value = namesObj.getString(key); + o.names.put(key, value); + } + } + if (json.has("lat") && json.has("lon")) { + o.location = new LatLon(json.getDouble("lat"), json.getDouble("lon")); + } + if (json.has("id")) { + o.id = json.getLong("id"); + } + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Street.java b/OsmAnd-java/src/main/java/net/osmand/data/Street.java index 7e45370578..befff7eead 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Street.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Street.java @@ -1,12 +1,15 @@ package net.osmand.data; +import net.osmand.util.Algorithms; + +import org.json.JSONArray; +import org.json.JSONObject; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; -import net.osmand.util.Algorithms; - public class Street extends MapObject { @@ -86,4 +89,53 @@ public class Street extends MapObject { } return nm; } + + public JSONObject toJSON() { + JSONObject json = super.toJSON(); + if (buildings.size() > 0) { + JSONArray buildingsArr = new JSONArray(); + for (Building b : buildings) { + buildingsArr.put(b.toJSON()); + } + json.put("buildings", buildingsArr); + } + if (intersectedStreets != null) { + JSONArray intersectedStreetsArr = new JSONArray(); + for (Street s : intersectedStreets) { + intersectedStreetsArr.put(s.toJSON()); + } + json.put("intersectedStreets", intersectedStreetsArr); + } + + return json; + } + + public static Street parseJSON(City city, JSONObject json) throws IllegalArgumentException { + Street s = new Street(city); + MapObject.parseJSON(json, s); + + if (json.has("buildings")) { + JSONArray buildingsArr = json.getJSONArray("buildings"); + s.buildings = new ArrayList<>(); + for (int i = 0; i < buildingsArr.length(); i++) { + JSONObject buildingObj = buildingsArr.getJSONObject(i); + Building building = Building.parseJSON(buildingObj); + if (building != null) { + s.buildings.add(building); + } + } + } + if (json.has("intersectedStreets")) { + JSONArray streetsArr = json.getJSONArray("intersectedStreets"); + s.intersectedStreets = new ArrayList<>(); + for (int i = 0; i < streetsArr.length(); i++) { + JSONObject streetObj = streetsArr.getJSONObject(i); + Street street = parseJSON(city, streetObj); + if (street != null) { + s.intersectedStreets.add(street); + } + } + } + return s; + } } 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 e690af01fe..98fdf930bb 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -6,7 +6,9 @@ import net.osmand.PlatformUtil; import net.osmand.ResultMatcher; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.data.Amenity; +import net.osmand.data.City; import net.osmand.data.LatLon; +import net.osmand.data.MapObject; import net.osmand.data.Street; import net.osmand.osm.MapPoiTypes; import net.osmand.search.core.CustomSearchPoiFilter; @@ -25,14 +27,18 @@ import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; +import org.json.JSONArray; +import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.Set; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -480,7 +486,7 @@ public class SearchUICore { } return; } - searchInBackground(phrase, rm); + searchInternal(phrase, rm); if (!rm.isCancelled()) { SearchResultCollection collection = new SearchResultCollection( phrase); @@ -492,6 +498,9 @@ public class SearchUICore { LOG.info("Finishing search <" + phrase + "> Results=" + rm.getRequestResults().size()); } currentSearchResult = collection; + if (phrase.getSettings().isExportObjects()) { + rm.createTestJSON(collection); + } rm.searchFinished(phrase); if (onResultsComplete != null) { onResultsComplete.run(); @@ -548,7 +557,7 @@ public class SearchUICore { return radius; } - private void searchInBackground(final SearchPhrase phrase, SearchResultMatcher matcher) { + void searchInternal(final SearchPhrase phrase, SearchResultMatcher matcher) { preparePhrase(phrase); ArrayList lst = new ArrayList<>(apis); Collections.sort(lst, new Comparator() { @@ -600,10 +609,7 @@ public class SearchUICore { } } - - - - public static class SearchResultMatcher implements ResultMatcher{ + public static class SearchResultMatcher implements ResultMatcher{ private final List requestResults = new ArrayList<>(); private final ResultMatcher matcher; private final int request; @@ -612,7 +618,8 @@ public class SearchUICore { private final AtomicInteger requestNumber; int count = 0; private SearchPhrase phrase; - + private List exportedObjects; + private List exportedCities; public SearchResultMatcher(ResultMatcher matcher, SearchPhrase phrase, int request, AtomicInteger requestNumber, int totalLimit) { @@ -714,6 +721,111 @@ public class SearchUICore { boolean cancelled = request != requestNumber.get(); return cancelled || (matcher != null && matcher.isCancelled()); } + + public List getExportedObjects() { + return exportedObjects; + } + + public List getExportedCities() { + return exportedCities; + } + + public void exportObject(MapObject object) { + if (exportedObjects == null) { + exportedObjects = new ArrayList<>(); + } + exportedObjects.add(object); + } + + public void exportCity(City city) { + if (exportedCities == null) { + exportedCities = new ArrayList<>(); + } + exportedCities.add(city); + } + + public JSONObject createTestJSON(SearchResultCollection searchResult) { + JSONObject json = new JSONObject(); + + Set amenities = new HashSet<>(); + Set cities; + Set matchedCities = new HashSet<>(); + Set streetCities = new HashSet<>(); + if (exportedCities != null) { + cities = new HashSet<>(exportedCities); + } else { + cities = new HashSet<>(); + } + Set streets = new HashSet<>(); + + for (MapObject obj : exportedObjects) { + if (obj instanceof Amenity) { + amenities.add((Amenity) obj); + } else if (obj instanceof Street) { + Street street = (Street) obj; + streets.add(street); + if (street.getCity() != null) { + final City city = street.getCity(); + cities.add(city); + streetCities.add(city); + } + } else if (obj instanceof City) { + City city = (City) obj; + cities.add(city); + matchedCities.add(city); + } + } + for (City city : cities) { + List cityStreets = city.getStreets(); + for (Street street : streets) { + if (city.equals(street.getCity()) && !cityStreets.contains(street)) { + cityStreets.add(street); + } + } + } + + json.put("settings", phrase.getSettings().toJSON()); + json.put("phrase", phrase.getRawUnknownSearchPhrase()); + if (searchResult.searchResults != null && searchResult.searchResults.size() > 0) { + JSONArray resultsArr = new JSONArray(); + for (SearchResult r : searchResult.searchResults) { + resultsArr.put(r.toString()); + } + json.put("results", resultsArr); + } + if (amenities.size() > 0) { + JSONArray amenitiesArr = new JSONArray(); + for (Amenity amenity : amenities) { + amenitiesArr.put(amenity.toJSON()); + } + json.put("amenities", amenitiesArr); + } + if (exportedCities != null && exportedCities.size() > 0) { + JSONArray citiesArr = new JSONArray(); + for (City city : exportedCities) { + citiesArr.put(city.toJSON()); + } + json.put("cities", citiesArr); + } + if (cities.size() > 0) { + JSONArray citiesArr = new JSONArray(); + for (City city : cities) { + final JSONObject cityObj = city.toJSON(); + if (exportedCities.contains(city)) { + cityObj.put("init", 1); + } + if (matchedCities.contains(city)) { + cityObj.put("matchCity", 1); + } + if (streetCities.contains(city)) { + cityObj.put("matchStreet", 1); + } + citiesArr.put(cityObj); + } + json.put("cities", citiesArr); + } + return json; + } } public static class SearchResultComparator implements Comparator { 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 bbdc5a87e6..d4c0f2d4d1 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 @@ -226,8 +226,6 @@ public class SearchCoreFactory { return retName; } - - public static class SearchAddressByNameAPI extends SearchBaseAPI { private static final int DEFAULT_ADDRESS_BBOX_RADIUS = 100 * 1000; @@ -322,6 +320,9 @@ public class SearchCoreFactory { resArray = townCitiesQR.queryInBox(bbox, resArray); int limit = 0; for (City c : resArray) { + if (phrase.getSettings().isExportObjects()) { + resultMatcher.exportCity(c); + } SearchResult res = new SearchResult(phrase); res.object = c; res.file = (BinaryMapIndexReader) c.getReferenceFile(); @@ -347,7 +348,6 @@ public class SearchCoreFactory { } } - private void searchByName(final SearchPhrase phrase, final SearchResultMatcher resultMatcher) throws IOException { if (phrase.getRadiusLevel() > 1 || phrase.getUnknownSearchWordLength() > 3 || phrase.getUnknownSearchWords().size() > 0) { @@ -361,12 +361,14 @@ public class SearchCoreFactory { final int priority = phrase.isNoSelectedType() ? SEARCH_ADDRESS_BY_NAME_PRIORITY : SEARCH_ADDRESS_BY_NAME_PRIORITY_RADIUS2; final BinaryMapIndexReader[] currentFile = new BinaryMapIndexReader[1]; - - + ResultMatcher rm = new ResultMatcher() { int limit = 0; @Override public boolean publish(MapObject object) { + if (phrase.getSettings().isExportObjects()) { + resultMatcher.exportObject(object); + } if (isCancelled()) { return false; } @@ -408,7 +410,6 @@ public class SearchCoreFactory { || !phrase.isSearchTypeAllowed(ObjectType.CITY)) { return false; } - sr.objectType = ObjectType.CITY; sr.priorityDistance = 0.1; } else if (((City)object).isPostcode()) { @@ -418,7 +419,7 @@ public class SearchCoreFactory { } sr.objectType = ObjectType.POSTCODE; sr.priorityDistance = 0; - } else { + } else { if ((locSpecified && !villagesBbox.contains(x, y, x, y)) || !phrase.isSearchTypeAllowed(ObjectType.VILLAGE)) { return false; @@ -453,8 +454,6 @@ public class SearchCoreFactory { return false; } - - @Override public boolean isCancelled() { return limit > LIMIT * phrase.getRadiusLevel() || @@ -497,8 +496,6 @@ public class SearchCoreFactory { } } - - public static class SearchAmenityByNameAPI extends SearchBaseAPI { private static final int LIMIT = 10000; private static final int BBOX_RADIUS = 500 * 1000; @@ -543,6 +540,9 @@ public class SearchCoreFactory { int limit = 0; @Override public boolean publish(Amenity object) { + if (phrase.getSettings().isExportObjects()) { + resultMatcher.exportObject(object); + } if (limit ++ > LIMIT) { return false; } @@ -630,8 +630,6 @@ public class SearchCoreFactory { } } - - public static class SearchAmenityTypesAPI extends SearchBaseAPI { private Map translatedNames = new LinkedHashMap<>(); @@ -762,8 +760,6 @@ public class SearchCoreFactory { } } - - public static class SearchAmenityByTypeAPI extends SearchBaseAPI { private static final int BBOX_RADIUS = 10000; private SearchAmenityTypesAPI searchAmenityTypesAPI; @@ -884,6 +880,9 @@ public class SearchCoreFactory { @Override public boolean publish(Amenity object) { + if (phrase.getSettings().isExportObjects()) { + resultMatcher.exportObject(object); + } SearchResult res = new SearchResult(phrase); String poiID = object.getType().getKeyName() + "_" + object.getId(); if(!searchedPois.add(poiID)) { @@ -977,8 +976,6 @@ public class SearchCoreFactory { } } - - public static class SearchStreetByCityAPI extends SearchBaseAPI { private static final int DEFAULT_ADDRESS_BBOX_RADIUS = 100 * 1000; @@ -1076,8 +1073,6 @@ public class SearchCoreFactory { p.isLastWord(ObjectType.VILLAGE); } - - public static class SearchBuildingAndIntersectionsByStreetAPI extends SearchBaseAPI { Street cacheBuilding; @@ -1219,8 +1214,6 @@ public class SearchCoreFactory { } } - - public static class SearchLocationAndUrlAPI extends SearchBaseAPI { public SearchLocationAndUrlAPI() { @@ -1345,6 +1338,4 @@ public class SearchCoreFactory { return SEARCH_LOCATION_PRIORITY; } } - - } 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 73da12db7e..7ae713aee7 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 @@ -1,11 +1,19 @@ package net.osmand.search.core; -import java.util.Collection; - import net.osmand.binary.BinaryMapIndexReader; +import net.osmand.data.Amenity; +import net.osmand.data.City; import net.osmand.data.LatLon; +import net.osmand.data.Street; +import net.osmand.osm.AbstractPoiType; +import net.osmand.osm.PoiCategory; +import net.osmand.osm.PoiFilter; +import net.osmand.osm.PoiType; +import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; +import java.util.Collection; + public class SearchResult { // search phrase that makes search result valid public SearchPhrase requiredSearchPhrase; @@ -74,11 +82,64 @@ public class SearchResult { public String localeRelatedObjectName; public Object relatedObject; public double distRelatedObjectName; - - - - - - + @Override + public String toString() { + StringBuilder b = new StringBuilder(); + if (!Algorithms.isEmpty(localeName)) { + b.append(localeName); + } + if (!Algorithms.isEmpty(localeRelatedObjectName)) { + if (b.length() > 0) { + b.append(", "); + } + b.append(localeRelatedObjectName); + if (relatedObject instanceof Street) { + Street street = (Street) relatedObject; + City city = street.getCity(); + if (city != null) { + b.append(", ").append(city.getName(requiredSearchPhrase.getSettings().getLang(), + requiredSearchPhrase.getSettings().isTransliterate())); + } + } + } else if (object instanceof AbstractPoiType) { + if (b.length() > 0) { + b.append(" "); + } + AbstractPoiType poiType = (AbstractPoiType) object; + if (poiType instanceof PoiCategory) { + b.append("(Category)"); + } else if (poiType instanceof PoiFilter) { + b.append("(Filter)"); + } else if (poiType instanceof PoiType) { + PoiType p = (PoiType) poiType; + final AbstractPoiType parentType = p.getParentType(); + if (parentType != null) { + final String translation = parentType.getTranslation(); + b.append("(").append(translation); + if (parentType instanceof PoiCategory) { + b.append(" / Category)"); + } else if (parentType instanceof PoiFilter) { + b.append(" / Filter)"); + } else if (parentType instanceof PoiType) { + PoiType pp = (PoiType) poiType; + PoiFilter filter = pp.getFilter(); + PoiCategory category = pp.getCategory(); + if (filter != null && !filter.getTranslation().equals(translation)) { + b.append(" / ").append(filter.getTranslation()).append(")"); + } else if (category != null && !category.getTranslation().equals(translation)) { + b.append(" / ").append(category.getTranslation()).append(")"); + } else { + b.append(")"); + } + } + } else if (p.getFilter() != null) { + b.append("(").append(p.getFilter().getTranslation()).append(")"); + } else if (p.getCategory() != null) { + b.append("(").append(p.getCategory().getTranslation()).append(")"); + } + } + } + return b.toString(); + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchSettings.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchSettings.java index 186a75ed30..d32c2a90fb 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchSettings.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchSettings.java @@ -2,10 +2,18 @@ package net.osmand.search.core; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.data.LatLon; +import net.osmand.data.MapObject; + +import org.json.JSONArray; +import org.json.JSONObject; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Locale; +import java.util.Map; // immutable object public class SearchSettings { @@ -19,21 +27,24 @@ public class SearchSettings { private ObjectType[] searchTypes; private boolean emptyQueryAllowed; private boolean sortByName; + private boolean exportObjects = true; public SearchSettings(SearchSettings s) { if(s != null) { this.radiusLevel = s.radiusLevel; this.lang = s.lang; + this.transliterateIfMissing = s.transliterateIfMissing; this.totalLimit = s.totalLimit; this.offlineIndexes = s.offlineIndexes; this.originalLocation = s.originalLocation; this.searchTypes = s.searchTypes; this.emptyQueryAllowed = s.emptyQueryAllowed; this.sortByName = s.sortByName; + this.exportObjects = s.exportObjects; } } - public SearchSettings(List offlineIndexes) { + public SearchSettings(List offlineIndexes) { this.offlineIndexes = Collections.unmodifiableList(offlineIndexes); } @@ -42,7 +53,7 @@ public class SearchSettings { return offlineIndexes; } - public void setOfflineIndexes(List offlineIndexes) { + public void setOfflineIndexes(List offlineIndexes) { this.offlineIndexes = Collections.unmodifiableList(offlineIndexes); } @@ -131,6 +142,16 @@ public class SearchSettings { return s; } + public boolean isExportObjects() { + return exportObjects; + } + + public SearchSettings setExportObjects(boolean exportObjects) { + SearchSettings s = new SearchSettings(this); + this.exportObjects = exportObjects; + return s; + } + public boolean hasCustomSearchType(ObjectType type) { if (searchTypes != null) { for (ObjectType t : searchTypes) { @@ -141,4 +162,52 @@ public class SearchSettings { } return false; } + + public JSONObject toJSON() { + JSONObject json = new JSONObject(); + if (originalLocation != null) { + json.put("lat", String.format(Locale.US, "%.5f", originalLocation.getLatitude())); + json.put("lon", String.format(Locale.US, "%.5f", originalLocation.getLongitude())); + } + json.put("radiusLevel", radiusLevel); + json.put("totalLimit", totalLimit); + json.put("lang", lang); + json.put("transliterateIfMissing", transliterateIfMissing); + json.put("emptyQueryAllowed", emptyQueryAllowed); + json.put("sortByName", sortByName); + if (searchTypes != null && searchTypes.length > 0) { + JSONArray searchTypesArr = new JSONArray(); + for (ObjectType type : searchTypes) { + searchTypesArr.put(type.name()); + } + json.put("searchTypes", searchTypes); + } + + return json; + } + + public static SearchSettings parseJSON(JSONObject json) { + SearchSettings s = new SearchSettings(new ArrayList()); + if (json.has("lat") && json.has("lon")) { + s.originalLocation = new LatLon(json.getDouble("lat"), json.getDouble("lon")); + } + s.radiusLevel = json.optInt("radiusLevel", 1); + s.totalLimit = json.optInt("totalLimit", -1); + s.transliterateIfMissing = json.optBoolean("transliterateIfMissing", false); + s.emptyQueryAllowed = json.optBoolean("emptyQueryAllowed", false); + s.sortByName = json.optBoolean("sortByName", false); + if (json.has("lang")) { + s.lang = json.getString("lang"); + } + if (json.has("searchTypes")) { + JSONArray searchTypesArr = json.getJSONArray("searchTypes"); + ObjectType[] searchTypes = new ObjectType[searchTypesArr.length()]; + for (int i = 0; i < searchTypesArr.length(); i++) { + String name = searchTypesArr.getString(i); + searchTypes[i] = ObjectType.valueOf(name); + } + s.searchTypes = searchTypes; + } + return s; + } } diff --git a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java index b3bba64e41..dcf6082a7f 100644 --- a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java +++ b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java @@ -2,8 +2,12 @@ package net.osmand.util; import net.osmand.IProgress; import net.osmand.PlatformUtil; +import net.osmand.router.GeneralRouter; +import net.osmand.router.RoutingConfiguration; import org.apache.commons.logging.Log; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; import java.io.BufferedReader; import java.io.ByteArrayInputStream; @@ -27,6 +31,7 @@ import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.Stack; import java.util.zip.GZIPInputStream; @@ -691,4 +696,54 @@ public class Algorithms { return str1.compareTo(str2); } + public static String getFileAsString(File file) { + try { + FileInputStream fin = new FileInputStream(file); + BufferedReader reader = new BufferedReader(new InputStreamReader(fin, "UTF-8")); + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + if (sb.length() > 0) { + sb.append("\n"); + } + sb.append(line); + } + reader.close(); + fin.close(); + return sb.toString(); + } catch (Exception e) { + return null; + } + } + + public static Map parseStringsXml(File file) throws IOException, XmlPullParserException { + InputStream is = new FileInputStream(file); + XmlPullParser parser = PlatformUtil.newXMLPullParser(); + Map map = new HashMap<>(); + parser.setInput(is, "UTF-8"); + int tok; + String key = null; + StringBuilder text = null; + while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (tok == XmlPullParser.START_TAG) { + text = new StringBuilder(); + String name = parser.getName(); + if ("string".equals(name)) { + key = parser.getAttributeValue("", "name"); + } + } else if (tok == XmlPullParser.TEXT) { + if (text != null) { + text.append(parser.getText()); + } + } else if (tok == XmlPullParser.END_TAG) { + if (key != null) { + map.put(key, text.toString()); + } + key = null; + text = null; + } + } + is.close(); + return map; + } } \ No newline at end of file diff --git a/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java b/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java index f596b44879..80d92b7bf1 100644 --- a/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java +++ b/OsmAnd-java/src/test/java/net/osmand/search/SearchCoreUITest.java @@ -1,22 +1,133 @@ package net.osmand.search; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - 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; +import net.osmand.osm.MapPoiTypes; import net.osmand.search.SearchUICore.SearchResultCollection; +import net.osmand.search.SearchUICore.SearchResultMatcher; 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 { + private static final String SEARCH_RESOURCES_PATH = "src/test/resources/search/"; + private static Map enPhrases = new HashMap<>(); + private static Map phrases = new HashMap<>(); + + static { + MapPoiTypes.setDefault(new MapPoiTypes("src/test/resources/poi_types.xml")); + MapPoiTypes poiTypes = MapPoiTypes.getDefault(); + + 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")); + phrases = enPhrases; + } catch (IOException e) { + e.printStackTrace(); + } catch (XmlPullParserException e) { + 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); @@ -100,4 +211,220 @@ public class SearchCoreUITest { 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); + } + } + } + + private void testSearchImpl(File jsonFile) throws IOException, JSONException { + String sourceJsonText = Algorithms.getFileAsString(jsonFile); + Assert.assertNotNull(sourceJsonText); + Assert.assertTrue(sourceJsonText.length() > 0); + + BinaryMapIndexReaderTest reader = new BinaryMapIndexReaderTest(); + JSONObject sourceJson = new JSONObject(sourceJsonText); + String phraseText = sourceJson.getString("phrase"); + JSONObject settingsJson = sourceJson.getJSONObject("settings"); + if (sourceJson.has("amenities")) { + JSONArray amenitiesArr = sourceJson.getJSONArray("amenities"); + List amenities = new ArrayList<>(); + for (int i = 0; i < amenitiesArr.length(); i++) { + JSONObject amenityObj = amenitiesArr.getJSONObject(i); + amenities.add(Amenity.parseJSON(amenityObj)); + } + reader.amenities = amenities; + } + if (sourceJson.has("cities")) { + JSONArray citiesArr = sourceJson.getJSONArray("cities"); + List cities = new ArrayList<>(); + List initCities = new ArrayList<>(); + List matchedCities = new ArrayList<>(); + List streetCities = new ArrayList<>(); + for (int i = 0; i < citiesArr.length(); i++) { + JSONObject cityObj = citiesArr.getJSONObject(i); + final City city = City.parseJSON(cityObj); + cities.add(city); + if (cityObj.has("init")) { + initCities.add(city); + } + if (cityObj.has("matchCity")) { + matchedCities.add(city); + } + if (cityObj.has("matchStreet")) { + streetCities.add(city); + } + } + reader.cities = cities; + reader.initCities = initCities; + reader.matchedCities = matchedCities; + reader.streetCities = streetCities; + } + List results = new ArrayList<>(); + if (sourceJson.has("results")) { + JSONArray resultsArr = sourceJson.getJSONArray("results"); + for (int i = 0; i < resultsArr.length(); i++) { + results.add(resultsArr.getString(i)); + } + } + + SearchSettings s = SearchSettings.parseJSON(settingsJson); + s.setOfflineIndexes(Collections.singletonList(reader)); + + SearchPhrase phrase = new SearchPhrase(s, OsmAndCollator.primaryCollator()); + phrase = phrase.generateNewPhrase(phraseText, s); + + final SearchUICore core = new SearchUICore(MapPoiTypes.getDefault(), "en", false); + core.init(); + + ResultMatcher rm = new ResultMatcher() { + @Override + public boolean publish(SearchResult object) { + return true; + } + + @Override + public boolean isCancelled() { + return false; + } + }; + SearchResultMatcher matcher = new SearchResultMatcher(rm, phrase, 1, new AtomicInteger(1), -1); + core.searchInternal(phrase, matcher); + + SearchResultCollection collection = new SearchResultCollection(phrase); + collection.addSearchResults(matcher.getRequestResults(), true, true); + List searchResults = collection.getCurrentSearchResults(); + int i = 0; + for (SearchResult result : searchResults) { + String expected = results.get(i++); + String present = result.toString(); + //System.out.println(present); + Assert.assertEquals(expected, present); + if (i >= results.size()) { + break; + } + } + } + + private static class BinaryMapIndexReaderTest extends BinaryMapIndexReader { + + List amenities = Collections.emptyList(); + List cities = Collections.emptyList(); + List initCities = Collections.emptyList(); + List matchedCities = Collections.emptyList(); + List streetCities = Collections.emptyList(); + + BinaryMapIndexReaderTest() throws IOException { + super(null, null, false); + } + + @Override + public List searchPoiByName(SearchRequest req) throws IOException { + for (Amenity amenity : amenities) { + req.publish(amenity); + } + return req.getSearchResults(); + } + + @Override + public List searchPoi(SearchRequest req) throws IOException { + for (Amenity amenity : amenities) { + req.publish(amenity); + } + return req.getSearchResults(); + } + + @Override + public List getCities(SearchRequest resultMatcher, int cityType) throws IOException { + for (City city : initCities) { + if (resultMatcher != null) { + resultMatcher.publish(city); + } + } + return initCities; + } + + @Override + public int preloadStreets(City c, SearchRequest resultMatcher) throws IOException { + return 0; + } + + @Override + public void preloadBuildings(Street s, SearchRequest resultMatcher) throws IOException { + // cities must be filled with streets and buildings + } + + @Override + public List searchAddressDataByName(SearchRequest req) throws IOException { + for (City city : streetCities) { + for (Street street : city.getStreets()) { + req.publish(street); + } + } + for (City city : matchedCities) { + req.publish(city); + } + return req.getSearchResults(); + } + + @Override + public String getRegionName() { + return "Test region"; + } + + @Override + public boolean containsPoiData(int left31x, int top31y, int right31x, int bottom31y) { + return true; + } + + @Override + public boolean containsMapData() { + return true; + } + + @Override + public boolean containsPoiData() { + return true; + } + + @Override + public boolean containsRouteData() { + return true; + } + + @Override + public boolean containsRouteData(int left31x, int top31y, int right31x, int bottom31y, int zoom) { + return true; + } + + @Override + public boolean containsAddressData(int left31x, int top31y, int right31x, int bottom31y) { + return true; + } + + @Override + public boolean containsMapData(int tile31x, int tile31y, int zoom) { + return true; + } + + @Override + public boolean containsMapData(int left31x, int top31y, int right31x, int bottom31y, int zoom) { + return true; + } + + @Override + public boolean containsAddressData() { + return true; + } + } } diff --git a/OsmAnd-java/src/test/resources/.gitignore b/OsmAnd-java/src/test/resources/.gitignore index 30b9836a2b..079e13cfb2 100644 --- a/OsmAnd-java/src/test/resources/.gitignore +++ b/OsmAnd-java/src/test/resources/.gitignore @@ -1,3 +1,5 @@ -*.json +/*.json +/osm_live/*.json *.obf *.osm +phrases.xml \ No newline at end of file diff --git a/OsmAnd-java/src/test/resources/search/double_parking.json b/OsmAnd-java/src/test/resources/search/double_parking.json new file mode 100644 index 0000000000..8aa7ec748f --- /dev/null +++ b/OsmAnd-java/src/test/resources/search/double_parking.json @@ -0,0 +1,700 @@ +{ + "settings": { + "lat": "55.28666", + "lon": "52.00556", + "radiusLevel": 1, + "totalLimit": -1, + "lang": "", + "transliterateIfMissing": false, + "emptyQueryAllowed": false, + "sortByName": false + }, + "phrase": "parking", + "results": [ + "Park (Leisure)", + "Parking (Filter)", + "Parking entrance (Personal transport)", + "Parking fee (Charging station / Transportation)", + "Parking fee: no (Charging station / Transportation)", + "Parking fee: yes (Charging station / Transportation)", + "Parking lot (Fire hydrant / Emergency infrastructure)", + "Parking tickets (Vending machine / Store)", + "Parking tickets (Vending machine / Store)", + "Parking time limit (Parking / Personal transport)", + "Parking", + "Parking", + "Parking", + "Parking", + "Parking", + "Parking" + ], + "amenities": [ + { + "lat": "55.29801", + "lon": "51.99100", + "id": 881010149, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.29481", + "lon": "51.98964", + "id": 803545283, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "parking_surface": "surface" + } + }, + { + "name": "Заинская ГРЭС", + "lat": "55.28492", + "lon": "52.02125", + "id": 481494555, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_yes": "yes", + "parking_surface": "surface" + } + }, + { + "lat": "55.29105", + "lon": "51.99531", + "id": 540237721, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28683", + "lon": "52.01479", + "id": 888343263, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_unpaved": "unpaved", + "access_permissive": "permissive", + "supervised_yes": "yes" + } + }, + { + "lat": "55.30317", + "lon": "52.00192", + "id": 1161722765, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "parking_surface": "surface", + "operator": "cахарный завод" + } + }, + { + "name": "для техосмотра", + "lat": "55.30439", + "lon": "52.01634", + "id": 484385195, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28615", + "lon": "52.00702", + "id": 1040771455, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28582", + "lon": "52.00758", + "id": 535925577, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.30950", + "lon": "51.96954", + "id": 1228158833, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "parking_surface": "surface" + } + }, + { + "lat": "55.29345", + "lon": "51.99385", + "id": 535897911, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.30957", + "lon": "52.00374", + "id": 897019441, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28602", + "lon": "52.00908", + "id": 268235957, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28777", + "lon": "51.99608", + "id": 4410403520512, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_unpaved": "unpaved", + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes", + "capacity": "70" + } + }, + { + "lat": "55.34092", + "lon": "52.05172", + "id": 2136388576, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no" + } + }, + { + "lat": "55.28271", + "lon": "52.00248", + "id": 536030271, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28391", + "lon": "52.00273", + "id": 536035007, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "name": "Служебная", + "lat": "55.28615", + "lon": "52.02350", + "id": 481491939, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_asphalt": "asphalt", + "fee_no": "no", + "access_permissive": "permissive", + "supervised_yes": "yes", + "parking_surface": "surface" + } + }, + { + "lat": "55.30969", + "lon": "51.96917", + "id": 1228158821, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.31022", + "lon": "51.97104", + "id": 1228158819, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "parking_surface": "surface" + } + }, + { + "lat": "55.29275", + "lon": "51.99355", + "id": 892959215, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "name": "для посетителей", + "lat": "55.28688", + "lon": "52.00578", + "id": 11390213698, + "subType": "parking", + "type": "transportation" + }, + { + "lat": "55.30838", + "lon": "51.96767", + "id": 1164434353, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "parking_surface": "surface" + } + }, + { + "name": "Южная", + "lat": "55.27739", + "lon": "52.00544", + "id": 641567205, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_unpaved": "unpaved", + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes" + } + }, + { + "lat": "55.28045", + "lon": "51.99550", + "id": 478137507, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes" + } + }, + { + "name": "Автостоянка №1", + "lat": "55.29028", + "lon": "51.99934", + "id": 502948005, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_gravel": "gravel", + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes" + } + }, + { + "lat": "55.27839", + "lon": "52.00301", + "id": 1168315587, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "parking_surface": "surface", + "operator": "Заинская ЦРБ" + } + }, + { + "lat": "55.30468", + "lon": "52.01335", + "id": 897014805, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.32509", + "lon": "51.99930", + "id": 1172111487, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "name": "Штрафстоянка (Эвакуатор)", + "lat": "55.30439", + "lon": "52.01346", + "id": 5153530824, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes", + "phone": "+7 (85558) 7-77-01" + } + }, + { + "name": "Три тополя", + "lat": "55.29666", + "lon": "51.99048", + "id": 642175341, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_unpaved": "unpaved", + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes" + } + }, + { + "lat": "55.29077", + "lon": "52.00812", + "id": 1168356553, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_asphalt": "asphalt", + "supervised_yes": "yes", + "parking_surface": "surface", + "fee_yes": "yes" + } + }, + { + "lat": "55.29429", + "lon": "51.99190", + "id": 893048919, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.29959", + "lon": "52.00516", + "id": 1022216961, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28355", + "lon": "51.99881", + "id": 943827057, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "parking_surface": "surface" + } + }, + { + "lat": "55.28651", + "lon": "52.00479", + "id": 905757839, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28928", + "lon": "52.00977", + "id": 190467181, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_gravel": "gravel", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28674", + "lon": "52.00282", + "id": 1168411743, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "name": "для клиентов", + "lat": "55.29116", + "lon": "51.99394", + "id": 821840897, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "surface_asphalt": "asphalt", + "parking_surface": "surface", + "access_customers": "customers" + } + }, + { + "lat": "55.29068", + "lon": "51.99490", + "id": 540238031, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.28982", + "lon": "51.98911", + "id": 190489189, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.29341", + "lon": "51.99072", + "id": 806562897, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no" + } + }, + { + "lat": "55.28042", + "lon": "52.00155", + "id": 1159734951, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.30493", + "lon": "52.01007", + "id": 1172110357, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.30500", + "lon": "52.01108", + "id": 1172110359, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface", + "capacity": "13" + } + }, + { + "lat": "55.29816", + "lon": "51.99222", + "id": 1160388645, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.29015", + "lon": "51.99366", + "id": 503278061, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.30624", + "lon": "52.00475", + "id": 691494051, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface", + "operator": "ЗЗМК - Тимер" + } + }, + { + "name": "для регистрации в ГИБДД", + "lat": "55.30438", + "lon": "52.01483", + "id": 484385289, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + }, + { + "lat": "55.29258", + "lon": "51.99188", + "id": 892959265, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no" + } + }, + { + "lat": "55.28050", + "lon": "52.00200", + "id": 1159662915, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface", + "capacity": "10" + } + }, + { + "lat": "55.29845", + "lon": "51.99057", + "id": 881010015, + "subType": "parking", + "type": "transportation", + "additionalInfo": { + "fee_no": "no", + "surface_asphalt": "asphalt", + "supervised_no": "no", + "parking_surface": "surface" + } + } + ] +} \ No newline at end of file diff --git a/OsmAnd-java/src/test/resources/search/street_komsomolskaya.json b/OsmAnd-java/src/test/resources/search/street_komsomolskaya.json new file mode 100644 index 0000000000..525aee1b12 --- /dev/null +++ b/OsmAnd-java/src/test/resources/search/street_komsomolskaya.json @@ -0,0 +1,2897 @@ +{ + "settings": { + "lat": "55.28666", + "lon": "52.00558", + "radiusLevel": 1, + "totalLimit": -1, + "lang": "", + "transliterateIfMissing": false, + "emptyQueryAllowed": false, + "sortByName": false + }, + "phrase": "комсомольская", + "results": [ + "Комсомольская улица, Заинск", + "Комсомольская улица, Чукмарлы", + "Комсомольская улица, Русский Акташ", + "Комсомольская улица, Альметьевск", + "Комсомольская набережная, Набережные Челны", + "Комсомольская улица, Новое Надырово", + "Комсомольская улица, Тарловка" + ], + "amenities": [ + { + "name": "Комсомольская средняя общеобразовательная школа", + "lat": "55.58591", + "lon": "52.49345", + "id": 408464669, + "subType": "school", + "type": "education" + }, + { + "name": "ПС Комсомольская", + "lat": "55.34627", + "lon": "49.28010", + "id": 549500069, + "subType": "power_substation", + "type": "man_made" + } + ], + "cities": [ + { + "name": "Тараща", + "enName": "Tarascha", + "names": { + "de": "Taraschtscha", + "ru": "Тараща", + "uk": "Тараща", + "prefix": "місто", + "pl": "Taraszcza" + }, + "lat": "49.55550", + "lon": "30.50234", + "id": 620750304, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Сарманово", + "enName": "Sarmanovo", + "names": { + "tt": "Сарман", + "de": "Sarmanowo", + "ru": "Сарманово", + "ja": "サルマノヴォ" + }, + "lat": "55.25225", + "lon": "52.58872", + "id": 337839105, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Богатые Сабы", + "enName": "Bogatye Saby", + "names": { + "tt": "Байлар Сабасы", + "ru": "Богатые Сабы", + "ja": "ボガートィエ・サブィ" + }, + "lat": "56.01062", + "lon": "50.44677", + "id": 701847474, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Прип’ять", + "enName": "Pripyat", + "names": { + "de": "Prypjat", + "no": "Pripjat", + "be": "Прып'яць", + "fi": "Prypjat", + "ru": "Припять", + "pt": "Pripyat", + "bg": "Припя̀т", + "prefix": "місто", + "lt": "Pripetė", + "hr": "Prėpetė", + "fr": "Pripiat", + "hu": "Pripjaty", + "uk": "Прип’ять", + "sk": "Pripjať", + "sl": "Pripjat", + "id": "Prypiat", + "pam": "Prypiat", + "ca": "Pripyat", + "sr": "Припјат", + "sv": "Pripjat", + "ko": "프리피야티", + "eo": "Pripjat", + "it": "Pripjat", + "es": "Prípiat", + "zh": "普里皮亚特", + "et": "Prõpjat", + "cs": "Pripjať", + "ja": "プリピャチ", + "pl": "Prypeć", + "da": "Prypiat", + "ro": "Pripiat", + "nl": "Prypjat" + }, + "lat": "51.40613", + "lon": "30.05711", + "id": 127835001, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Актаныш", + "enName": "Aktanysh", + "names": { + "tt": "Актаныш", + "ru": "Актаныш", + "ja": "アクタヌィシ" + }, + "lat": "55.72218", + "lon": "54.05773", + "id": 606106631, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.72131", + "lon": "54.05469", + "id": 7710 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Баришівка", + "enName": "Baryshivka", + "names": { + "de": "Baryschiwka", + "ru": "Барышевка", + "uk": "Баришівка", + "prefix": "селище міського типу", + "pl": "Baryszówka" + }, + "lat": "50.36453", + "lon": "31.32567", + "id": 337523450, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старые Алгаши", + "enName": "Staryye Algashi", + "names": { + "cv": "Кивӗ Улхаш", + "ru": "Старые Алгаши" + }, + "lat": "54.66233", + "lon": "47.73995", + "id": 336525031, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.66400", + "lon": "47.73695", + "id": 11319 + } + ], + "matchStreet": 1 + }, + { + "name": "Чорнобиль", + "enName": "Chornobyl", + "names": { + "nn": "Tsjernobyl", + "de": "Tschornobyl", + "no": "Tsjernobyl", + "be": "Чарнобыль", + "fi": "Tšernobyl", + "ru": "Чернобыль", + "pt": "Chernobyl", + "prefix": "місто", + "lt": "Černobylis", + "hr": "Černobil", + "fr": "Tchernobyl", + "hu": "Csernobil", + "yi": "טשערנאבל", + "oc": "Chornobyl", + "uk": "Чорнобиль", + "sk": "Černobyľ", + "sl": "Černobil", + "id": "Chernobyl", + "ca": "Txernòbil", + "scn": "Chernobyl", + "sr": "Černobilj", + "sv": "Tjernobyl", + "ko": "초르노빌", + "af": "Černobylis", + "ms": "Chernobyl", + "eo": "Ĉernobilo", + "it": "Černobyl", + "es": "Chernóbil", + "zh": "切尔诺贝利", + "et": "Tšornobõl", + "cs": "Černobyl", + "eu": "Txernobyl", + "ar": "تشيرنوبيل", + "vi": "Chernobyl", + "lb": "Tschernobyl", + "ja": "チョルノーブィリ", + "pl": "Czarnobyl", + "da": "Tjernobyl", + "he": "צ'רנוביל", + "ro": "Cernobîl", + "nl": "Tsjernobyl", + "tr": "Çernobil" + }, + "lat": "51.27053", + "lon": "30.21944", + "id": 127834997, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Новое Надырово", + "names": { + "tt": "Яңа Нəдер" + }, + "lat": "54.89366", + "lon": "52.47019", + "id": 1504453249, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.89767", + "lon": "52.46710", + "id": 7941 + } + ], + "matchStreet": 1 + }, + { + "name": "Узин", + "enName": "Uzyn", + "names": { + "ru": "Узин", + "uk": "Узин", + "prefix": "місто", + "eo": "Uzin", + "fr": "Ouzyn", + "pl": "Uzyn" + }, + "lat": "49.82847", + "lon": "30.41973", + "id": 337543666, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Камские Поляны", + "enName": "Kamskiye Polyani", + "names": { + "tt": "Кама Аланы", + "de": "Kamskije Poljany", + "ru": "Камские Поляны", + "ja": "カムスキエ・ポリャヌィ" + }, + "lat": "55.42550", + "lon": "51.41016", + "id": 587614698, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Большие Ключи", + "names": { + "tt": "Большие Ключи" + }, + "lat": "55.98296", + "lon": "48.80483", + "id": 652108458, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.98220", + "lon": "48.79005", + "id": 5779 + } + ], + "matchStreet": 1 + }, + { + "name": "Бабинці", + "enName": "Babyntsi", + "names": { + "ru": "Бабинцы", + "uk": "Бабинці", + "prefix": "селище міського типу", + "pl": "Babyntsi" + }, + "lat": "50.64241", + "lon": "30.02907", + "id": 1668578377, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Славутич", + "enName": "Slavutych", + "names": { + "de": "Slawutytsch", + "ru": "Славутич", + "uk": "Славутич", + "prefix": "місто", + "lt": "Slavutičius", + "pl": "Sławutycz" + }, + "lat": "51.52014", + "lon": "30.75623", + "id": 337507300, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Иннополис", + "enName": "Innopolis", + "names": { + "tt": "Иннополис", + "ru": "Иннополис" + }, + "lat": "55.75226", + "lon": "48.74458", + "id": 2294499518, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Лащ-Таяба", + "names": { + "cv": "Лаш Таяпа", + "ru": "Лащ-Таяба" + }, + "lat": "55.03009", + "lon": "47.99935", + "id": 795358551, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.03201", + "lon": "47.99221", + "id": 10729 + } + ], + "matchStreet": 1 + }, + { + "name": "Вишневе", + "enName": "Vyshneve", + "names": { + "de": "Wyschnewe", + "ru": "Вишнёвое", + "uk": "Вишневе", + "prefix": "місто", + "pl": "Wysznewe", + "hu": "Vyshneve" + }, + "lat": "50.39175", + "lon": "30.36791", + "id": 36507630, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Боярка", + "enName": "Boiarka", + "names": { + "ru": "Боярка", + "uk": "Боярка", + "prefix": "місто", + "pl": "Bojarka", + "hu": "Boiarka" + }, + "lat": "50.33567", + "lon": "30.28476", + "id": 36507632, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Васильево", + "enName": "Vasilyevo", + "names": { + "tt": "Васильево", + "de": "Wassiljewo", + "ru": "Васильево", + "ja": "ヴァシーリエヴォ" + }, + "lat": "55.83729", + "lon": "48.67924", + "id": 336524045, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.83829", + "lon": "48.66132", + "id": 2221 + } + ], + "matchStreet": 1 + }, + { + "name": "Волжск", + "enName": "Volzhsk", + "names": { + "tt": "Волжск", + "de": "Wolschsk", + "ru": "Волжск", + "chm": "Юлсер-Ола", + "eo": "Volĵsk", + "it": "Volžsk", + "fr": "Voljsk", + "cs": "Volžsk", + "cv": "Волжск", + "uk": "Волзьк", + "mhr": "Юлсер-Ола", + "ja": "ヴォルシスク", + "pl": "Wołżsk", + "tr": "Voljsk" + }, + "lat": "55.86366", + "lon": "48.36186", + "id": 336523790, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "names": { + "ru": "Комсомольская улица" + }, + "lat": "55.86639", + "lon": "48.36347", + "id": 1897 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Бориспіль", + "enName": "Boryspil", + "names": { + "de": "Boryspil", + "ru": "Борисполь", + "uk": "Бориспіль", + "prefix": "місто", + "eo": "Borispilo", + "fr": "Boryspil", + "pl": "Boryspol", + "hu": "Boryspil" + }, + "lat": "50.35121", + "lon": "30.95076", + "id": 26150796, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Атабаево", + "names": { + "tt": "Атабай" + }, + "lat": "55.28842", + "lon": "49.35494", + "id": 703108525, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.28848", + "lon": "49.34872", + "id": 2636 + } + ], + "matchStreet": 1 + }, + { + "name": "Клавдієво-Тарасове", + "enName": "Klavdiievo-Tarasove", + "names": { + "ru": "Клавдиево-Тарасово", + "uk": "Клавдієво-Тарасове", + "prefix": "селище міського типу", + "pl": "Klavdiievo-Tarasove" + }, + "lat": "50.58414", + "lon": "30.00950", + "id": 337519388, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Гребінки", + "enName": "Hrebinky", + "names": { + "ru": "Гребёнки", + "uk": "Гребінки", + "prefix": "селище міського типу", + "pl": "Hrebinky" + }, + "lat": "49.95346", + "lon": "30.17635", + "id": 337539356, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Чистополь", + "enName": "Chistopol", + "names": { + "tt": "Чистай", + "de": "Tschistopol", + "cv": "Чистай", + "ru": "Чистополь", + "ja": "チストポリ" + }, + "lat": "55.37148", + "lon": "50.63674", + "id": 295864677, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.37373", + "lon": "50.65916", + "id": 4322 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Ірпінь", + "enName": "Irpin", + "names": { + "de": "Irpin", + "ru": "Ирпень", + "uk": "Ірпінь", + "prefix": "місто", + "fr": "Irpine", + "pl": "Irpień", + "hu": "Irpin" + }, + "lat": "50.51665", + "lon": "30.25004", + "id": 36505064, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тарловка", + "enName": "Tarlovka", + "lat": "55.75428", + "lon": "52.32179", + "id": 573214945, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.75495", + "lon": "52.32159", + "id": 11794 + } + ], + "matchStreet": 1 + }, + { + "name": "Заинск", + "enName": "Zainsk", + "names": { + "tt": "Зәй", + "de": "Sainsk", + "ru": "Заинск", + "ja": "ザインスク" + }, + "lat": "55.28665", + "lon": "52.00561", + "id": 337839081, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.28014", + "lon": "52.00160", + "id": 729 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Яготин", + "enName": "Yahotyn", + "names": { + "de": "Jahotyn", + "ru": "Яготин", + "uk": "Яготин", + "prefix": "місто", + "pl": "Jagodzin" + }, + "lat": "50.27589", + "lon": "31.76349", + "id": 337525267, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Лесная Хмелёвка", + "lat": "54.52728", + "lon": "49.66655", + "id": 28349988061, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.52387", + "lon": "49.66524", + "id": 9249 + } + ], + "matchStreet": 1 + }, + { + "name": "Немішаєве", + "enName": "Nemishaieve", + "names": { + "ru": "Немешаево", + "uk": "Немішаєве", + "prefix": "селище міського типу", + "fr": "Nemishayeve" + }, + "lat": "50.56801", + "lon": "30.10151", + "id": 337519630, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Кагарлик", + "enName": "Kaharlyk", + "names": { + "de": "Kaharlyk", + "ru": "Кагарлык", + "uk": "Кагарлик", + "prefix": "місто", + "pl": "Kaharłyk" + }, + "lat": "49.86507", + "lon": "30.82268", + "id": 1819209275, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Муслюмово", + "enName": "Muslyumovo", + "names": { + "tt": "Мөслим", + "ru": "Муслюмово", + "ja": "ムスリュモヴォ" + }, + "lat": "55.30593", + "lon": "53.19415", + "id": 337839100, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.30712", + "lon": "53.18859", + "id": 7660 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Менделеевск", + "enName": "Mendeleyevsk", + "names": { + "tt": "Менделеевск", + "de": "Mendelejewsk", + "ru": "Менделеевск", + "ja": "メンデリェーエフスク" + }, + "lat": "55.88787", + "lon": "52.30844", + "id": 321322750, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Верхний Услон", + "enName": "Verhnij Uslon", + "names": { + "tt": "Югары Ослан", + "de": "Werchni Uslonn", + "ru": "Верхний Услон", + "ja": "ヴェルフニー・ウスロン", + "ba": "Үрге Ослан" + }, + "lat": "55.76855", + "lon": "48.98293", + "id": 703197622, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Зеленодольск", + "enName": "Zelenodol'sk", + "names": { + "tt": "Яшел Үзән", + "de": "Selenodolsk", + "ru": "Зеленодольск", + "ko": "젤레노돌스크", + "uk": "Зеленодольськ", + "mhr": "Парат", + "ja": "ゼレノドリスク", + "eo": "Zelenodolsk", + "fa": "زلنودولسک، روسیه", + "pl": "Zielonodolsk", + "ro": "Zelenodolsk", + "sr": "Зеленодољск" + }, + "lat": "55.84776", + "lon": "48.50970", + "id": 336524051, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "names": { + "ru": "Комсомольская улица" + }, + "lat": "55.84713", + "lon": "48.49792", + "id": 1958 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Вятские Поляны", + "enName": "Vyatskiye Polyany", + "names": { + "tt": "Нократ Аланы", + "de": "Wjatskije Poljany", + "ja": "ヴャーツキエ・ポリャーヌィ" + }, + "lat": "56.23101", + "lon": "51.02939", + "id": 3237869, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Глеваха", + "enName": "Hlevakha", + "names": { + "kk": "Glevaha", + "de": "Hlewacha", + "ceb": "Hlevakha", + "be": "Глэваха", + "ru": "Глеваха", + "prefix": "селище міського типу", + "fr": "Hlevakha", + "cs": "Hlevacha", + "ar": "هليفاخا", + "hy": "Հլեվահա", + "uk": "Глеваха", + "pl": "Hłewacha", + "tr": "Glevaha", + "rmy": "Hlevaha" + }, + "lat": "50.25968", + "lon": "30.30591", + "id": 337525824, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Казань", + "enName": "Kazan", + "names": { + "tt": "Казан", + "de": "Kasan", + "hi": "काज़ान", + "fi": "Kazan", + "ru": "Казань", + "pt": "Cazã", + "lt": "Kazanė", + "lv": "Kazaņa", + "fr": "Kazan", + "hu": "Kazany", + "hy": "Կազան", + "oc": "Kazan", + "ka": "ყაზანი", + "uk": "Казань", + "sk": "Kazaň", + "sr": "Казањ", + "kn": "ಕಾಜಾ಼ನ್", + "os": "Хъазан", + "chm": "Озаҥ", + "it": "Kazan'", + "kv": "Казан", + "es": "Kazán", + "zh": "喀山", + "cs": "Kazaň", + "ar": "قازان", + "cv": "Хусан", + "mhr": "Озаҥ", + "ja": "カザン", + "pl": "Kazań", + "da": "Kazan", + "he": "קאזאן", + "ro": "Kazan", + "nl": "Kazan", + "ba": "Ҡаҙан", + "udm": "Кузон" + }, + "lat": "55.78235", + "lon": "49.12423", + "id": 27504067, + "type": "CITY", + "listOfStreets": [ + { + "name": "Комсомольская улица (Козья слобода)", + "lat": "55.81106", + "lon": "49.09485", + "id": 2013 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Володарка", + "enName": "Volodarka", + "names": { + "de": "Wolodarka", + "ru": "Володарка", + "uk": "Володарка", + "prefix": "селище міського типу", + "pl": "Wołodarka" + }, + "lat": "49.52250", + "lon": "29.92805", + "id": 337556285, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старое Дрожжаное", + "enName": "Staroye Drozhzhanoye", + "names": { + "tt": "Иске Чүпрәле", + "ru": "Старое Дрожжаное", + "ja": "スターロエ・ドロジジャノエ" + }, + "lat": "54.72499", + "lon": "47.56454", + "id": 336525099, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ворзель", + "enName": "Vorzel", + "names": { + "ru": "Ворзель", + "uk": "Ворзель", + "prefix": "селище міського типу", + "pl": "Vorzel" + }, + "lat": "50.54573", + "lon": "30.15629", + "id": 337519932, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Джалиль", + "names": { + "tt": "Җәлил", + "ja": "ジャリリ" + }, + "lat": "55.02197", + "lon": "52.73899", + "id": 371194680, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Городок", + "names": { + "ru": "Городок", + "uk": "Городок", + "prefix": "селище міського типу", + "pl": "Gródek" + }, + "lat": "50.58336", + "lon": "29.47816", + "id": 6726413, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Біла Церква", + "enName": "Bila Tserkva", + "names": { + "de": "Bila Zerkwa", + "be": "Белая Царква", + "ru": "Белая Церковь", + "prefix": "місто", + "lt": "Bila Cerkva", + "eo": "Bila-Cerkva", + "fr": "Bila Tserkva", + "hu": "Bila Cerkva", + "et": "Bila Tserkva", + "cs": "Bila Cerkva", + "uk": "Біла Церква", + "pl": "Biała Cerkiew", + "ro": "Bila Țerkva", + "sr": "Била Церква" + }, + "lat": "49.80382", + "lon": "30.11170", + "id": 255259998, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старая Майна", + "enName": "Staraya Mayna", + "names": { + "ru": "Старая Майна", + "ja": "スターラヤ・マイナ" + }, + "lat": "54.61114", + "lon": "48.92349", + "id": 11135157981, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.60671", + "lon": "48.91229", + "id": 8342 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Высокая Гора", + "names": { + "tt": "Биектау", + "ja": "ヴイソーカヤ・ゴラー" + }, + "lat": "55.91018", + "lon": "49.30720", + "id": 704304024, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Агидель", + "enName": "Agidel", + "names": { + "tt": "Агыйдел", + "ru": "Агидель", + "ja": "アギデーリ", + "ba": "Ағиҙел", + "et": "Agidel" + }, + "lat": "55.89928", + "lon": "53.93742", + "id": 251071107, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Большая Атня", + "enName": "Bolshaya Atnya", + "names": { + "tt": "Олы Әтнә", + "ru": "Большая Атня", + "ja": "ボリシャヤ・アトニャ" + }, + "lat": "56.24947", + "lon": "49.45390", + "id": 698459097, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.24843", + "lon": "49.45315", + "id": 7008 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Болгар", + "enName": "Bolgar", + "names": { + "tt": "Болгар", + "cv": "Пӑлхар", + "ru": "Болгар", + "ja": "ボルガル" + }, + "lat": "54.97474", + "lon": "49.03020", + "id": 599924350, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.96961", + "lon": "49.02911", + "id": 7480 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Челно-Вершины", + "lat": "54.41588", + "lon": "51.08582", + "id": 8519359, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Бородянка", + "enName": "Borodianka", + "names": { + "de": "Borodjanka", + "ru": "Бородянка", + "uk": "Бородянка", + "prefix": "селище міського типу", + "pl": "Borodzianka" + }, + "lat": "50.64657", + "lon": "29.92558", + "id": 295809953, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Красятичі", + "enName": "Krasiatychi", + "names": { + "de": "Krasjatytschi", + "ru": "Красятичи", + "uk": "Красятичі", + "prefix": "селище міського типу", + "pl": "Krasiatyczi" + }, + "lat": "51.07829", + "lon": "29.63779", + "id": 337512030, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Іванків", + "enName": "Ivankiv", + "names": { + "de": "Iwankiw", + "ru": "Иванков", + "uk": "Іванків", + "prefix": "селище міського типу", + "pl": "Iwanków" + }, + "lat": "50.93300", + "lon": "29.90463", + "id": 337513819, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Русский Акташ", + "enName": "Russkiy Aktash", + "names": { + "tt": "Рус Акташы", + "ru": "Русский Акташ", + "ja": "ルースキー・アクタシ" + }, + "lat": "55.04037", + "lon": "52.11699", + "id": 337839143, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.04117", + "lon": "52.11530", + "id": 148 + } + ], + "matchStreet": 1 + }, + { + "name": "Данилкино", + "lat": "56.07810", + "lon": "48.79013", + "id": 661092578, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.07952", + "lon": "48.79226", + "id": 2271 + } + ], + "matchStreet": 1 + }, + { + "name": "Ставище", + "enName": "Stavysche", + "names": { + "de": "Stawyschtsche", + "ru": "Ставище", + "uk": "Ставище", + "prefix": "селище міського типу", + "pl": "Stawyszcze" + }, + "lat": "49.38620", + "lon": "30.18316", + "id": 337560920, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Новошешминск", + "enName": "Novosheshminsk", + "names": { + "tt": "Яңа Чишмә", + "de": "Nowoscheschminsk", + "ru": "Новошешминск", + "ja": "ノヴォシェシミンスク" + }, + "lat": "55.06165", + "lon": "51.22489", + "id": 337839146, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Нырья", + "names": { + "tt": "Нырья" + }, + "lat": "56.19929", + "lon": "50.58311", + "id": 796778738, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.20261", + "lon": "50.58084", + "id": 12056 + } + ], + "matchStreet": 1 + }, + { + "name": "Малтабарово", + "names": { + "tt": "Малтабар" + }, + "lat": "55.79553", + "lon": "52.78860", + "id": 593611502, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Комсомольская", + "lat": "55.79264", + "lon": "52.78630", + "id": 12145 + } + ], + "matchStreet": 1 + }, + { + "name": "Билярск", + "names": { + "tt": "Биләр" + }, + "lat": "54.98370", + "lon": "50.38888", + "id": 336524609, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.98580", + "lon": "50.39718", + "id": 199 + } + ], + "matchStreet": 1 + }, + { + "name": "Кузкеево", + "names": { + "tt": "Күзкәй" + }, + "lat": "55.77079", + "lon": "52.80849", + "id": 593611503, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.77212", + "lon": "52.79931", + "id": 8524 + } + ], + "matchStreet": 1 + }, + { + "name": "Актюбинский", + "names": { + "tt": "Актүбә", + "ru": "Актюбинский", + "ja": "アクチュビンスキー" + }, + "lat": "54.81319", + "lon": "52.80257", + "id": 445771973, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.81157", + "lon": "52.81645", + "id": 4525 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Яльчики", + "names": { + "de": "Jaltschiki", + "cv": "Елчӗк", + "ru": "Яльчики", + "ja": "ヤリチキ" + }, + "lat": "55.16287", + "lon": "48.00334", + "id": 850408359, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Азнакаево", + "enName": "Aznakayevo", + "names": { + "tt": "Азнакай", + "de": "Asnakajewo", + "cv": "Аснакай", + "ru": "Азнакаево", + "ja": "アズナカエヴォ" + }, + "lat": "54.86296", + "lon": "53.07922", + "id": 337839164, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Карабаш", + "enName": "Karabash", + "names": { + "tt": "Карабаш", + "ja": "カラバシ" + }, + "lat": "54.69440", + "lon": "52.58739", + "id": 2406531050, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.69694", + "lon": "52.58593", + "id": 7913 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Переяслав-Хмельницький", + "enName": "Pereiaslav-Khmelnytskyi", + "names": { + "de": "Perejaslaw-Chmelnyzkyj", + "be": "Пераяслаў-Хмяльніцкі", + "ru": "Переяслав-Хмельницкий", + "uk": "Переяслав-Хмельницький", + "prefix": "місто", + "eo": "Perejaslav-Ĥmelnickij", + "pl": "Perejasław Chmielnicki" + }, + "lat": "50.06440", + "lon": "31.44474", + "id": 337535557, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Нижнекамск", + "enName": "Nizhnekamsk", + "names": { + "cs": "Nižněkamsk", + "tt": "Түбән Кама", + "de": "Nischnekamsk", + "ru": "Нижнекамск", + "uk": "Нижньокамськ", + "ja": "ニジネカムスク", + "lt": "Nižnekamskas", + "fr": "Nijnekamsk", + "pl": "Niżniekamsk", + "es": "Nizhnekamsk" + }, + "lat": "55.64129", + "lon": "51.81603", + "id": 553037933, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Малая Пурга", + "enName": "Malaya Purga", + "names": { + "ja": "マラヤ・プルガ", + "udm": "Пичи Пурга" + }, + "lat": "56.54955", + "lon": "53.00551", + "id": 621090917, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Шемурша", + "names": { + "de": "Schemurscha", + "cv": "Шӑмӑршӑ", + "ja": "シェムルシャー" + }, + "lat": "54.88548", + "lon": "47.51651", + "id": 855192927, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Агрыз", + "enName": "Agryz", + "names": { + "tt": "Әгерҗе", + "ru": "Агрыз", + "ja": "アグルイズ" + }, + "lat": "56.52546", + "lon": "52.99725", + "id": 1773881620, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.53128", + "lon": "53.00704", + "id": 7971 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Лениногорск", + "enName": "Leninogorsk", + "names": { + "tt": "Лениногорск", + "de": "Leninogorsk", + "cv": "Ҫӗнӗ Пӗҫмен", + "ru": "Лениногорск", + "ja": "レニノゴルスク" + }, + "lat": "54.59943", + "lon": "52.44691", + "id": 273310116, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.60837", + "lon": "52.46062", + "id": 1038 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Аксубаево", + "enName": "Aksubayevo", + "names": { + "tt": "Аксубай", + "de": "Aksubajewo", + "cv": "Аксу", + "ru": "Аксубаево", + "ja": "アクスバエヴォ" + }, + "lat": "54.84635", + "lon": "50.80554", + "id": 336524899, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.85470", + "lon": "50.81432", + "id": 7569 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Нурлат", + "enName": "Nurlat", + "names": { + "tt": "Нурлат", + "de": "Nurlat", + "cv": "Нурлат", + "ru": "Нурлат", + "ja": "ヌルラート" + }, + "lat": "54.42973", + "lon": "50.80196", + "id": 336525410, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.41543", + "lon": "50.80589", + "id": 1717 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Пісківка", + "enName": "Piskivka", + "names": { + "ru": "Песковка", + "uk": "Пісківка", + "prefix": "селище міського типу", + "pl": "Piskivka" + }, + "lat": "50.69686", + "lon": "29.59311", + "id": 337517677, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Октябрьский", + "enName": "Oktjabrski", + "names": { + "tt": "Октябрьски", + "de": "Oktjabrski", + "ru": "Октябрьский", + "ja": "オクチャブリスキー", + "lt": "Oktiabrskis", + "ba": "Октябрьский", + "et": "Oktjabrski" + }, + "lat": "54.48097", + "lon": "53.46600", + "id": 191901380, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "names": { + "ru": "Комсомольская улица" + }, + "lat": "54.48629", + "lon": "53.44462", + "id": 1564 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Куйбышевский Затон", + "names": { + "tt": "Куйбышев Затоны", + "ja": "クイビシェフスキー・ザトン" + }, + "lat": "55.15645", + "lon": "49.16940", + "id": 697269501, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.16218", + "lon": "49.17156", + "id": 10632 + } + ], + "matchStreet": 1 + }, + { + "name": "Буча", + "enName": "Bucha", + "names": { + "de": "Butscha", + "ru": "Буча", + "prefix": "місто", + "uk": "Буча", + "fr": "Boutcha", + "pl": "Bucza" + }, + "lat": "50.54858", + "lon": "30.22071", + "id": 312987923, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Базарные Матаки", + "enName": "Bazarnyye Mataki", + "names": { + "tt": "Базарлы Матак", + "ja": "バザールヌイエ・マターキ" + }, + "lat": "54.90349", + "lon": "49.92754", + "id": 336524666, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Борова", + "enName": "Borova", + "names": { + "ru": "Боровая", + "uk": "Борова", + "prefix": "селище міського типу", + "pl": "Borowa" + }, + "lat": "50.17834", + "lon": "30.10254", + "id": 337527400, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Нижняя Мактама", + "names": { + "tt": "Түбəн Мактама", + "ja": "ニジニャヤ・マクタマ" + }, + "lat": "54.86247", + "lon": "52.42313", + "id": 1804405492, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Велика Димерка", + "enName": "Velyka Dymerka", + "names": { + "ru": "Великая Дымерка", + "uk": "Велика Димерка", + "prefix": "селище міського типу", + "pl": "Wielka Dymirka" + }, + "lat": "50.59183", + "lon": "30.90109", + "id": 337519261, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Вишгород", + "enName": "Vyshhorod", + "names": { + "de": "Wyschhorod", + "ru": "Вышгород", + "uk": "Вишгород", + "prefix": "місто", + "fr": "Vychhorod", + "pl": "Wyszogród" + }, + "lat": "50.58243", + "lon": "30.48513", + "id": 289308798, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Обухів", + "enName": "Obukhiv", + "names": { + "de": "Obuchiw", + "ru": "Обухов", + "uk": "Обухів", + "prefix": "місто", + "fr": "Oboukhiv", + "pl": "Obuchów", + "hu": "Obukhiv" + }, + "lat": "50.11020", + "lon": "30.62675", + "id": 337534108, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Черемшан", + "enName": "Cheremshan", + "names": { + "tt": "Чирмешән", + "cv": "Ҫарӑмсан", + "ru": "Черемшан", + "ja": "チェレムシャン" + }, + "lat": "54.66110", + "lon": "51.50532", + "id": 337839206, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Українка", + "enName": "Ukrainka", + "names": { + "ru": "Украинка", + "uk": "Українка", + "prefix": "місто", + "pl": "Ukrajinka" + }, + "lat": "50.15372", + "lon": "30.74206", + "id": 337528474, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Калинівка", + "enName": "Kalynivka", + "names": { + "kk": "Kalyni'vka", + "de": "Kalyniwka (Wassylkiw)", + "hy": "Կալյնիվկա", + "ru": "Калиновка", + "vi": "Kalynivka", + "prefix": "селище міського типу", + "uk": "Калинівка", + "ja": "カルィーニウカ", + "fr": "Kalynivka", + "pl": "Kalinówka", + "ro": "Kalînivka, Vasîlkiv", + "tr": "Kalınivka" + }, + "lat": "50.22573", + "lon": "30.22618", + "id": 337526421, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Фастів", + "enName": "Fastiv", + "names": { + "de": "Fastiw", + "ru": "Фастов", + "uk": "Фастів", + "prefix": "місто", + "eo": "Fastiv", + "fr": "Fastiv", + "pl": "Fastów", + "hu": "Fastiv" + }, + "lat": "50.07993", + "lon": "29.91629", + "id": 337535126, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Уруссу", + "enName": "Urussu", + "names": { + "tt": "Урыссу", + "ru": "Уруссу", + "ja": "ウルスー" + }, + "lat": "54.59933", + "lon": "53.46632", + "id": 337839216, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.60163", + "lon": "53.44535", + "id": 2599 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Елабуга", + "enName": "Elabuga", + "names": { + "tt": "Алабуга", + "ar": "ييلابوغا", + "de": "Jelabuga", + "cv": "Алапӳ", + "ru": "Елабуга", + "uk": "Єлабуга", + "ja": "エラブガ", + "tt-lat": "Alabuğa", + "fa": "یلابوگا", + "tr": "Alabuga", + "ba": "Алабуға" + }, + "lat": "55.75771", + "lon": "52.05400", + "id": 153568874, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ютаза", + "enName": "Yutaza", + "names": { + "tt": "Ютазы", + "ru": "Ютаза" + }, + "lat": "54.58879", + "lon": "53.27073", + "id": 337839220, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.59253", + "lon": "53.26195", + "id": 2683 + } + ], + "matchStreet": 1 + }, + { + "name": "Макарів", + "enName": "Makariv", + "names": { + "de": "Makariw", + "ru": "Макаров", + "uk": "Макарів", + "prefix": "селище міського типу", + "pl": "Makarow" + }, + "lat": "50.46399", + "lon": "29.80690", + "id": 1494035871, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Кукмор", + "enName": "Kukmor", + "names": { + "tt": "Кукмара", + "de": "Kukmor", + "ru": "Кукмор", + "ja": "クークモル" + }, + "lat": "56.18653", + "lon": "50.89721", + "id": 409487025, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.18861", + "lon": "50.88569", + "id": 10547 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Київ", + "enName": "Kyiv", + "names": { + "hi": "कीव", + "pt": "Kiev", + "prefix": "місто", + "hr": "Kijev", + "ht": "Kyèv", + "hu": "Kijev", + "lmo": "Kiev", + "xmf": "კიევი", + "yi": "קיעוו", + "hy": "Կիև", + "bar": "Kiew", + "nah": "Kiev", + "yo": "Kiev", + "pms": "Kijv", + "ia": "Kyiv", + "nan": "Kyyiv", + "id": "Kyiv", + "ie": "Kyiv", + "sco": "Kiev", + "scn": "Kiev", + "ext": "Kyiv", + "ab": "Кыив", + "qu": "Kiyiw", + "af": "Kiëf", + "pnb": "کیف", + "io": "Kyiv", + "frr": "Kyiv", + "is": "Kænugarður", + "it": "Kyiv", + "am": "ኪየቭ", + "an": "Kiev", + "zh": "基輔", + "ar": "كييف", + "jbo": "kiev", + "mhr": "Киев", + "ja": "キエフ", + "az": "Kiyev", + "zu": "IKiyevi", + "ro": "Kiev", + "ba": "Киев", + "be": "Кіеў", + "ru": "Киев", + "bg": "Киев", + "bi": "Kyiv", + "myv": "Киев ош", + "bn": "কিয়েভ", + "jv": "Kyiv", + "bo": "ཀིབ།", + "br": "Kyiv", + "sc": "Kiev", + "bs": "Kijev", + "se": "Kiova", + "sh": "Kijev", + "ka": "კიევი", + "sk": "Kyjev", + "roa-rup": "Kiev", + "sl": "Kijev", + "ca": "Kyiv", + "sq": "Kievi", + "sr": "Кијев", + "kk": "Киев", + "kl": "Kyiv", + "kn": "ಕೀವ್", + "sv": "Kiev", + "ko": "키예프", + "mrj": "Киев", + "sw": "Kiev", + "arz": "كييف", + "ku": "Kîev", + "kv": "Киев", + "ta": "கீவ்", + "ky": "Киев", + "cs": "Kyjev", + "te": "క్యివ్", + "cu": "Кꙑѥвъ", + "cv": "Кийӳ", + "tg": "Киев", + "th": "เคียฟ", + "la": "Kiovia", + "cy": "Kyiv", + "lb": "Kiew", + "tl": "Kiev", + "nds": "Kiew", + "da": "Kyiv", + "tr": "Kiev", + "tt": "Киев", + "be-tarask": "Кіеў", + "de": "Kiew", + "ln": "Kyjiw", + "ast": "Kiev", + "rue": "Київ", + "tw": "Kiev", + "hif": "Kiev", + "koi": "Киев", + "lt": "Kijevas", + "lv": "Kijeva", + "lij": "Kiev", + "lad": "Kyiv", + "ug": "كىيېۋ", + "roa-tara": "Kiev", + "vec": "Kiev", + "uk": "Київ", + "fiu-vro": "Kiiova", + "mi": "Kieu", + "ur": "کیف", + "mk": "Киев", + "pap": "Kiev", + "ml": "കീവ്", + "rmy": "Kiev", + "vep": "Kijev", + "mn": "Киев", + "mr": "क्यीव", + "uz": "Kiyev", + "ms": "Kiev", + "el": "Κίεβο", + "mt": "Kjiv", + "tzl": "Kíiv", + "als": "Kiew", + "eo": "Kievo", + "my": "ကီးယက်မြို့", + "ilo": "Kyiv", + "es": "Kyiv", + "mdf": "Киев", + "et": "Kiiev", + "eu": "Kyiv", + "dsb": "Kijew", + "vi": "Kiev", + "bat-smg": "Kijevs", + "hsb": "Kijew", + "vo": "Küyiv", + "fa": "کی‌یف", + "nl": "Kiev", + "udm": "Киев", + "nn": "Kiev", + "no": "Kiev", + "fi": "Kiova", + "yue": "基輔", + "fo": "Kyiv", + "fr": "Kyiv", + "gag": "Kyiv", + "fy": "Kiev", + "nov": "Kiyev", + "oc": "Kyiiv", + "crh": "Kiyev", + "wo": "Kiyew", + "ga": "Cív", + "ang": "Cænugeard", + "sah": "Киев", + "bxr": "Киев", + "gd": "Kyiv", + "os": "Киев", + "szl": "Kijůw", + "gl": "Kiev", + "war": "Kiev", + "bpy": "কিয়েভ", + "gv": "Kyiv", + "pa": "ਕੀਵ", + "csb": "Kyiv", + "cbk-zam": "Kyiv", + "ckb": "کیێڤ", + "pl": "Kijów", + "he": "קייב" + }, + "lat": "50.45011", + "lon": "30.52405", + "id": 26150422, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тетіїв", + "enName": "Tetiiv", + "names": { + "de": "Tetijiw", + "ru": "Тетиев", + "uk": "Тетіїв", + "prefix": "місто", + "pl": "Tetyjów" + }, + "lat": "49.36862", + "lon": "29.67712", + "id": 337561478, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тетюши", + "enName": "Tetyushi", + "names": { + "tt": "Тәтеш", + "de": "Tetjuschi", + "cv": "Теччӗ", + "ru": "Тетюши", + "ja": "テチューシ" + }, + "lat": "54.93431", + "lon": "48.83168", + "id": 336524694, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.94122", + "lon": "48.81528", + "id": 6044 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Лаишево", + "enName": "Laishevo", + "names": { + "tt": "Лаеш", + "de": "Laischewo", + "cv": "Лаиш", + "ru": "Лаишево", + "ja": "ライシェヴォ", + "lt": "Laiševas" + }, + "lat": "55.40434", + "lon": "49.54684", + "id": 336524182, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.40922", + "lon": "49.54424", + "id": 2631 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Куркуль", + "names": { + "tt": "Кыркүл" + }, + "lat": "55.19469", + "lon": "50.10916", + "id": 826359259, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.19516", + "lon": "50.11581", + "id": 6495 + } + ], + "matchStreet": 1 + }, + { + "name": "Ржищів", + "enName": "Rzhyschiv", + "names": { + "de": "Rschyschtschiw", + "ru": "Ржищев", + "uk": "Ржищів", + "prefix": "місто", + "pl": "Rzyszczów" + }, + "lat": "49.96822", + "lon": "31.04118", + "id": 337538749, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Миронівка", + "enName": "Myronivka", + "names": { + "de": "Myroniwka", + "ru": "Мироновка", + "uk": "Миронівка", + "prefix": "місто", + "pl": "Mironówka" + }, + "lat": "49.65834", + "lon": "30.98250", + "id": 5119801550, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Березань", + "enName": "Berezan", + "names": { + "de": "Beresan", + "ru": "Березань", + "uk": "Березань", + "prefix": "місто", + "lt": "Berezanė", + "pl": "Berezań" + }, + "lat": "50.31327", + "lon": "31.46892", + "id": 337524664, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Чукмарлы", + "names": { + "tt": "Чукмарлы" + }, + "lat": "55.28447", + "lon": "52.43184", + "id": 583375597, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.28066", + "lon": "52.42903", + "id": 10262 + } + ], + "matchStreet": 1 + }, + { + "name": "Нижние Вязовые", + "enName": "Nizhniye Vyazovye", + "names": { + "tt": "Карамалы Тау", + "ja": "ニジニエ・ヴャゾヴイエ" + }, + "lat": "55.79963", + "lon": "48.52238", + "id": 752193024, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.79462", + "lon": "48.52856", + "id": 7858 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Вахоткино", + "lat": "56.00524", + "lon": "48.65201", + "id": 660899983, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.00694", + "lon": "48.64604", + "id": 11576 + } + ], + "matchStreet": 1 + }, + { + "name": "Осиново", + "names": { + "tt": "Осиново" + }, + "lat": "55.87730", + "lon": "48.89103", + "id": 722796219, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.87905", + "lon": "48.88858", + "id": 3983 + } + ], + "matchStreet": 1 + }, + { + "name": "Альметьевск", + "enName": "Almetyevsk", + "names": { + "tt": "Әлмәт", + "de": "Almetjewsk", + "be": "Альмецьеўск", + "ru": "Альметьевск", + "ko": "알메티옙스크", + "lt": "Almetjevskas", + "it": "Al'met'evsk", + "fr": "Almetievsk", + "es": "Almétievsk", + "zh": "阿尔梅季耶夫斯克", + "ar": "ألميتيفسك", + "cv": "Элмет", + "uk": "Альметьєвськ", + "hsb": "Almetjewsk", + "ja": "アリメチエフスク", + "az": "Əlmət", + "fa": "آلماتیفسک", + "pl": "Almietjewsk", + "ro": "Almetievsk", + "ba": "Әлмәт" + }, + "lat": "54.89965", + "lon": "52.30149", + "id": 2173235770, + "type": "CITY", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.91562", + "lon": "52.33893", + "id": 6097 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Апастово", + "enName": "Apastovo", + "names": { + "tt": "Апас", + "ar": "أباستوفو", + "de": "Apastowo", + "cv": "Апас", + "ru": "Апастово", + "ja": "アパソトヴォ", + "ca": "Apàstovo", + "ba": "Апас" + }, + "lat": "55.20267", + "lon": "48.50687", + "id": 703166491, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Балтаси", + "enName": "Baltasi", + "names": { + "tt": "Балтач", + "ru": "Балтаси", + "ja": "バルタシ" + }, + "lat": "56.34462", + "lon": "50.21142", + "id": 701721057, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Камское Устье", + "enName": "Kamskoye Ustye", + "names": { + "tt": "Кама Тамагы", + "cv": "Кама Вӑрри", + "ru": "Камское Устье", + "ja": "カムスコエ・ウスチエ" + }, + "lat": "55.20157", + "lon": "49.26802", + "id": 336524471, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.20141", + "lon": "49.26975", + "id": 7501 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Кагарлик", + "lat": "49.85635", + "lon": "30.74794", + "id": 6629021, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Коцюбинське", + "enName": "Kotsiubynske", + "names": { + "ru": "Коцюбинское", + "uk": "Коцюбинське", + "prefix": "селище міського типу", + "pl": "Kotsiubynske" + }, + "lat": "50.49047", + "lon": "30.33379", + "id": 337520861, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Рокитне", + "enName": "Rokytne", + "names": { + "de": "Rokytne", + "ru": "Ракитное", + "uk": "Рокитне", + "prefix": "селище міського типу", + "pl": "Rokitna" + }, + "lat": "49.68673", + "lon": "30.47303", + "id": 337549274, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Богуслав", + "enName": "Bohuslav", + "names": { + "de": "Bohuslaw", + "ru": "Богуслав", + "uk": "Богуслав", + "prefix": "місто", + "pl": "Bohusław" + }, + "lat": "49.54765", + "lon": "30.87330", + "id": 337555159, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Пестрецы", + "enName": "Pestretsy", + "names": { + "tt": "Питрәч", + "ru": "Пестрецы", + "ja": "ペストレツィ", + "lt": "Pestrecai" + }, + "lat": "55.75021", + "lon": "49.65709", + "id": 697241159, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.75617", + "lon": "49.64662", + "id": 2581 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Алексеевское", + "enName": "Alexeyevskoye", + "names": { + "tt": "Алексеевск", + "de": "Alexejewskoje", + "ru": "Алексеевское", + "ja": "アレクセーエフスコエ", + "lt": "Aleksėjevskojė" + }, + "lat": "55.30496", + "lon": "50.11289", + "id": 336524229, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "names": { + "tt": "Комсомоллар урамы" + }, + "lat": "55.30439", + "lon": "50.10965", + "id": 6105 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Мензелинск", + "enName": "Menzelinsk", + "names": { + "tt": "Минзәлә", + "de": "Menselinsk", + "ru": "Мензелинск", + "ja": "メンゼリンスク" + }, + "lat": "55.72556", + "lon": "53.10718", + "id": 337839017, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.72125", + "lon": "53.11864", + "id": 3881 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Бугульма", + "enName": "Bugulma", + "names": { + "tt": "Бөгелмә", + "de": "Bugulma", + "ru": "Бугульма", + "ja": "ブグリマ" + }, + "lat": "54.53841", + "lon": "52.79559", + "id": 1707207947, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.54021", + "lon": "52.76684", + "id": 2055 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Мамадыш", + "enName": "Mamadysh", + "names": { + "tt": "Мамадыш", + "de": "Mamadysch", + "ru": "Мамадыш", + "ja": "ママドィシ", + "az": "Mamadış" + }, + "lat": "55.70908", + "lon": "51.40891", + "id": 337839024, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.72513", + "lon": "51.40426", + "id": 8919 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Бавлы", + "enName": "Bavly", + "names": { + "tt": "Баулы", + "de": "Bawly", + "ru": "Бавлы", + "ja": "バヴルィ", + "et": "Bavlõ" + }, + "lat": "54.40309", + "lon": "53.23571", + "id": 337839279, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.40355", + "lon": "53.24687", + "id": 7026 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Згурівка", + "enName": "Zghurivka", + "names": { + "de": "Shuriwka", + "ru": "Згуровка", + "prefix": "селище міського типу", + "uk": "Згурівка", + "pl": "Zhuriwka" + }, + "lat": "50.49506", + "lon": "31.76918", + "id": 337520849, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Буинск", + "enName": "Buinsk", + "names": { + "tt": "Буа", + "de": "Buinsk", + "cv": "Пӑва", + "ru": "Буинск", + "ja": "ブインスク" + }, + "lat": "54.97229", + "lon": "48.29289", + "id": 295862317, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.98741", + "lon": "48.29586", + "id": 5979 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Гостомель", + "enName": "Hostomel", + "names": { + "ru": "Гостомель", + "uk": "Гостомель", + "prefix": "селище міського типу", + "pl": "Hostomel" + }, + "lat": "50.58826", + "lon": "30.25909", + "id": 337519314, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Бровари", + "enName": "Brovary", + "names": { + "de": "Browary", + "ru": "Бровары", + "prefix": "місто", + "uk": "Бровари", + "eo": "Brovari", + "fr": "Brovary", + "pl": "Browary", + "hu": "Brovari", + "et": "Brovarõ", + "sr": "Бровари" + }, + "lat": "50.51111", + "lon": "30.79004", + "id": 3673183717, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Победа", + "names": { + "tt": "Победа" + }, + "lat": "54.67300", + "lon": "52.66657", + "id": 783002941, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "54.67386", + "lon": "52.66232", + "id": 4542 + } + ], + "matchStreet": 1 + }, + { + "name": "Димер", + "enName": "Dymer", + "names": { + "ru": "Дымер", + "uk": "Димер", + "prefix": "селище міського типу", + "pl": "Dymer" + }, + "lat": "50.78355", + "lon": "30.30780", + "id": 1585808480, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Набережные Челны", + "enName": "Naberezhnye Chelny", + "names": { + "tt": "Яр Чаллы", + "de": "Nabereschnyje Tschelny", + "no": "Naberezjnyje Tsjelny", + "be": "Наберажныя Чалны", + "fi": "Naberežnyje Tšelny", + "ru": "Набережные Челны", + "pt": "Naberejnye Chelny", + "bg": "Набережние Челни", + "lt": "Naberežnyje Čelnai", + "hr": "Naberežnye Čelny", + "lv": "Naberežnije Čelni", + "fr": "Naberejnye Tchelny", + "ka": "ნაბერეჟნიე ჩელნი", + "uk": "Набережні Човни", + "ca": "Nàberejnie_Txelní", + "sr": "Набережније Челни", + "sv": "Naberezjnyje Tjelny", + "ko": "나베레즈니예첼니", + "it": "Naberežnye Čelny", + "es": "Náberezhnye Chelny", + "zh": "卡马河畔切尔尼", + "et": "Naberežnõje Tšelnõ", + "cs": "Naberežnyje Čelny", + "ar": "نابريجناي تشلني", + "cv": "Чаллă", + "ja": "ナベレジヌイェ・チェルヌイ", + "az": "Naberejnıye Çelnı", + "fa": "نابرژنیه چلنی", + "pl": "Nabierieżnyje Czełny", + "ro": "Naberejnîe Celnî", + "nl": "Naberezjnye Tsjelny", + "tr": "Yarçallı", + "ba": "Яр Саллы" + }, + "lat": "55.74201", + "lon": "52.39923", + "id": 191749240, + "type": "CITY", + "listOfStreets": [ + { + "name": "Комсомольская набережная", + "lat": "55.69179", + "lon": "52.29220", + "id": 1022 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Сквира", + "enName": "Skvyra", + "names": { + "kk": "Skvyra", + "de": "Skwyra", + "ceb": "Skvyra", + "be": "Сквыра", + "ru": "Сквира", + "sv": "Skvyra", + "prefix": "місто", + "it": "Skvyra", + "fr": "Skvyra", + "cs": "Skvyra", + "hy": "Սկվյրա", + "vi": "Skvyra", + "uk": "Сквира", + "sk": "Skvyra", + "fa": "اسکویرا", + "pl": "Skwyra", + "ro": "Skvîra" + }, + "lat": "49.73370", + "lon": "29.66266", + "id": 337547206, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Рыбная Слобода", + "enName": "Rybnaya Sloboda", + "names": { + "tt": "Балык Бистәсе", + "ru": "Рыбная Слобода", + "ja": "ルィブナヤ・スロボーダ" + }, + "lat": "55.46442", + "lon": "50.14061", + "id": 703680750, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "55.45858", + "lon": "50.13169", + "id": 10141 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Арск", + "enName": "Arsk", + "names": { + "tt": "Арча", + "de": "Arsk", + "ru": "Арск", + "ja": "アルスク" + }, + "lat": "56.09099", + "lon": "49.87718", + "id": 295868224, + "type": "TOWN", + "listOfStreets": [ + { + "name": "Комсомольская улица", + "lat": "56.08784", + "lon": "49.86229", + "id": 6776 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Тюлячи", + "enName": "Tyulyachi", + "names": { + "tt": "Теләче", + "ru": "Тюлячи", + "ja": "チュリャチ" + }, + "lat": "55.89188", + "lon": "50.23350", + "id": 697241170, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Васильків", + "enName": "Vasylkiv", + "names": { + "de": "Wassylkiw", + "ru": "Васильков", + "uk": "Васильків", + "prefix": "місто", + "fr": "Vassylkiv", + "pl": "Wasilków", + "hu": "Vasylkiv" + }, + "lat": "50.17387", + "lon": "30.32158", + "id": 337527490, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Красный Ключ", + "enName": "Krasny Klyuch", + "names": { + "tt": "Красный Ключ", + "ja": "クラスヌイ・クリューチ" + }, + "lat": "55.68249", + "lon": "51.81914", + "id": 585272830, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + } + ] +} \ No newline at end of file diff --git a/OsmAnd-java/src/test/resources/search/street_lenina_30.json b/OsmAnd-java/src/test/resources/search/street_lenina_30.json new file mode 100644 index 0000000000..2c510ea1e0 --- /dev/null +++ b/OsmAnd-java/src/test/resources/search/street_lenina_30.json @@ -0,0 +1,8626 @@ +{ + "settings": { + "lat": "55.28666", + "lon": "52.00558", + "radiusLevel": 1, + "totalLimit": -1, + "lang": "", + "transliterateIfMissing": false, + "emptyQueryAllowed": false, + "sortByName": false + }, + "phrase": "ленина 30", + "results": [ + "30А, улица Ленина, Заинск", + "30Б, улица Ленина, Заинск", + "30, улица Ленина, Сарманово", + "30, улица Ленина, Большое Афанасово", + "30, улица Ленина, Альметьевск", + "30А, улица Ленина, Альметьевск", + "улица Ленина, Заинск", + "улица Ленина, Аксарино", + "улица Ленина, Светлое Озеро" + ], + "amenities": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.26804", + "lon": "50.85634", + "id": 712954141, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "улица Ленина", + "lat": "55.25628", + "lon": "51.75138", + "id": 1168759757, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "surface_gravel": "gravel", + "bridge_car": "yes" + } + }, + { + "name": "Дом-музей В.И.Ленина", + "lat": "55.78690", + "lon": "49.13873", + "id": 345097079, + "subType": "museum", + "type": "tourism" + }, + { + "name": "Дом-музей В.И.Ленина", + "lat": "55.78690", + "lon": "49.13873", + "id": 345097079, + "subType": "building", + "type": "man_made" + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.33029", + "lon": "50.80344", + "id": 714393277, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes", + "ref": "16К-1014" + } + }, + { + "name": "Ленина 148", + "lat": "56.34420", + "lon": "50.23104", + "id": 10550243242, + "subType": "wilderness_hut", + "type": "tourism" + }, + { + "name": "совхоза имени Ленина", + "enName": "Sovkhoza imeni Lenina", + "names": { + "ru": "совхоза имени Ленина" + }, + "lat": "55.58691", + "lon": "37.73102", + "id": -627450, + "subType": "town", + "type": "administrative", + "additionalInfo": { + "population": "4742" + } + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.30894", + "lon": "50.10678", + "id": 346283479, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.51206", + "lon": "51.81751", + "id": 482839291, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "улица Ленина", + "lat": "54.89796", + "lon": "52.28482", + "id": 9047976566, + "subType": "clock", + "type": "tourism", + "additionalInfo": { + "date_yes": "yes", + "support_pole": "pole", + "display_digital_yes": "yes", + "visibility_street": "street", + "start_date": "2016" + } + }, + { + "name": "улица Ленина", + "lat": "54.89796", + "lon": "52.28482", + "id": 9047976566, + "subType": "monitoring_station", + "type": "man_made", + "additionalInfo": { + "date_yes": "yes", + "support_pole": "pole", + "display_digital_yes": "yes", + "visibility_street": "street", + "start_date": "2016" + } + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.21664", + "lon": "48.36718", + "id": 311139765, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.98256", + "lon": "50.38562", + "id": 603647995, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "ДК им.Ленина", + "names": { + "tt": "Ленин исемендәге мәдәният һәм ял комплексы" + }, + "lat": "55.85446", + "lon": "49.08569", + "id": 1981869798, + "subType": "public_transport_platform", + "type": "transportation", + "additionalInfo": { + "route_bus_ref": "6, 18, 42, 60, 76", + "operator": "ПАТП-2, ПАТП-4" + } + }, + { + "name": "Парк «Крылья Советов»", + "names": { + "tt": "«Крылья Советов» паркы", + "ru": "Парк «Крылья Советов»" + }, + "lat": "55.85330", + "lon": "49.09005", + "id": 81482207, + "subType": "park", + "type": "entertainment", + "additionalInfo": { + "wikipedia": "http://ru.wikipedia.org/wiki/Крылья Советов (парк)", + "old_name": "Парк Ленина" + } + }, + { + "name": "Культурно-досуговый комплекс им. В.И.Ленина", + "lat": "55.85390", + "lon": "49.08687", + "id": 145151087, + "subType": "community_centre", + "type": "entertainment", + "additionalInfo": { + "website": "https://vk.com/kdklenin" + } + }, + { + "name": "Культурно-досуговый комплекс им. В.И.Ленина", + "lat": "55.85390", + "lon": "49.08687", + "id": 145151087, + "subType": "building", + "type": "man_made", + "additionalInfo": { + "website": "https://vk.com/kdklenin" + } + }, + { + "name": "Ленина", + "lat": "55.83146", + "lon": "48.66248", + "id": 899597590, + "subType": "public_transport_stop_position", + "type": "transportation" + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "ru": "улица Ленина", + "be": "вулiца Ленiна", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.51247", + "lon": "52.99594", + "id": 620696879, + "subType": "bridge", + "type": "man_made", + "additionalInfo": { + "bridge_car": "yes" + } + }, + { + "name": "НПО им. Ленина", + "lat": "55.86587", + "lon": "48.86088", + "id": 4776241786, + "subType": "suburb", + "type": "administrative" + }, + { + "name": "Ул Ленина", + "lat": "55.93939", + "lon": "52.25632", + "id": 10608626446, + "subType": "bus_stop", + "type": "transportation" + }, + { + "name": "НПО им. Ленина", + "lat": "55.86505", + "lon": "48.86116", + "id": 116563497, + "subType": "suburb", + "type": "administrative", + "additionalInfo": { + "rural": "rural" + } + }, + { + "name": "НПО им. Ленина", + "lat": "55.86505", + "lon": "48.86116", + "id": 116563497, + "subType": "residential", + "type": "administrative", + "additionalInfo": { + "rural": "rural" + } + }, + { + "name": "Леніна", + "enName": "Lenina", + "names": { + "ru": "Ленина", + "uk": "Леніна" + }, + "lat": "48.43517", + "lon": "39.14890", + "id": -707666, + "subType": "town", + "type": "administrative", + "additionalInfo": { + "population": "1083" + } + }, + { + "name": "Санаторий имени В.И. Ленина", + "lat": "54.59147", + "lon": "48.40525", + "id": 399567309, + "subType": "resort", + "type": "tourism", + "additionalInfo": { + "sanatorium": "sanatorium", + "operator": "ОАО \"Ульяновсккурорт\"" + } + }, + { + "name": "ДК им.Ленина", + "names": { + "tt": "Ленин исемендәге мәдәният һәм ял комплексы" + }, + "lat": "55.85434", + "lon": "49.08668", + "id": 1981869822, + "subType": "public_transport_platform", + "type": "transportation", + "additionalInfo": { + "route_bus_ref": "42, 93", + "operator": "ПАТП-4" + } + }, + { + "name": "Парк Ленина", + "lat": "56.18713", + "lon": "50.89041", + "id": 705187927, + "subType": "park", + "type": "entertainment" + } + ], + "cities": [ + { + "name": "Тараща", + "enName": "Tarascha", + "names": { + "de": "Taraschtscha", + "ru": "Тараща", + "uk": "Тараща", + "prefix": "місто", + "pl": "Taraszcza" + }, + "lat": "49.55550", + "lon": "30.50234", + "id": 620750304, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Сарманово", + "enName": "Sarmanovo", + "names": { + "tt": "Сарман", + "de": "Sarmanowo", + "ru": "Сарманово", + "ja": "サルマノヴォ" + }, + "lat": "55.25225", + "lon": "52.58872", + "id": 337839105, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.24364", + "lon": "52.57943", + "id": 1777, + "buildings": [ + { + "name": "1", + "lat": "55.24647", + "lon": "52.58063" + }, + { + "name": "2В", + "lat": "55.24580", + "lon": "52.58254" + }, + { + "name": "12А", + "lat": "55.24959", + "lon": "52.58672" + }, + { + "name": "17", + "lat": "55.24952", + "lon": "52.58473" + }, + { + "name": "20", + "lat": "55.25097", + "lon": "52.58722" + }, + { + "name": "22", + "lat": "55.25134", + "lon": "52.58775" + }, + { + "name": "24", + "lat": "55.25156", + "lon": "52.58810" + }, + { + "name": "26", + "lat": "55.25185", + "lon": "52.58900" + }, + { + "name": "28Б", + "lat": "55.25162", + "lon": "52.59093" + }, + { + "name": "28Б", + "lat": "55.25192", + "lon": "52.59042" + }, + { + "name": "30", + "lat": "55.25225", + "lon": "52.58949" + }, + { + "name": "31", + "lat": "55.25155", + "lon": "52.58679" + }, + { + "name": "32", + "lat": "55.25298", + "lon": "52.58996" + }, + { + "name": "33", + "lat": "55.25203", + "lon": "52.58741" + }, + { + "name": "34", + "lat": "55.25328", + "lon": "52.59018" + }, + { + "name": "35", + "lat": "55.25260", + "lon": "52.58801" + }, + { + "name": "37", + "lat": "55.25320", + "lon": "52.58840" + }, + { + "name": "40", + "lat": "55.25361", + "lon": "52.59050", + "postcode": "423350" + }, + { + "name": "42", + "lat": "55.25394", + "lon": "52.59091", + "postcode": "423350" + }, + { + "name": "44", + "lat": "55.25435", + "lon": "52.59149", + "postcode": "423350" + }, + { + "name": "46", + "lat": "55.25449", + "lon": "52.59181", + "postcode": "423350" + }, + { + "name": "48", + "lat": "55.25470", + "lon": "52.59190" + }, + { + "name": "50", + "lat": "55.25491", + "lon": "52.59228" + }, + { + "name": "52", + "lat": "55.25532", + "lon": "52.59275" + }, + { + "name": "58", + "lat": "55.25519", + "lon": "52.59449" + }, + { + "name": "60", + "lat": "55.25554", + "lon": "52.59404" + }, + { + "name": "62", + "lat": "55.25602", + "lon": "52.59359" + }, + { + "name": "63", + "lat": "55.25674", + "lon": "52.59177" + }, + { + "name": "65", + "lat": "55.25629", + "lon": "52.59282" + } + ], + "intersectedStreets": [ + { + "name": "улица Хайруллина", + "lat": "55.23851", + "lon": "52.57400" + }, + { + "name": "улица Рафикова", + "lat": "55.23939", + "lon": "52.57497" + }, + { + "name": "улица Татарстана", + "names": { + "tt": "Татарстан урамы" + }, + "lat": "55.24022", + "lon": "52.57587" + }, + { + "name": "улица Х. Туфана", + "lat": "55.24104", + "lon": "52.57673" + }, + { + "name": "улица З. Хасана", + "lat": "55.24187", + "lon": "52.57756" + }, + { + "name": "улица М. Тинчурина", + "lat": "55.24281", + "lon": "52.57855" + }, + { + "name": "улица Гаяза Исхаки", + "lat": "55.24364", + "lon": "52.57943" + }, + { + "name": "Советская улица", + "lat": "55.24519", + "lon": "52.58100" + }, + { + "name": "улица Строителей", + "lat": "55.24686", + "lon": "52.58256" + }, + { + "name": "улица Яруллина", + "lat": "55.24874", + "lon": "52.58439" + }, + { + "name": "улица Терешковой", + "lat": "55.25358", + "lon": "52.59007" + }, + { + "name": "улица Мусы Джалиля", + "lat": "55.26035", + "lon": "52.60063" + }, + { + "name": "улица Ямашева", + "lat": "55.26347", + "lon": "52.60303" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Богатые Сабы", + "enName": "Bogatye Saby", + "names": { + "tt": "Байлар Сабасы", + "ru": "Богатые Сабы", + "ja": "ボガートィエ・サブィ" + }, + "lat": "56.01062", + "lon": "50.44677", + "id": 701847474, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.01590", + "lon": "50.46038", + "id": 8825 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Прип’ять", + "enName": "Pripyat", + "names": { + "de": "Prypjat", + "no": "Pripjat", + "be": "Прып'яць", + "fi": "Prypjat", + "ru": "Припять", + "pt": "Pripyat", + "bg": "Припя̀т", + "prefix": "місто", + "lt": "Pripetė", + "hr": "Prėpetė", + "fr": "Pripiat", + "hu": "Pripjaty", + "uk": "Прип’ять", + "sk": "Pripjať", + "sl": "Pripjat", + "id": "Prypiat", + "pam": "Prypiat", + "ca": "Pripyat", + "sr": "Припјат", + "sv": "Pripjat", + "ko": "프리피야티", + "eo": "Pripjat", + "it": "Pripjat", + "es": "Prípiat", + "zh": "普里皮亚特", + "et": "Prõpjat", + "cs": "Pripjať", + "ja": "プリピャチ", + "pl": "Prypeć", + "da": "Prypiat", + "ro": "Pripiat", + "nl": "Prypjat" + }, + "lat": "51.40613", + "lon": "30.05711", + "id": 127835001, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Актаныш", + "enName": "Aktanysh", + "names": { + "tt": "Актаныш", + "ru": "Актаныш", + "ja": "アクタヌィシ" + }, + "lat": "55.72218", + "lon": "54.05773", + "id": 606106631, + "type": "TOWN", + "listOfStreets": [ + { + "name": "проспект Ленина", + "lat": "55.72025", + "lon": "54.06795", + "id": 681 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Баришівка", + "enName": "Baryshivka", + "names": { + "de": "Baryschiwka", + "ru": "Барышевка", + "uk": "Баришівка", + "prefix": "селище міського типу", + "pl": "Baryszówka" + }, + "lat": "50.36453", + "lon": "31.32567", + "id": 337523450, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Чорнобиль", + "enName": "Chornobyl", + "names": { + "nn": "Tsjernobyl", + "de": "Tschornobyl", + "no": "Tsjernobyl", + "be": "Чарнобыль", + "fi": "Tšernobyl", + "ru": "Чернобыль", + "pt": "Chernobyl", + "prefix": "місто", + "lt": "Černobylis", + "hr": "Černobil", + "fr": "Tchernobyl", + "hu": "Csernobil", + "yi": "טשערנאבל", + "oc": "Chornobyl", + "uk": "Чорнобиль", + "sk": "Černobyľ", + "sl": "Černobil", + "id": "Chernobyl", + "ca": "Txernòbil", + "scn": "Chernobyl", + "sr": "Černobilj", + "sv": "Tjernobyl", + "ko": "초르노빌", + "af": "Černobylis", + "ms": "Chernobyl", + "eo": "Ĉernobilo", + "it": "Černobyl", + "es": "Chernóbil", + "zh": "切尔诺贝利", + "et": "Tšornobõl", + "cs": "Černobyl", + "eu": "Txernobyl", + "ar": "تشيرنوبيل", + "vi": "Chernobyl", + "lb": "Tschernobyl", + "ja": "チョルノーブィリ", + "pl": "Czarnobyl", + "da": "Tjernobyl", + "he": "צ'רנוביל", + "ro": "Cernobîl", + "nl": "Tsjernobyl", + "tr": "Çernobil" + }, + "lat": "51.27053", + "lon": "30.21944", + "id": 127834997, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "НПО им. Ленина", + "lat": "55.86587", + "lon": "48.86088", + "id": 2388120893, + "type": "SUBURB", + "listOfStreets": [], + "matchCity": 1 + }, + { + "name": "Узин", + "enName": "Uzyn", + "names": { + "ru": "Узин", + "uk": "Узин", + "prefix": "місто", + "eo": "Uzin", + "fr": "Ouzyn", + "pl": "Uzyn" + }, + "lat": "49.82847", + "lon": "30.41973", + "id": 337543666, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Камские Поляны", + "enName": "Kamskiye Polyani", + "names": { + "tt": "Кама Аланы", + "de": "Kamskije Poljany", + "ru": "Камские Поляны", + "ja": "カムスキエ・ポリャヌィ" + }, + "lat": "55.42550", + "lon": "51.41016", + "id": 587614698, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Малая Шильна", + "names": { + "tt": "Кече Шилнә" + }, + "lat": "55.80199", + "lon": "52.53396", + "id": 593611093, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.80198", + "lon": "52.53385", + "id": 8882, + "buildings": [ + { + "name": "10", + "lat": "55.80697", + "lon": "52.53375" + }, + { + "name": "23", + "lat": "55.80428", + "lon": "52.53360" + } + ], + "intersectedStreets": [ + { + "name": "Солнечная улица", + "lat": "55.79622", + "lon": "52.53536" + }, + { + "name": "Родниковая улица", + "lat": "55.79746", + "lon": "52.53497" + }, + { + "name": "Центральная улица", + "lat": "55.80198", + "lon": "52.53385" + }, + { + "name": "улица Карла Маркса", + "lat": "55.80718", + "lon": "52.53402" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Малая Цильна", + "names": { + "tt": "Кече Чынлы" + }, + "lat": "54.76570", + "lon": "47.86951", + "id": 761955165, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.76848", + "lon": "47.85664", + "id": 10999 + } + ], + "matchStreet": 1 + }, + { + "name": "Бабинці", + "enName": "Babyntsi", + "names": { + "ru": "Бабинцы", + "uk": "Бабинці", + "prefix": "селище міського типу", + "pl": "Babyntsi" + }, + "lat": "50.64241", + "lon": "30.02907", + "id": 1668578377, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Славутич", + "enName": "Slavutych", + "names": { + "de": "Slawutytsch", + "ru": "Славутич", + "uk": "Славутич", + "prefix": "місто", + "lt": "Slavutičius", + "pl": "Sławutycz" + }, + "lat": "51.52014", + "lon": "30.75623", + "id": 337507300, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Иннополис", + "enName": "Innopolis", + "names": { + "tt": "Иннополис", + "ru": "Иннополис" + }, + "lat": "55.75226", + "lon": "48.74458", + "id": 2294499518, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Измери", + "names": { + "tt": "Әҗмәр" + }, + "lat": "55.13665", + "lon": "49.53504", + "id": 787285204, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "55.13857", + "lon": "49.53388", + "id": 11882 + } + ], + "matchStreet": 1 + }, + { + "name": "Лащ-Таяба", + "names": { + "cv": "Лаш Таяпа", + "ru": "Лащ-Таяба" + }, + "lat": "55.03009", + "lon": "47.99935", + "id": 795358551, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.03053", + "lon": "47.99341", + "id": 11865 + } + ], + "matchStreet": 1 + }, + { + "name": "Вишневе", + "enName": "Vyshneve", + "names": { + "de": "Wyschnewe", + "ru": "Вишнёвое", + "uk": "Вишневе", + "prefix": "місто", + "pl": "Wysznewe", + "hu": "Vyshneve" + }, + "lat": "50.39175", + "lon": "30.36791", + "id": 36507630, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Боярка", + "enName": "Boiarka", + "names": { + "ru": "Боярка", + "uk": "Боярка", + "prefix": "місто", + "pl": "Bojarka", + "hu": "Boiarka" + }, + "lat": "50.33567", + "lon": "30.28476", + "id": 36507632, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Васильево", + "enName": "Vasilyevo", + "names": { + "tt": "Васильево", + "de": "Wassiljewo", + "ru": "Васильево", + "ja": "ヴァシーリエヴォ" + }, + "lat": "55.83729", + "lon": "48.67924", + "id": 336524045, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.83157", + "lon": "48.65047", + "id": 71 + } + ], + "matchStreet": 1 + }, + { + "name": "Волжск", + "enName": "Volzhsk", + "names": { + "tt": "Волжск", + "de": "Wolschsk", + "ru": "Волжск", + "chm": "Юлсер-Ола", + "eo": "Volĵsk", + "it": "Volžsk", + "fr": "Voljsk", + "cs": "Volžsk", + "cv": "Волжск", + "uk": "Волзьк", + "mhr": "Юлсер-Ола", + "ja": "ヴォルシスク", + "pl": "Wołżsk", + "tr": "Voljsk" + }, + "lat": "55.86366", + "lon": "48.36186", + "id": 336523790, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.86402", + "lon": "48.35956", + "id": 14 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Бориспіль", + "enName": "Boryspil", + "names": { + "de": "Boryspil", + "ru": "Борисполь", + "uk": "Бориспіль", + "prefix": "місто", + "eo": "Borispilo", + "fr": "Boryspil", + "pl": "Boryspol", + "hu": "Boryspil" + }, + "lat": "50.35121", + "lon": "30.95076", + "id": 26150796, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Клавдієво-Тарасове", + "enName": "Klavdiievo-Tarasove", + "names": { + "ru": "Клавдиево-Тарасово", + "uk": "Клавдієво-Тарасове", + "prefix": "селище міського типу", + "pl": "Klavdiievo-Tarasove" + }, + "lat": "50.58414", + "lon": "30.00950", + "id": 337519388, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Гребінки", + "enName": "Hrebinky", + "names": { + "ru": "Гребёнки", + "uk": "Гребінки", + "prefix": "селище міського типу", + "pl": "Hrebinky" + }, + "lat": "49.95346", + "lon": "30.17635", + "id": 337539356, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Большое Мереткозино", + "names": { + "tt": "Олы Мәрәтхуҗа" + }, + "lat": "55.23953", + "lon": "49.07874", + "id": 723847137, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "55.23875", + "lon": "49.08286", + "id": 11838 + } + ], + "matchStreet": 1 + }, + { + "name": "Чистополь", + "enName": "Chistopol", + "names": { + "tt": "Чистай", + "de": "Tschistopol", + "cv": "Чистай", + "ru": "Чистополь", + "ja": "チストポリ" + }, + "lat": "55.37148", + "lon": "50.63674", + "id": 295864677, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.37059", + "lon": "50.64558", + "id": 234 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Чупаево", + "names": { + "tt": "Чупай" + }, + "lat": "54.79709", + "lon": "52.13289", + "id": 867304315, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.79555", + "lon": "52.12682", + "id": 6365, + "intersectedStreets": [ + { + "name": "улица Кирова", + "names": { + "tt": "Киров урамы" + }, + "lat": "54.79539", + "lon": "52.12725" + }, + { + "name": "Советская улица", + "lat": "54.79425", + "lon": "52.13004" + }, + { + "name": "улица Тукая", + "lat": "54.79326", + "lon": "52.13470" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Малые Кабаны", + "names": { + "tt": "Кече Кабан" + }, + "lat": "55.65275", + "lon": "49.28042", + "id": 760312409, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.64963", + "lon": "49.27699", + "id": 10859 + } + ], + "matchStreet": 1 + }, + { + "name": "Ірпінь", + "enName": "Irpin", + "names": { + "de": "Irpin", + "ru": "Ирпень", + "uk": "Ірпінь", + "prefix": "місто", + "fr": "Irpine", + "pl": "Irpień", + "hu": "Irpin" + }, + "lat": "50.51665", + "lon": "30.25004", + "id": 36505064, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Починок Сутер", + "names": { + "tt": "Пүчинкә-Сутер" + }, + "lat": "56.06771", + "lon": "51.02679", + "id": 797048460, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.06966", + "lon": "51.03001", + "id": 6864 + } + ], + "matchStreet": 1 + }, + { + "name": "Заинск", + "enName": "Zainsk", + "names": { + "tt": "Зәй", + "de": "Sainsk", + "ru": "Заинск", + "ja": "ザインスク" + }, + "lat": "55.28665", + "lon": "52.00561", + "id": 337839081, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.28712", + "lon": "51.99900", + "id": 730, + "buildings": [ + { + "name": "1", + "lat": "55.28849", + "lon": "52.00003", + "postcode": "423520" + }, + { + "name": "1А", + "lat": "55.29061", + "lon": "52.00093", + "postcode": "423520" + }, + { + "name": "1Б", + "lat": "55.29008", + "lon": "52.00082", + "postcode": "423520" + }, + { + "name": "1В", + "lat": "55.28956", + "lon": "52.00072" + }, + { + "name": "1Г", + "lat": "55.28980", + "lon": "52.00022", + "postcode": "423520" + }, + { + "name": "2", + "lat": "55.28615", + "lon": "51.99898", + "postcode": "423520" + }, + { + "name": "2А", + "lat": "55.28889", + "lon": "51.99926", + "postcode": "423520" + }, + { + "name": "2Б", + "lat": "55.28988", + "lon": "51.99958" + }, + { + "name": "2Г", + "lat": "55.28738", + "lon": "51.99911" + }, + { + "name": "2Д", + "lat": "55.28712", + "lon": "51.99900" + }, + { + "name": "2Д", + "lat": "55.28713", + "lon": "51.99900" + }, + { + "name": "3", + "lat": "55.28769", + "lon": "52.00014" + }, + { + "name": "4", + "lat": "55.28574", + "lon": "51.99887", + "postcode": "423520" + }, + { + "name": "5", + "lat": "55.28701", + "lon": "51.99973" + }, + { + "name": "6", + "lat": "55.28530", + "lon": "51.99878", + "postcode": "423520" + }, + { + "name": "6А", + "lat": "55.28503", + "lon": "51.99799" + }, + { + "name": "7", + "lat": "55.28578", + "lon": "51.99947", + "postcode": "423520" + }, + { + "name": "7А", + "lat": "55.28545", + "lon": "52.00011", + "postcode": "423520" + }, + { + "name": "7Б", + "lat": "55.28551", + "lon": "51.99945", + "postcode": "423520" + }, + { + "name": "8", + "lat": "55.28470", + "lon": "51.99859", + "postcode": "423520" + }, + { + "name": "9", + "lat": "55.28487", + "lon": "51.99930", + "postcode": "423520" + }, + { + "name": "9А", + "lat": "55.28508", + "lon": "52.00005" + }, + { + "name": "9Б", + "lat": "55.28364", + "lon": "51.99941" + }, + { + "name": "9Б", + "lat": "55.28354", + "lon": "51.99913", + "postcode": "423520" + }, + { + "name": "10", + "lat": "55.28427", + "lon": "51.99855", + "postcode": "423520" + }, + { + "name": "10А", + "lat": "55.28413", + "lon": "51.99821" + }, + { + "name": "10Б", + "lat": "55.28436", + "lon": "51.99818" + }, + { + "name": "11", + "lat": "55.28221", + "lon": "51.99876", + "postcode": "423520" + }, + { + "name": "11А", + "lat": "55.28189", + "lon": "51.99941" + }, + { + "name": "12", + "lat": "55.28384", + "lon": "51.99846", + "postcode": "423520" + }, + { + "name": "13", + "lat": "55.28167", + "lon": "51.99868", + "postcode": "423520" + }, + { + "name": "14", + "lat": "55.28331", + "lon": "51.99838", + "postcode": "423520" + }, + { + "name": "15", + "lat": "55.28129", + "lon": "51.99857", + "postcode": "423520" + }, + { + "name": "15А", + "lat": "55.28151", + "lon": "51.99934" + }, + { + "name": "16А", + "lat": "55.28289", + "lon": "51.99814" + }, + { + "name": "17", + "lat": "55.28023", + "lon": "51.99823", + "postcode": "423520" + }, + { + "name": "18", + "lat": "55.28245", + "lon": "51.99823", + "postcode": "423520" + }, + { + "name": "18А", + "lat": "55.28217", + "lon": "51.99743" + }, + { + "name": "19", + "lat": "55.27951", + "lon": "51.99827", + "postcode": "423520" + }, + { + "name": "19А", + "lat": "55.27863", + "lon": "51.99808", + "postcode": "423520" + }, + { + "name": "19А", + "lat": "55.27892", + "lon": "51.99821" + }, + { + "name": "19Б", + "lat": "55.27912", + "lon": "51.99816", + "postcode": "423520" + }, + { + "name": "20", + "lat": "55.28185", + "lon": "51.99810", + "postcode": "423520" + }, + { + "name": "21", + "lat": "55.27742", + "lon": "51.99795" + }, + { + "name": "22", + "lat": "55.28143", + "lon": "51.99801" + }, + { + "name": "23", + "lat": "55.27684", + "lon": "51.99771" + }, + { + "name": "23А", + "lat": "55.27714", + "lon": "51.99893" + }, + { + "name": "24", + "lat": "55.28099", + "lon": "51.99793" + }, + { + "name": "25", + "lat": "55.27600", + "lon": "51.99754" + }, + { + "name": "25А", + "lat": "55.27632", + "lon": "51.99866" + }, + { + "name": "26", + "lat": "55.28037", + "lon": "51.99778" + }, + { + "name": "26А", + "lat": "55.27968", + "lon": "51.99715" + }, + { + "name": "26Г/1", + "lat": "55.27982", + "lon": "51.99602" + }, + { + "name": "26Г/2", + "lat": "55.28017", + "lon": "51.99600", + "postcode": "423520" + }, + { + "name": "27", + "lat": "55.27534", + "lon": "51.99859" + }, + { + "name": "27А", + "lat": "55.27566", + "lon": "52.00093" + }, + { + "name": "27Б", + "lat": "55.27607", + "lon": "52.00200" + }, + { + "name": "28", + "lat": "55.27761", + "lon": "51.99718" + }, + { + "name": "28А", + "lat": "55.27859", + "lon": "51.99737" + }, + { + "name": "29", + "lat": "55.27486", + "lon": "51.99735" + }, + { + "name": "29А", + "lat": "55.27511", + "lon": "51.99840" + }, + { + "name": "29Б", + "lat": "55.27492", + "lon": "51.99930" + }, + { + "name": "30Б", + "lat": "55.27657", + "lon": "51.99698" + }, + { + "name": "30А", + "lat": "55.27579", + "lon": "51.99679", + "postcode": "423520" + }, + { + "name": "31", + "lat": "55.27457", + "lon": "51.99833" + }, + { + "name": "32", + "lat": "55.27589", + "lon": "51.99524" + }, + { + "name": "34", + "lat": "55.27500", + "lon": "51.99664" + }, + { + "name": "34А", + "lat": "55.27530", + "lon": "51.99503" + }, + { + "name": "36", + "lat": "55.27461", + "lon": "51.99533" + } + ], + "intersectedStreets": [ + { + "name": "проспект Нефтяников", + "lat": "55.28642", + "lon": "51.99932" + }, + { + "name": "улица Лобачевского", + "lat": "55.28428", + "lon": "51.99887" + }, + { + "name": "улица Островского", + "lat": "55.28356", + "lon": "51.99872" + }, + { + "name": "улица Крупской", + "lat": "55.28284", + "lon": "51.99857" + }, + { + "name": "переулок Строителей", + "lat": "55.28265", + "lon": "51.99853" + }, + { + "name": "Комсомольская улица", + "lat": "55.28069", + "lon": "51.99812" + }, + { + "name": "Казанская улица", + "names": { + "tt": "Казан урамы", + "tt-lat": "Qazan uramı" + }, + "lat": "55.28885", + "lon": "51.99975" + }, + { + "name": "улица Никифорова", + "lat": "55.27815", + "lon": "51.99763" + }, + { + "name": "улица Гагарина", + "names": { + "tt": "Гагарин урамы" + }, + "lat": "55.27597", + "lon": "51.99720" + }, + { + "name": "улица Надежды", + "lat": "55.27431", + "lon": "51.99685" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Яготин", + "enName": "Yahotyn", + "names": { + "de": "Jahotyn", + "ru": "Яготин", + "uk": "Яготин", + "prefix": "місто", + "pl": "Jagodzin" + }, + "lat": "50.27589", + "lon": "31.76349", + "id": 337525267, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Немішаєве", + "enName": "Nemishaieve", + "names": { + "ru": "Немешаево", + "uk": "Немішаєве", + "prefix": "селище міського типу", + "fr": "Nemishayeve" + }, + "lat": "50.56801", + "lon": "30.10151", + "id": 337519630, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Кагарлик", + "enName": "Kaharlyk", + "names": { + "de": "Kaharlyk", + "ru": "Кагарлык", + "uk": "Кагарлик", + "prefix": "місто", + "pl": "Kaharłyk" + }, + "lat": "49.86507", + "lon": "30.82268", + "id": 1819209275, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Буденовец", + "lat": "55.35224", + "lon": "51.14801", + "id": 19254633849, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.35043", + "lon": "51.15277", + "id": 10672, + "intersectedStreets": [ + { + "name": "улица Кирова", + "lat": "55.35478", + "lon": "51.15217" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Маметьево", + "names": { + "tt": "Мəмəт" + }, + "lat": "54.81426", + "lon": "52.08193", + "id": 867306598, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.81923", + "lon": "52.08590", + "id": 6914, + "intersectedStreets": [ + { + "name": "улица Шайдулина", + "lat": "54.81661", + "lon": "52.08882" + }, + { + "name": "Советская улица", + "lat": "54.81721", + "lon": "52.08775" + }, + { + "name": "улица Октября", + "lat": "54.81923", + "lon": "52.08590" + }, + { + "name": "улица Калинина", + "lat": "54.81973", + "lon": "52.08423" + }, + { + "name": "улица Куйбышева", + "lat": "54.81974", + "lon": "52.08234" + }, + { + "name": "улица Мириханова", + "lat": "54.82012", + "lon": "52.07936" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Шимкусы", + "lat": "55.54700", + "lon": "47.95491", + "id": 4058603, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.54616", + "lon": "47.94449", + "id": 11767 + } + ], + "matchStreet": 1 + }, + { + "name": "Муслюмово", + "enName": "Muslyumovo", + "names": { + "tt": "Мөслим", + "ru": "Муслюмово", + "ja": "ムスリュモヴォ" + }, + "lat": "55.30593", + "lon": "53.19415", + "id": 337839100, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Кудаш", + "names": { + "tt": "Кодаш" + }, + "lat": "56.13616", + "lon": "49.01430", + "id": 825450987, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "56.13677", + "lon": "49.01705", + "id": 8539 + } + ], + "matchStreet": 1 + }, + { + "name": "Менделеевск", + "enName": "Mendeleyevsk", + "names": { + "tt": "Менделеевск", + "de": "Mendelejewsk", + "ru": "Менделеевск", + "ja": "メンデリェーエフスク" + }, + "lat": "55.88787", + "lon": "52.30844", + "id": 321322750, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.91167", + "lon": "52.29029", + "id": 9263 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Нижний Услон", + "enName": "Nignij Uslon", + "names": { + "tt": "Түбән Ослан", + "ru": "Нижний Услон" + }, + "lat": "55.69507", + "lon": "48.96694", + "id": 703197619, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "55.70412", + "lon": "48.97227", + "id": 12012 + } + ], + "matchStreet": 1 + }, + { + "name": "Верхний Услон", + "enName": "Verhnij Uslon", + "names": { + "tt": "Югары Ослан", + "de": "Werchni Uslonn", + "ru": "Верхний Услон", + "ja": "ヴェルフニー・ウスロン", + "ba": "Үрге Ослан" + }, + "lat": "55.76855", + "lon": "48.98293", + "id": 703197622, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.77954", + "lon": "48.97984", + "id": 6158 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Зеленодольск", + "enName": "Zelenodol'sk", + "names": { + "tt": "Яшел Үзән", + "de": "Selenodolsk", + "ru": "Зеленодольск", + "ko": "젤레노돌스크", + "uk": "Зеленодольськ", + "mhr": "Парат", + "ja": "ゼレノドリスク", + "eo": "Zelenodolsk", + "fa": "زلنودولسک، روسیه", + "pl": "Zielonodolsk", + "ro": "Zelenodolsk", + "sr": "Зеленодољск" + }, + "lat": "55.84776", + "lon": "48.50970", + "id": 336524051, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.84548", + "lon": "48.51730", + "id": 504 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Вятские Поляны", + "enName": "Vyatskiye Polyany", + "names": { + "tt": "Нократ Аланы", + "de": "Wjatskije Poljany", + "ja": "ヴャーツキエ・ポリャーヌィ" + }, + "lat": "56.23101", + "lon": "51.02939", + "id": 3237869, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.21668", + "lon": "51.03392", + "id": 9799 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Чирша", + "names": { + "tt": "Чыршы" + }, + "lat": "56.08640", + "lon": "49.22040", + "id": 816440693, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Ленина", + "lat": "56.08601", + "lon": "49.18292", + "id": 867 + } + ], + "matchStreet": 1 + }, + { + "name": "Глеваха", + "enName": "Hlevakha", + "names": { + "kk": "Glevaha", + "de": "Hlewacha", + "ceb": "Hlevakha", + "be": "Глэваха", + "ru": "Глеваха", + "prefix": "селище міського типу", + "fr": "Hlevakha", + "cs": "Hlevacha", + "ar": "هليفاخا", + "hy": "Հլեվահա", + "uk": "Глеваха", + "pl": "Hłewacha", + "tr": "Glevaha", + "rmy": "Hlevaha" + }, + "lat": "50.25968", + "lon": "30.30591", + "id": 337525824, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Казань", + "enName": "Kazan", + "names": { + "tt": "Казан", + "de": "Kasan", + "hi": "काज़ान", + "fi": "Kazan", + "ru": "Казань", + "pt": "Cazã", + "lt": "Kazanė", + "lv": "Kazaņa", + "fr": "Kazan", + "hu": "Kazany", + "hy": "Կազան", + "oc": "Kazan", + "ka": "ყაზანი", + "uk": "Казань", + "sk": "Kazaň", + "sr": "Казањ", + "kn": "ಕಾಜಾ಼ನ್", + "os": "Хъазан", + "chm": "Озаҥ", + "it": "Kazan'", + "kv": "Казан", + "es": "Kazán", + "zh": "喀山", + "cs": "Kazaň", + "ar": "قازان", + "cv": "Хусан", + "mhr": "Озаҥ", + "ja": "カザン", + "pl": "Kazań", + "da": "Kazan", + "he": "קאזאן", + "ro": "Kazan", + "nl": "Kazan", + "ba": "Ҡаҙан", + "udm": "Кузон" + }, + "lat": "55.78235", + "lon": "49.12423", + "id": 27504067, + "type": "CITY", + "listOfStreets": [ + { + "name": "улица Ульянова-Ленина", + "enName": "Ulyanova-Lenina Street", + "names": { + "tt": "Ульянов-Ленин урамы", + "ru": "улица Ульянова-Ленина" + }, + "lat": "55.78637", + "lon": "49.13541", + "id": 1292 + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.88035", + "lon": "49.15122", + "id": 3396 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Лебяжье", + "names": { + "tt": "Лебяжье" + }, + "lat": "55.32639", + "lon": "50.15632", + "id": 824088896, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "ru": "улица Ленина" + }, + "lat": "55.32475", + "lon": "50.15757", + "id": 4071 + } + ], + "matchStreet": 1 + }, + { + "name": "Красная Кадка", + "names": { + "tt": "Кызыл Чапчак" + }, + "lat": "55.41651", + "lon": "51.79221", + "id": 585272708, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.41732", + "lon": "51.79011", + "id": 9827, + "buildings": [ + { + "name": "60", + "lat": "55.41483", + "lon": "51.79412" + }, + { + "name": "66", + "lat": "55.41433", + "lon": "51.79492" + } + ], + "intersectedStreets": [ + { + "name": "«Чистополь — Нижнекамск» — Красная Кадка — Верхние Челны", + "lat": "55.41961", + "lon": "51.78045" + }, + { + "name": "Пионерская улица", + "lat": "55.41997", + "lon": "51.78163" + }, + { + "name": "Двор тыкрыгы", + "lat": "55.41844", + "lon": "51.78794" + }, + { + "name": "Садовая улица", + "lat": "55.41732", + "lon": "51.79011" + }, + { + "name": "Рамазанова улица", + "lat": "55.41596", + "lon": "51.79264" + }, + { + "name": "Кооперативная улица", + "lat": "55.41475", + "lon": "51.79464" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Володарка", + "enName": "Volodarka", + "names": { + "de": "Wolodarka", + "ru": "Володарка", + "uk": "Володарка", + "prefix": "селище міського типу", + "pl": "Wołodarka" + }, + "lat": "49.52250", + "lon": "29.92805", + "id": 337556285, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старое Дрожжаное", + "enName": "Staroye Drozhzhanoye", + "names": { + "tt": "Иске Чүпрәле", + "ru": "Старое Дрожжаное", + "ja": "スターロエ・ドロジジャノエ" + }, + "lat": "54.72499", + "lon": "47.56454", + "id": 336525099, + "type": "TOWN", + "listOfStreets": [ + { + "name": "переулок Ленина", + "lat": "54.72970", + "lon": "47.55649", + "id": 7047 + }, + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.73008", + "lon": "47.55971", + "id": 7048 + }, + { + "name": "2-й переулок Ленина", + "lat": "54.72928", + "lon": "47.55312", + "id": 7073 + }, + { + "name": "3-й переулок Ленина", + "lat": "54.72663", + "lon": "47.54844", + "id": 7074 + }, + { + "name": "4-й переулок Ленина", + "lat": "54.72586", + "lon": "47.54608", + "id": 7075 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Ворзель", + "enName": "Vorzel", + "names": { + "ru": "Ворзель", + "uk": "Ворзель", + "prefix": "селище міського типу", + "pl": "Vorzel" + }, + "lat": "50.54573", + "lon": "30.15629", + "id": 337519932, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Джалиль", + "names": { + "tt": "Җәлил", + "ja": "ジャリリ" + }, + "lat": "55.02197", + "lon": "52.73899", + "id": 371194680, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.02426", + "lon": "52.73854", + "id": 5778, + "buildings": [ + { + "name": "1", + "lat": "55.02287", + "lon": "52.73862" + }, + { + "name": "2", + "lat": "55.02377", + "lon": "52.74038" + }, + { + "name": "3", + "lat": "55.02330", + "lon": "52.73824" + }, + { + "name": "4", + "lat": "55.02401", + "lon": "52.73993" + }, + { + "name": "5", + "lat": "55.02362", + "lon": "52.73777" + }, + { + "name": "6", + "lat": "55.02414", + "lon": "52.73914" + }, + { + "name": "7", + "lat": "55.02310", + "lon": "52.73725" + }, + { + "name": "8", + "lat": "55.02468", + "lon": "52.73993" + }, + { + "name": "9", + "lat": "55.02351", + "lon": "52.73680" + }, + { + "name": "10", + "lat": "55.02468", + "lon": "52.73867" + }, + { + "name": "11", + "lat": "55.02405", + "lon": "52.73738" + }, + { + "name": "12", + "lat": "55.02508", + "lon": "52.73822" + }, + { + "name": "13", + "lat": "55.02436", + "lon": "52.73691" + }, + { + "name": "14", + "lat": "55.02560", + "lon": "52.73749" + }, + { + "name": "15", + "lat": "55.02480", + "lon": "52.73654" + }, + { + "name": "15/2", + "lat": "55.02484", + "lon": "52.73691" + }, + { + "name": "16", + "lat": "55.02597", + "lon": "52.73830" + }, + { + "name": "17", + "lat": "55.02458", + "lon": "52.73560" + }, + { + "name": "18", + "lat": "55.02545", + "lon": "52.73948" + }, + { + "name": "19", + "lat": "55.02402", + "lon": "52.73622" + }, + { + "name": "21", + "lat": "55.02366", + "lon": "52.73502" + }, + { + "name": "23", + "lat": "55.02309", + "lon": "52.73579" + } + ], + "intersectedStreets": [ + { + "name": "улица Ветеранов", + "lat": "55.02276", + "lon": "52.74023" + }, + { + "name": "улица 30 лет Победы", + "lat": "55.02614", + "lon": "52.73637" + }, + { + "name": "улица Ахмадиева", + "lat": "55.02262", + "lon": "52.73985" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Шугурово", + "enName": "Shugurovo", + "names": { + "tt": "Шөгер", + "ja": "シュグロヴォ" + }, + "lat": "54.50877", + "lon": "52.13047", + "id": 779202585, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.50936", + "lon": "52.13549", + "id": 6724 + } + ], + "matchStreet": 1 + }, + { + "name": "Камышлы-Куль", + "names": { + "tt": "Камышлы Күл" + }, + "lat": "54.77764", + "lon": "53.07253", + "id": 587988771, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.77790", + "lon": "53.07214", + "id": 4498 + } + ], + "matchStreet": 1 + }, + { + "name": "Городок", + "names": { + "ru": "Городок", + "uk": "Городок", + "prefix": "селище міського типу", + "pl": "Gródek" + }, + "lat": "50.58336", + "lon": "29.47816", + "id": 6726413, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Біла Церква", + "enName": "Bila Tserkva", + "names": { + "de": "Bila Zerkwa", + "be": "Белая Царква", + "ru": "Белая Церковь", + "prefix": "місто", + "lt": "Bila Cerkva", + "eo": "Bila-Cerkva", + "fr": "Bila Tserkva", + "hu": "Bila Cerkva", + "et": "Bila Tserkva", + "cs": "Bila Cerkva", + "uk": "Біла Церква", + "pl": "Biała Cerkiew", + "ro": "Bila Țerkva", + "sr": "Била Церква" + }, + "lat": "49.80382", + "lon": "30.11170", + "id": 255259998, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старая Майна", + "enName": "Staraya Mayna", + "names": { + "ru": "Старая Майна", + "ja": "スターラヤ・マイナ" + }, + "lat": "54.61114", + "lon": "48.92349", + "id": 11135157981, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Туба", + "names": { + "tt": "Тоба" + }, + "lat": "55.46819", + "lon": "51.74410", + "id": 585272714, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.46972", + "lon": "51.74447", + "id": 10598, + "buildings": [ + { + "name": "19", + "lat": "55.47337", + "lon": "51.74342" + } + ], + "intersectedStreets": [ + { + "name": "улица Зая", + "lat": "55.46627", + "lon": "51.74625" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Дым-Тамак", + "names": { + "tt": "Димтамак" + }, + "lat": "54.52695", + "lon": "53.35881", + "id": 566546537, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.52743", + "lon": "53.35989", + "id": 563 + } + ], + "matchStreet": 1 + }, + { + "name": "Исергапово", + "names": { + "tt": "Исергәп" + }, + "lat": "54.33162", + "lon": "53.38497", + "id": 750057945, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.33273", + "lon": "53.39147", + "id": 12219 + } + ], + "matchStreet": 1 + }, + { + "name": "Высокая Гора", + "names": { + "tt": "Биектау", + "ja": "ヴイソーカヤ・ゴラー" + }, + "lat": "55.91018", + "lon": "49.30720", + "id": 704304024, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Дубъязы", + "names": { + "tt": "Дөбьяз" + }, + "lat": "56.11974", + "lon": "49.20088", + "id": 698423501, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "Ленина", + "lat": "56.12148", + "lon": "49.19356", + "id": 11793 + } + ], + "matchStreet": 1 + }, + { + "name": "Большие Яльчики", + "names": { + "cv": "Аслӑ Елчӗк", + "ru": "Большие Яльчики" + }, + "lat": "55.17187", + "lon": "48.05579", + "id": 733535693, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.16625", + "lon": "48.05624", + "id": 6274 + } + ], + "matchStreet": 1 + }, + { + "name": "Агидель", + "enName": "Agidel", + "names": { + "tt": "Агыйдел", + "ru": "Агидель", + "ja": "アギデーリ", + "ba": "Ағиҙел", + "et": "Agidel" + }, + "lat": "55.89928", + "lon": "53.93742", + "id": 251071107, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Бегишево", + "names": { + "tt": "Бигеш" + }, + "lat": "55.48721", + "lon": "52.03453", + "id": 586094745, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.48693", + "lon": "52.03743", + "id": 9484, + "buildings": [ + { + "name": "7А", + "lat": "55.48501", + "lon": "52.04438" + }, + { + "name": "10", + "lat": "55.48424", + "lon": "52.04204" + }, + { + "name": "28", + "lat": "55.48666", + "lon": "52.04213" + }, + { + "name": "90", + "lat": "55.49077", + "lon": "52.03061" + }, + { + "name": "99", + "lat": "55.48989", + "lon": "52.02859" + } + ], + "intersectedStreets": [ + { + "name": "Клубная улица", + "lat": "55.48871", + "lon": "52.03440" + }, + { + "name": "Молодёжная улица", + "lat": "55.48749", + "lon": "52.03649" + }, + { + "name": "улица Гагарина", + "lat": "55.49010", + "lon": "52.02825" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Большая Атня", + "enName": "Bolshaya Atnya", + "names": { + "tt": "Олы Әтнә", + "ru": "Большая Атня", + "ja": "ボリシャヤ・アトニャ" + }, + "lat": "56.24947", + "lon": "49.45390", + "id": 698459097, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Енабердино", + "names": { + "tt": "Енабердино" + }, + "lat": "55.97809", + "lon": "52.32820", + "id": 775959290, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.98322", + "lon": "52.33127", + "id": 12140 + } + ], + "matchStreet": 1 + }, + { + "name": "Лубяны", + "names": { + "tt": "Лубян", + "ja": "ルビャヌイ" + }, + "lat": "56.03798", + "lon": "51.39806", + "id": 797805233, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.03292", + "lon": "51.39512", + "id": 9489 + } + ], + "matchStreet": 1 + }, + { + "name": "Верхняя Ошторма", + "names": { + "tt": "Югары Оштырма" + }, + "lat": "56.08485", + "lon": "50.72480", + "id": 797012416, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "56.08551", + "lon": "50.72538", + "id": 12081 + } + ], + "matchStreet": 1 + }, + { + "name": "Болгар", + "enName": "Bolgar", + "names": { + "tt": "Болгар", + "cv": "Пӑлхар", + "ru": "Болгар", + "ja": "ボルガル" + }, + "lat": "54.97474", + "lon": "49.03020", + "id": 599924350, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.98034", + "lon": "49.03321", + "id": 469 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Челно-Вершины", + "lat": "54.41588", + "lon": "51.08582", + "id": 8519359, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старые Челны", + "lat": "55.69735", + "lon": "52.30569", + "id": 3312654093, + "type": "SUBURB", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.69949", + "lon": "52.31056", + "id": 1335, + "intersectedStreets": [ + { + "name": "Полевая улица", + "lat": "55.69823", + "lon": "52.30951" + }, + { + "name": "улица Фрунзе", + "names": { + "tt": "Фрунзе урамы" + }, + "lat": "55.69823", + "lon": "52.30951" + }, + { + "name": "улица Карла Маркса", + "names": { + "tt": "Карл Маркс урамы" + }, + "lat": "55.69994", + "lon": "52.31026" + }, + { + "name": "Красногвардейская улица", + "lat": "55.70028", + "lon": "52.31007" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Бородянка", + "enName": "Borodianka", + "names": { + "de": "Borodjanka", + "ru": "Бородянка", + "uk": "Бородянка", + "prefix": "селище міського типу", + "pl": "Borodzianka" + }, + "lat": "50.64657", + "lon": "29.92558", + "id": 295809953, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Красятичі", + "enName": "Krasiatychi", + "names": { + "de": "Krasjatytschi", + "ru": "Красятичи", + "uk": "Красятичі", + "prefix": "селище міського типу", + "pl": "Krasiatyczi" + }, + "lat": "51.07829", + "lon": "29.63779", + "id": 337512030, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Черемушка", + "names": { + "tt": "Шомыртлы" + }, + "lat": "54.96081", + "lon": "50.54108", + "id": 1071321497, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "54.96309", + "lon": "50.54505", + "id": 11100 + } + ], + "matchStreet": 1 + }, + { + "name": "Іванків", + "enName": "Ivankiv", + "names": { + "de": "Iwankiw", + "ru": "Иванков", + "uk": "Іванків", + "prefix": "селище міського типу", + "pl": "Iwanków" + }, + "lat": "50.93300", + "lon": "29.90463", + "id": 337513819, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Березняк", + "names": { + "tt": "Березняк" + }, + "lat": "56.11196", + "lon": "50.79986", + "id": 797026502, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.10540", + "lon": "50.79771", + "id": 2940 + } + ], + "matchStreet": 1 + }, + { + "name": "Русский Акташ", + "enName": "Russkiy Aktash", + "names": { + "tt": "Рус Акташы", + "ru": "Русский Акташ", + "ja": "ルースキー・アクタシ" + }, + "lat": "55.04037", + "lon": "52.11699", + "id": 337839143, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.04846", + "lon": "52.11421", + "id": 5590, + "intersectedStreets": [ + { + "name": "Советская улица", + "lat": "55.04574", + "lon": "52.11766" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Большие Аты", + "names": { + "tt": "Олы Аты" + }, + "lat": "55.39833", + "lon": "51.74820", + "id": 585272678, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.39935", + "lon": "51.74031", + "id": 9314, + "buildings": [ + { + "name": "26", + "lat": "55.40090", + "lon": "51.74322" + }, + { + "name": "41", + "lat": "55.40116", + "lon": "51.74269" + } + ], + "intersectedStreets": [ + { + "name": "Заинск — Сухарево", + "names": { + "alt_name": "Нижнекамск — Заинск" + }, + "lat": "55.40197", + "lon": "51.74412" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Ставище", + "enName": "Stavysche", + "names": { + "de": "Stawyschtsche", + "ru": "Ставище", + "uk": "Ставище", + "prefix": "селище міського типу", + "pl": "Stawyszcze" + }, + "lat": "49.38620", + "lon": "30.18316", + "id": 337560920, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тямле Чишма", + "names": { + "tt": "Тәмле Чишмә" + }, + "lat": "56.07587", + "lon": "50.74705", + "id": 797012425, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "56.07592", + "lon": "50.74641", + "id": 12080 + } + ], + "matchStreet": 1 + }, + { + "name": "Новошешминск", + "enName": "Novosheshminsk", + "names": { + "tt": "Яңа Чишмә", + "de": "Nowoscheschminsk", + "ru": "Новошешминск", + "ja": "ノヴォシェシミンスク" + }, + "lat": "55.06165", + "lon": "51.22489", + "id": 337839146, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.06093", + "lon": "51.21983", + "id": 7527, + "buildings": [ + { + "name": "6", + "lat": "55.06695", + "lon": "51.24049" + }, + { + "name": "19", + "lat": "55.06512", + "lon": "51.23646" + }, + { + "name": "25", + "lat": "55.06461", + "lon": "51.23500" + }, + { + "name": "28", + "lat": "55.06566", + "lon": "51.23423" + }, + { + "name": "39", + "lat": "55.06280", + "lon": "51.22768" + }, + { + "name": "42", + "lat": "55.06424", + "lon": "51.23133" + }, + { + "name": "48", + "lat": "55.06362", + "lon": "51.22912" + }, + { + "name": "49", + "lat": "55.06209", + "lon": "51.22509" + }, + { + "name": "53", + "lat": "55.06176", + "lon": "51.22466" + }, + { + "name": "93", + "lat": "55.05897", + "lon": "51.21352" + } + ], + "intersectedStreets": [ + { + "name": "Чистополь - Новошешминск", + "lat": "55.05613", + "lon": "51.21116" + }, + { + "name": "Полевая улица", + "lat": "55.05843", + "lon": "51.21255" + }, + { + "name": "Лесная улица", + "lat": "55.05935", + "lon": "51.21395" + }, + { + "name": "улица Мира", + "lat": "55.05980", + "lon": "51.21564" + }, + { + "name": "Молодёжная улица", + "lat": "55.06026", + "lon": "51.21736" + }, + { + "name": "улица Дружбы", + "lat": "55.06095", + "lon": "51.21983" + }, + { + "name": "улица Юности", + "lat": "55.06158", + "lon": "51.22219" + }, + { + "name": "Солнечная улица", + "lat": "55.06300", + "lon": "51.22736" + }, + { + "name": "Заливная улица", + "lat": "55.06372", + "lon": "51.23006" + }, + { + "name": "Набережная улица", + "lat": "55.06641", + "lon": "51.24369" + }, + { + "name": "Объездная улица", + "lat": "55.06641", + "lon": "51.24369" + }, + { + "name": "улица Чернышевского", + "names": { + "tt": "Чернышевский урамы" + }, + "lat": "55.06641", + "lon": "51.24369" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Починок Кучук", + "names": { + "tt": "Пүчинкә-Кучук", + "ru": "Починок Кучук", + "mhr": "Уял", + "chm": "Уял" + }, + "lat": "56.08026", + "lon": "50.87539", + "id": 797026508, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.07401", + "lon": "50.87515", + "id": 10463 + } + ], + "matchStreet": 1 + }, + { + "name": "Протопоповка", + "names": { + "tt": "Протопоповка" + }, + "lat": "55.77319", + "lon": "48.52170", + "id": 752193178, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.77312", + "lon": "48.51820", + "id": 5053 + } + ], + "matchStreet": 1 + }, + { + "name": "Билярск", + "names": { + "tt": "Биләр" + }, + "lat": "54.98370", + "lon": "50.38888", + "id": 336524609, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.98858", + "lon": "50.37849", + "id": 156 + } + ], + "matchStreet": 1 + }, + { + "name": "Верхняя Уратьма", + "names": { + "tt": "Югары Уратма" + }, + "lat": "55.25698", + "lon": "51.75228", + "id": 2523940608, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.26365", + "lon": "51.74078", + "id": 479, + "buildings": [ + { + "name": "1", + "lat": "55.25603", + "lon": "51.75028" + }, + { + "name": "3", + "lat": "55.25630", + "lon": "51.75003" + }, + { + "name": "12", + "lat": "55.25808", + "lon": "51.74936" + }, + { + "name": "17", + "lat": "55.25799", + "lon": "51.74861" + }, + { + "name": "44", + "lat": "55.26177", + "lon": "51.74588" + }, + { + "name": "55", + "lat": "55.26365", + "lon": "51.74078", + "postcode": "423568" + } + ], + "intersectedStreets": [ + { + "name": "Нагорная улица", + "lat": "55.25847", + "lon": "51.74870" + }, + { + "name": "Верхняя Уратьма — Благодатная", + "names": { + "alt_name": "Новошешминск - Заинск" + }, + "lat": "55.26590", + "lon": "51.73762" + }, + { + "name": "Заинск — Верхняя Уратьма — Шереметьевка", + "lat": "55.26287", + "lon": "51.74331" + }, + { + "name": "улица Гагарина", + "lat": "55.25618", + "lon": "51.75144" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Чувашский Чикилдым", + "names": { + "tt": "Чуаш Чагылдымы" + }, + "lat": "54.77986", + "lon": "48.41053", + "id": 787139174, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.78001", + "lon": "48.41117", + "id": 7544 + } + ], + "matchStreet": 1 + }, + { + "name": "Актюбинский", + "names": { + "tt": "Актүбә", + "ru": "Актюбинский", + "ja": "アクチュビンスキー" + }, + "lat": "54.81319", + "lon": "52.80257", + "id": 445771973, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.81508", + "lon": "52.80750", + "id": 4528, + "buildings": [ + { + "name": "4", + "lat": "54.81439", + "lon": "52.80778" + }, + { + "name": "6", + "lat": "54.81412", + "lon": "52.80795" + }, + { + "name": "6А", + "lat": "54.81413", + "lon": "52.80843" + }, + { + "name": "6Б", + "lat": "54.81412", + "lon": "52.80896" + }, + { + "name": "7", + "lat": "54.81365", + "lon": "52.80707" + }, + { + "name": "8", + "lat": "54.81366", + "lon": "52.80806" + }, + { + "name": "8А", + "lat": "54.81373", + "lon": "52.80909" + }, + { + "name": "9", + "lat": "54.81320", + "lon": "52.80622" + }, + { + "name": "10", + "lat": "54.81326", + "lon": "52.80806" + }, + { + "name": "12", + "lat": "54.81299", + "lon": "52.80778" + } + ], + "intersectedStreets": [ + { + "name": "Лесная улица", + "lat": "54.81508", + "lon": "52.80750" + }, + { + "name": "улица Губкина", + "lat": "54.81237", + "lon": "52.80748" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Емелькино", + "names": { + "tt": "Емелькино", + "cv": "Емелккел (Кивӗ Этемшӳ)" + }, + "lat": "54.96785", + "lon": "50.55872", + "id": 854660709, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "54.96861", + "lon": "50.55687", + "id": 11986 + } + ], + "matchStreet": 1 + }, + { + "name": "Яльчики", + "names": { + "de": "Jaltschiki", + "cv": "Елчӗк", + "ru": "Яльчики", + "ja": "ヤリチキ" + }, + "lat": "55.16287", + "lon": "48.00334", + "id": 850408359, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Азнакаево", + "enName": "Aznakayevo", + "names": { + "tt": "Азнакай", + "de": "Asnakajewo", + "cv": "Аснакай", + "ru": "Азнакаево", + "ja": "アズナカエヴォ" + }, + "lat": "54.86296", + "lon": "53.07922", + "id": 337839164, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.86173", + "lon": "53.08068", + "id": 1562 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Карабаш", + "enName": "Karabash", + "names": { + "tt": "Карабаш", + "ja": "カラバシ" + }, + "lat": "54.69440", + "lon": "52.58739", + "id": 2406531050, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.69158", + "lon": "52.58031", + "id": 6794, + "intersectedStreets": [ + { + "name": "улица Аклима Мухаметзянова", + "lat": "54.69106", + "lon": "52.57904" + }, + { + "name": "улица Тукая", + "lat": "54.69313", + "lon": "52.58501" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Переяслав-Хмельницький", + "enName": "Pereiaslav-Khmelnytskyi", + "names": { + "de": "Perejaslaw-Chmelnyzkyj", + "be": "Пераяслаў-Хмяльніцкі", + "ru": "Переяслав-Хмельницкий", + "uk": "Переяслав-Хмельницький", + "prefix": "місто", + "eo": "Perejaslav-Ĥmelnickij", + "pl": "Perejasław Chmielnicki" + }, + "lat": "50.06440", + "lon": "31.44474", + "id": 337535557, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Нижнекамск", + "enName": "Nizhnekamsk", + "names": { + "cs": "Nižněkamsk", + "tt": "Түбән Кама", + "de": "Nischnekamsk", + "ru": "Нижнекамск", + "uk": "Нижньокамськ", + "ja": "ニジネカムスク", + "lt": "Nižnekamskas", + "fr": "Nijnekamsk", + "pl": "Niżniekamsk", + "es": "Nizhnekamsk" + }, + "lat": "55.64129", + "lon": "51.81603", + "id": 553037933, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Красная Горка", + "names": { + "tt": "Красная Горка", + "ja": "クラスナヤ・ゴールカ" + }, + "lat": "55.70776", + "lon": "51.36656", + "id": 798213322, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.70766", + "lon": "51.36832", + "id": 8924, + "buildings": [ + { + "name": "5", + "lat": "55.70650", + "lon": "51.36649" + }, + { + "name": "7", + "lat": "55.70674", + "lon": "51.36698" + }, + { + "name": "9", + "lat": "55.70686", + "lon": "51.36716" + }, + { + "name": "11", + "lat": "55.70714", + "lon": "51.36769" + }, + { + "name": "13", + "lat": "55.70747", + "lon": "51.36834" + }, + { + "name": "13А", + "lat": "55.70726", + "lon": "51.36795" + }, + { + "name": "15", + "lat": "55.70882", + "lon": "51.37078" + }, + { + "name": "17", + "lat": "55.70899", + "lon": "51.37113" + }, + { + "name": "18", + "lat": "55.70925", + "lon": "51.37061" + }, + { + "name": "19", + "lat": "55.70929", + "lon": "51.37173" + }, + { + "name": "20", + "lat": "55.70936", + "lon": "51.37098" + }, + { + "name": "21", + "lat": "55.70946", + "lon": "51.37207" + }, + { + "name": "22", + "lat": "55.70946", + "lon": "51.37132" + }, + { + "name": "23", + "lat": "55.70967", + "lon": "51.37269" + }, + { + "name": "24", + "lat": "55.70967", + "lon": "51.37177" + }, + { + "name": "25", + "lat": "55.70979", + "lon": "51.37291" + }, + { + "name": "26", + "lat": "55.70983", + "lon": "51.37209" + }, + { + "name": "27", + "lat": "55.70989", + "lon": "51.37321" + }, + { + "name": "28", + "lat": "55.70996", + "lon": "51.37244" + }, + { + "name": "29", + "lat": "55.71009", + "lon": "51.37370" + }, + { + "name": "31", + "lat": "55.71021", + "lon": "51.37400" + }, + { + "name": "32", + "lat": "55.71049", + "lon": "51.37349" + }, + { + "name": "33", + "lat": "55.71038", + "lon": "51.37434" + }, + { + "name": "35", + "lat": "55.71053", + "lon": "51.37456" + }, + { + "name": "36", + "lat": "55.71061", + "lon": "51.37465" + }, + { + "name": "37", + "lat": "55.71076", + "lon": "51.37480" + }, + { + "name": "38", + "lat": "55.71087", + "lon": "51.37497" + }, + { + "name": "39", + "lat": "55.71096", + "lon": "51.37510" + }, + { + "name": "40", + "lat": "55.71106", + "lon": "51.37522" + } + ], + "intersectedStreets": [ + { + "name": "переулок Жданова", + "lat": "55.70766", + "lon": "51.36832" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Карай", + "lat": "56.04267", + "lon": "48.64798", + "id": 660900089, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.04220", + "lon": "48.65244", + "id": 11363 + } + ], + "matchStreet": 1 + }, + { + "name": "Старый Чувашский Адам", + "names": { + "tt": "Иске Чуаш Әдәмсуы" + }, + "lat": "54.94203", + "lon": "50.54104", + "id": 854660718, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.94502", + "lon": "50.54084", + "id": 10677 + } + ], + "matchStreet": 1 + }, + { + "name": "Малая Пурга", + "enName": "Malaya Purga", + "names": { + "ja": "マラヤ・プルガ", + "udm": "Пичи Пурга" + }, + "lat": "56.54955", + "lon": "53.00551", + "id": 621090917, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Шемурша", + "names": { + "de": "Schemurscha", + "cv": "Шӑмӑршӑ", + "ja": "シェムルシャー" + }, + "lat": "54.88548", + "lon": "47.51651", + "id": 855192927, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.88690", + "lon": "47.52984", + "id": 4027 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Агрыз", + "enName": "Agryz", + "names": { + "tt": "Әгерҗе", + "ru": "Агрыз", + "ja": "アグルイズ" + }, + "lat": "56.52546", + "lon": "52.99725", + "id": 1773881620, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.51014", + "lon": "52.99230", + "id": 7268 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Лениногорск", + "enName": "Leninogorsk", + "names": { + "tt": "Лениногорск", + "de": "Leninogorsk", + "cv": "Ҫӗнӗ Пӗҫмен", + "ru": "Лениногорск", + "ja": "レニノゴルスク" + }, + "lat": "54.59943", + "lon": "52.44691", + "id": 273310116, + "type": "TOWN", + "listOfStreets": [ + { + "name": "проспект Ленина", + "lat": "54.60202", + "lon": "52.44837", + "id": 787 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Кичкеево", + "names": { + "cv": "Киччӗ", + "ru": "Кичкеево" + }, + "lat": "55.46093", + "lon": "47.90395", + "id": 1297116347, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.45797", + "lon": "47.90161", + "id": 8973 + } + ], + "matchStreet": 1 + }, + { + "name": "Аксубаево", + "enName": "Aksubayevo", + "names": { + "tt": "Аксубай", + "de": "Aksubajewo", + "cv": "Аксу", + "ru": "Аксубаево", + "ja": "アクスバエヴォ" + }, + "lat": "54.84635", + "lon": "50.80554", + "id": 336524899, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "cv": "Ленин", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.84658", + "lon": "50.80338", + "id": 7551 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Нурлат", + "enName": "Nurlat", + "names": { + "tt": "Нурлат", + "de": "Nurlat", + "cv": "Нурлат", + "ru": "Нурлат", + "ja": "ヌルラート" + }, + "lat": "54.42973", + "lon": "50.80196", + "id": 336525410, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.42106", + "lon": "50.82743", + "id": 1727 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Пісківка", + "enName": "Piskivka", + "names": { + "ru": "Песковка", + "uk": "Пісківка", + "prefix": "селище міського типу", + "pl": "Piskivka" + }, + "lat": "50.69686", + "lon": "29.59311", + "id": 337517677, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Верхние Тимерсяны", + "enName": "Verkhniye Timersyany", + "names": { + "cv": "Ирҫел", + "ru": "Верхние Тимерсяны" + }, + "lat": "54.54342", + "lon": "47.65577", + "id": 336525181, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.53880", + "lon": "47.65507", + "id": 8893 + } + ], + "matchStreet": 1 + }, + { + "name": "Октябрьский", + "enName": "Oktjabrski", + "names": { + "tt": "Октябрьски", + "de": "Oktjabrski", + "ru": "Октябрьский", + "ja": "オクチャブリスキー", + "lt": "Oktiabrskis", + "ba": "Октябрьский", + "et": "Oktjabrski" + }, + "lat": "54.48097", + "lon": "53.46600", + "id": 191901380, + "type": "TOWN", + "listOfStreets": [ + { + "name": "проспект Ленина", + "lat": "54.48212", + "lon": "53.46630", + "id": 107 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Куйбышевский Затон", + "names": { + "tt": "Куйбышев Затоны", + "ja": "クイビシェフスキー・ザトン" + }, + "lat": "55.15645", + "lon": "49.16940", + "id": 697269501, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.15673", + "lon": "49.17463", + "id": 10637 + } + ], + "matchStreet": 1 + }, + { + "name": "Буча", + "enName": "Bucha", + "names": { + "de": "Butscha", + "ru": "Буча", + "prefix": "місто", + "uk": "Буча", + "fr": "Boutcha", + "pl": "Bucza" + }, + "lat": "50.54858", + "lon": "30.22071", + "id": 312987923, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Имянлебаш", + "names": { + "tt": "Имәнлебаш", + "ru": "Имянлебаш" + }, + "lat": "55.34954", + "lon": "51.82646", + "id": 585272661, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.34489", + "lon": "51.81624", + "id": 9304 + } + ], + "matchStreet": 1 + }, + { + "name": "Шингальчи", + "names": { + "tt": "Шәңгәлче" + }, + "lat": "55.51315", + "lon": "51.82206", + "id": 705268096, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.51207", + "lon": "51.81751", + "id": 9819, + "intersectedStreets": [ + { + "name": "улица Механизаторов", + "lat": "55.51141", + "lon": "51.81652" + }, + { + "name": "улица Гагарина", + "lat": "55.51520", + "lon": "51.82588" + }, + { + "name": "Новая улица", + "lat": "55.51673", + "lon": "51.82717" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Базарные Матаки", + "enName": "Bazarnyye Mataki", + "names": { + "tt": "Базарлы Матак", + "ja": "バザールヌイエ・マターキ" + }, + "lat": "54.90349", + "lon": "49.92754", + "id": 336524666, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.90183", + "lon": "49.92110", + "id": 2732 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Борова", + "enName": "Borova", + "names": { + "ru": "Боровая", + "uk": "Борова", + "prefix": "селище міського типу", + "pl": "Borowa" + }, + "lat": "50.17834", + "lon": "30.10254", + "id": 337527400, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Аксарино", + "names": { + "tt": "Аксар" + }, + "lat": "55.33954", + "lon": "51.91351", + "id": 585272665, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.34291", + "lon": "51.90720", + "id": 514, + "buildings": [ + { + "name": "1", + "lat": "55.34168", + "lon": "51.91549", + "postcode": "423501" + }, + { + "name": "2", + "lat": "55.34207", + "lon": "51.91523", + "postcode": "423501" + }, + { + "name": "29", + "lat": "55.34157", + "lon": "51.91092", + "postcode": "423501" + }, + { + "name": "36", + "lat": "55.34223", + "lon": "51.91001" + }, + { + "name": "38", + "lat": "55.34237", + "lon": "51.90939", + "postcode": "423501" + }, + { + "name": "40", + "lat": "55.34250", + "lon": "51.90858", + "postcode": "423501" + }, + { + "name": "40", + "lat": "55.34250", + "lon": "51.90858", + "postcode": "423501" + }, + { + "name": "41", + "lat": "55.34228", + "lon": "51.90783", + "postcode": "423501" + }, + { + "name": "42", + "lat": "55.34291", + "lon": "51.90720", + "postcode": "423501" + }, + { + "name": "42", + "lat": "55.34294", + "lon": "51.90720", + "postcode": "423501" + }, + { + "name": "46", + "lat": "55.34318", + "lon": "51.90613", + "postcode": "423501" + } + ], + "intersectedStreets": [ + { + "name": "Молодёжная улица", + "lat": "55.34181", + "lon": "51.91592" + }, + { + "name": "Колхозная улица", + "lat": "55.34197", + "lon": "51.91119" + }, + { + "name": "улица Вахитова", + "lat": "55.34261", + "lon": "51.90737" + }, + { + "name": "улица Тукая", + "lat": "55.34261", + "lon": "51.90737" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Кармалы", + "names": { + "tt": "Кармалы" + }, + "lat": "55.30420", + "lon": "51.17732", + "id": 779172045, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.30562", + "lon": "51.18112", + "id": 10574 + } + ], + "matchStreet": 1 + }, + { + "name": "Нижняя Мактама", + "names": { + "tt": "Түбəн Мактама", + "ja": "ニジニャヤ・マクタマ" + }, + "lat": "54.86247", + "lon": "52.42313", + "id": 1804405492, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Велика Димерка", + "enName": "Velyka Dymerka", + "names": { + "ru": "Великая Дымерка", + "uk": "Велика Димерка", + "prefix": "селище міського типу", + "pl": "Wielka Dymirka" + }, + "lat": "50.59183", + "lon": "30.90109", + "id": 337519261, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Вишгород", + "enName": "Vyshhorod", + "names": { + "de": "Wyschhorod", + "ru": "Вышгород", + "uk": "Вишгород", + "prefix": "місто", + "fr": "Vychhorod", + "pl": "Wyszogród" + }, + "lat": "50.58243", + "lon": "30.48513", + "id": 289308798, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старый Токмак", + "names": { + "tt": "Иске Тәкмәк" + }, + "lat": "55.39208", + "lon": "51.98147", + "id": 586094637, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.39715", + "lon": "51.99192", + "id": 2837, + "intersectedStreets": [ + { + "name": "улица Речная", + "lat": "55.39594", + "lon": "51.98954" + }, + { + "name": "улица Луговая", + "lat": "55.39715", + "lon": "51.99192" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Орловка", + "enName": "Orlovka", + "names": { + "ru": "Орловка" + }, + "lat": "55.71491", + "lon": "52.37174", + "id": 568525857, + "type": "SUBURB", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "55.71641", + "lon": "52.38245", + "id": 5664, + "buildings": [ + { + "name": "9", + "lat": "55.71641", + "lon": "52.38245" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Мунайка", + "names": { + "tt": "Монай" + }, + "lat": "55.89279", + "lon": "52.26012", + "id": 775959237, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.89364", + "lon": "52.26132", + "id": 4125 + } + ], + "matchStreet": 1 + }, + { + "name": "Обухів", + "enName": "Obukhiv", + "names": { + "de": "Obuchiw", + "ru": "Обухов", + "uk": "Обухів", + "prefix": "місто", + "fr": "Oboukhiv", + "pl": "Obuchów", + "hu": "Obukhiv" + }, + "lat": "50.11020", + "lon": "30.62675", + "id": 337534108, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Черемшан", + "enName": "Cheremshan", + "names": { + "tt": "Чирмешән", + "cv": "Ҫарӑмсан", + "ru": "Черемшан", + "ja": "チェレムシャン" + }, + "lat": "54.66110", + "lon": "51.50532", + "id": 337839206, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ядыгерь", + "names": { + "tt": "Ядегәр" + }, + "lat": "56.23022", + "lon": "50.50930", + "id": 796777404, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.22996", + "lon": "50.51228", + "id": 11226 + } + ], + "matchStreet": 1 + }, + { + "name": "Українка", + "enName": "Ukrainka", + "names": { + "ru": "Украинка", + "uk": "Українка", + "prefix": "місто", + "pl": "Ukrajinka" + }, + "lat": "50.15372", + "lon": "30.74206", + "id": 337528474, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Подгорный Дрюш", + "names": { + "tt": "Таулы Дөреш" + }, + "lat": "55.50122", + "lon": "52.55138", + "id": 594677179, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "ru": "улица Ленина" + }, + "lat": "55.50009", + "lon": "52.55241", + "id": 9785 + } + ], + "matchStreet": 1 + }, + { + "name": "Калинівка", + "enName": "Kalynivka", + "names": { + "kk": "Kalyni'vka", + "de": "Kalyniwka (Wassylkiw)", + "hy": "Կալյնիվկա", + "ru": "Калиновка", + "vi": "Kalynivka", + "prefix": "селище міського типу", + "uk": "Калинівка", + "ja": "カルィーニウカ", + "fr": "Kalynivka", + "pl": "Kalinówka", + "ro": "Kalînivka, Vasîlkiv", + "tr": "Kalınivka" + }, + "lat": "50.22573", + "lon": "30.22618", + "id": 337526421, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Фастів", + "enName": "Fastiv", + "names": { + "de": "Fastiw", + "ru": "Фастов", + "uk": "Фастів", + "prefix": "місто", + "eo": "Fastiv", + "fr": "Fastiv", + "pl": "Fastów", + "hu": "Fastiv" + }, + "lat": "50.07993", + "lon": "29.91629", + "id": 337535126, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тамаево", + "names": { + "tt": "Тәмәй" + }, + "lat": "56.35173", + "lon": "50.83694", + "id": 797083146, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.35513", + "lon": "50.83874", + "id": 10747 + } + ], + "matchStreet": 1 + }, + { + "name": "Уруссу", + "enName": "Urussu", + "names": { + "tt": "Урыссу", + "ru": "Уруссу", + "ja": "ウルスー" + }, + "lat": "54.59933", + "lon": "53.46632", + "id": 337839216, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.59502", + "lon": "53.46949", + "id": 2587 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Туембаш", + "names": { + "tt": "Туембаш" + }, + "lat": "56.26669", + "lon": "50.86387", + "id": 797083152, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.26702", + "lon": "50.86209", + "id": 11179 + } + ], + "matchStreet": 1 + }, + { + "name": "Елабуга", + "enName": "Elabuga", + "names": { + "tt": "Алабуга", + "ar": "ييلابوغا", + "de": "Jelabuga", + "cv": "Алапӳ", + "ru": "Елабуга", + "uk": "Єлабуга", + "ja": "エラブガ", + "tt-lat": "Alabuğa", + "fa": "یلابوگا", + "tr": "Alabuga", + "ba": "Алабуға" + }, + "lat": "55.75771", + "lon": "52.05400", + "id": 153568874, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Ютаза", + "enName": "Yutaza", + "names": { + "tt": "Ютазы", + "ru": "Ютаза" + }, + "lat": "54.58879", + "lon": "53.27073", + "id": 337839220, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.58895", + "lon": "53.26753", + "id": 2688 + } + ], + "matchStreet": 1 + }, + { + "name": "Петровский Завод", + "enName": "Petrovsky Zavod", + "names": { + "tt": "Петровский Завод" + }, + "lat": "55.31827", + "lon": "52.49617", + "id": 582997231, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.31683", + "lon": "52.49512", + "id": 10260, + "buildings": [ + { + "name": "1", + "lat": "55.31623", + "lon": "52.49484", + "postcode": "423364" + }, + { + "name": "2", + "lat": "55.31657", + "lon": "52.49416", + "postcode": "423364" + }, + { + "name": "3", + "lat": "55.31661", + "lon": "52.49512", + "postcode": "423364" + }, + { + "name": "4", + "lat": "55.31719", + "lon": "52.49471", + "postcode": "423364" + }, + { + "name": "5", + "lat": "55.31701", + "lon": "52.49544", + "postcode": "423364" + }, + { + "name": "6", + "lat": "55.31691", + "lon": "52.49416", + "postcode": "423364" + } + ], + "intersectedStreets": [ + { + "name": "Заводская улица", + "lat": "55.31604", + "lon": "52.49452" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Макарів", + "enName": "Makariv", + "names": { + "de": "Makariw", + "ru": "Макаров", + "uk": "Макарів", + "prefix": "селище міського типу", + "pl": "Makarow" + }, + "lat": "50.46399", + "lon": "29.80690", + "id": 1494035871, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Комаровка", + "names": { + "tt": "Комаровка" + }, + "lat": "55.89661", + "lon": "50.26097", + "id": 801827934, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.89504", + "lon": "50.25857", + "id": 10199 + } + ], + "matchStreet": 1 + }, + { + "name": "Кукмор", + "enName": "Kukmor", + "names": { + "tt": "Кукмара", + "de": "Kukmor", + "ru": "Кукмор", + "ja": "クークモル" + }, + "lat": "56.18653", + "lon": "50.89721", + "id": 409487025, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.18256", + "lon": "50.90891", + "id": 748 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Київ", + "enName": "Kyiv", + "names": { + "hi": "कीव", + "pt": "Kiev", + "prefix": "місто", + "hr": "Kijev", + "ht": "Kyèv", + "hu": "Kijev", + "lmo": "Kiev", + "xmf": "კიევი", + "yi": "קיעוו", + "hy": "Կիև", + "bar": "Kiew", + "nah": "Kiev", + "yo": "Kiev", + "pms": "Kijv", + "ia": "Kyiv", + "nan": "Kyyiv", + "id": "Kyiv", + "ie": "Kyiv", + "sco": "Kiev", + "scn": "Kiev", + "ext": "Kyiv", + "ab": "Кыив", + "qu": "Kiyiw", + "af": "Kiëf", + "pnb": "کیف", + "io": "Kyiv", + "frr": "Kyiv", + "is": "Kænugarður", + "it": "Kyiv", + "am": "ኪየቭ", + "an": "Kiev", + "zh": "基輔", + "ar": "كييف", + "jbo": "kiev", + "mhr": "Киев", + "ja": "キエフ", + "az": "Kiyev", + "zu": "IKiyevi", + "ro": "Kiev", + "ba": "Киев", + "be": "Кіеў", + "ru": "Киев", + "bg": "Киев", + "bi": "Kyiv", + "myv": "Киев ош", + "bn": "কিয়েভ", + "jv": "Kyiv", + "bo": "ཀིབ།", + "br": "Kyiv", + "sc": "Kiev", + "bs": "Kijev", + "se": "Kiova", + "sh": "Kijev", + "ka": "კიევი", + "sk": "Kyjev", + "roa-rup": "Kiev", + "sl": "Kijev", + "ca": "Kyiv", + "sq": "Kievi", + "sr": "Кијев", + "kk": "Киев", + "kl": "Kyiv", + "kn": "ಕೀವ್", + "sv": "Kiev", + "ko": "키예프", + "mrj": "Киев", + "sw": "Kiev", + "arz": "كييف", + "ku": "Kîev", + "kv": "Киев", + "ta": "கீவ்", + "ky": "Киев", + "cs": "Kyjev", + "te": "క్యివ్", + "cu": "Кꙑѥвъ", + "cv": "Кийӳ", + "tg": "Киев", + "th": "เคียฟ", + "la": "Kiovia", + "cy": "Kyiv", + "lb": "Kiew", + "tl": "Kiev", + "nds": "Kiew", + "da": "Kyiv", + "tr": "Kiev", + "tt": "Киев", + "be-tarask": "Кіеў", + "de": "Kiew", + "ln": "Kyjiw", + "ast": "Kiev", + "rue": "Київ", + "tw": "Kiev", + "hif": "Kiev", + "koi": "Киев", + "lt": "Kijevas", + "lv": "Kijeva", + "lij": "Kiev", + "lad": "Kyiv", + "ug": "كىيېۋ", + "roa-tara": "Kiev", + "vec": "Kiev", + "uk": "Київ", + "fiu-vro": "Kiiova", + "mi": "Kieu", + "ur": "کیف", + "mk": "Киев", + "pap": "Kiev", + "ml": "കീവ്", + "rmy": "Kiev", + "vep": "Kijev", + "mn": "Киев", + "mr": "क्यीव", + "uz": "Kiyev", + "ms": "Kiev", + "el": "Κίεβο", + "mt": "Kjiv", + "tzl": "Kíiv", + "als": "Kiew", + "eo": "Kievo", + "my": "ကီးယက်မြို့", + "ilo": "Kyiv", + "es": "Kyiv", + "mdf": "Киев", + "et": "Kiiev", + "eu": "Kyiv", + "dsb": "Kijew", + "vi": "Kiev", + "bat-smg": "Kijevs", + "hsb": "Kijew", + "vo": "Küyiv", + "fa": "کی‌یف", + "nl": "Kiev", + "udm": "Киев", + "nn": "Kiev", + "no": "Kiev", + "fi": "Kiova", + "yue": "基輔", + "fo": "Kyiv", + "fr": "Kyiv", + "gag": "Kyiv", + "fy": "Kiev", + "nov": "Kiyev", + "oc": "Kyiiv", + "crh": "Kiyev", + "wo": "Kiyew", + "ga": "Cív", + "ang": "Cænugeard", + "sah": "Киев", + "bxr": "Киев", + "gd": "Kyiv", + "os": "Киев", + "szl": "Kijůw", + "gl": "Kiev", + "war": "Kiev", + "bpy": "কিয়েভ", + "gv": "Kyiv", + "pa": "ਕੀਵ", + "csb": "Kyiv", + "cbk-zam": "Kyiv", + "ckb": "کیێڤ", + "pl": "Kijów", + "he": "קייב" + }, + "lat": "50.45011", + "lon": "30.52405", + "id": 26150422, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тетіїв", + "enName": "Tetiiv", + "names": { + "de": "Tetijiw", + "ru": "Тетиев", + "uk": "Тетіїв", + "prefix": "місто", + "pl": "Tetyjów" + }, + "lat": "49.36862", + "lon": "29.67712", + "id": 337561478, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Тетюши", + "enName": "Tetyushi", + "names": { + "tt": "Тәтеш", + "de": "Tetjuschi", + "cv": "Теччӗ", + "ru": "Тетюши", + "ja": "テチューシ" + }, + "lat": "54.93431", + "lon": "48.83168", + "id": 336524694, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.93456", + "lon": "48.83687", + "id": 261 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Лаишево", + "enName": "Laishevo", + "names": { + "tt": "Лаеш", + "de": "Laischewo", + "cv": "Лаиш", + "ru": "Лаишево", + "ja": "ライシェヴォ", + "lt": "Laiševas" + }, + "lat": "55.40434", + "lon": "49.54684", + "id": 336524182, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.39917", + "lon": "49.55297", + "id": 8277 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Кошкино", + "names": { + "tt": "Күкшел" + }, + "lat": "56.33042", + "lon": "50.80158", + "id": 797079071, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.33087", + "lon": "50.80482", + "id": 11218 + } + ], + "matchStreet": 1 + }, + { + "name": "Малая Бугульма", + "names": { + "tt": "Кече Бөгелмә" + }, + "lat": "54.50524", + "lon": "52.87763", + "id": 445814288, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "54.51180", + "lon": "52.85812", + "id": 4576 + } + ], + "matchStreet": 1 + }, + { + "name": "Ржищів", + "enName": "Rzhyschiv", + "names": { + "de": "Rschyschtschiw", + "ru": "Ржищев", + "uk": "Ржищів", + "prefix": "місто", + "pl": "Rzyszczów" + }, + "lat": "49.96822", + "lon": "31.04118", + "id": 337538749, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Мамашир", + "names": { + "tt": "Мәмәшир" + }, + "lat": "56.36733", + "lon": "50.84810", + "id": 797079080, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.36595", + "lon": "50.85237", + "id": 10619 + } + ], + "matchStreet": 1 + }, + { + "name": "Миронівка", + "enName": "Myronivka", + "names": { + "de": "Myroniwka", + "ru": "Мироновка", + "uk": "Миронівка", + "prefix": "місто", + "pl": "Mironówka" + }, + "lat": "49.65834", + "lon": "30.98250", + "id": 5119801550, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Березань", + "enName": "Berezan", + "names": { + "de": "Beresan", + "ru": "Березань", + "uk": "Березань", + "prefix": "місто", + "lt": "Berezanė", + "pl": "Berezań" + }, + "lat": "50.31327", + "lon": "31.46892", + "id": 337524664, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Нижние Вязовые", + "enName": "Nizhniye Vyazovye", + "names": { + "tt": "Карамалы Тау", + "ja": "ニジニエ・ヴャゾヴイエ" + }, + "lat": "55.79963", + "lon": "48.52238", + "id": 752193024, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.81148", + "lon": "48.51114", + "id": 5094 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Осиново", + "names": { + "tt": "Осиново" + }, + "lat": "55.87730", + "lon": "48.89103", + "id": 722796219, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.87683", + "lon": "48.89710", + "id": 3975 + } + ], + "matchStreet": 1 + }, + { + "name": "Альметьевск", + "enName": "Almetyevsk", + "names": { + "tt": "Әлмәт", + "de": "Almetjewsk", + "be": "Альмецьеўск", + "ru": "Альметьевск", + "ko": "알메티옙스크", + "lt": "Almetjevskas", + "it": "Al'met'evsk", + "fr": "Almetievsk", + "es": "Almétievsk", + "zh": "阿尔梅季耶夫斯克", + "ar": "ألميتيفسك", + "cv": "Элмет", + "uk": "Альметьєвськ", + "hsb": "Almetjewsk", + "ja": "アリメチエフスク", + "az": "Əlmət", + "fa": "آلماتیفسک", + "pl": "Almietjewsk", + "ro": "Almetievsk", + "ba": "Әлмәт" + }, + "lat": "54.89965", + "lon": "52.30149", + "id": 2173235770, + "type": "CITY", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.89948", + "lon": "52.27471", + "id": 70, + "buildings": [ + { + "name": "1", + "lat": "54.90372", + "lon": "52.31715" + }, + { + "name": "1А", + "lat": "54.90288", + "lon": "52.31537" + }, + { + "name": "1А/1", + "lat": "54.90344", + "lon": "52.31443" + }, + { + "name": "1Б", + "lat": "54.90368", + "lon": "52.31606" + }, + { + "name": "1В", + "lat": "54.90384", + "lon": "52.31443" + }, + { + "name": "2", + "lat": "54.90476", + "lon": "52.31224" + }, + { + "name": "2А", + "lat": "54.90430", + "lon": "52.31679" + }, + { + "name": "2А", + "lat": "54.90432", + "lon": "52.31745" + }, + { + "name": "2А/1", + "lat": "54.90467", + "lon": "52.31466" + }, + { + "name": "3", + "lat": "54.90367", + "lon": "52.31243" + }, + { + "name": "4", + "lat": "54.90456", + "lon": "52.31011" + }, + { + "name": "5", + "lat": "54.90392", + "lon": "52.31194" + }, + { + "name": "6", + "lat": "54.90477", + "lon": "52.30921" + }, + { + "name": "7", + "lat": "54.90370", + "lon": "52.31125" + }, + { + "name": "8", + "lat": "54.90450", + "lon": "52.30904" + }, + { + "name": "10", + "lat": "54.90507", + "lon": "52.30741" + }, + { + "name": "11", + "lat": "54.90395", + "lon": "52.31001" + }, + { + "name": "12", + "lat": "54.90473", + "lon": "52.30795" + }, + { + "name": "13", + "lat": "54.90404", + "lon": "52.30872" + }, + { + "name": "14", + "lat": "54.90505", + "lon": "52.30778" + }, + { + "name": "15", + "lat": "54.90375", + "lon": "52.30795" + }, + { + "name": "15Б", + "lat": "54.90367", + "lon": "52.30904" + }, + { + "name": "16", + "lat": "54.90457", + "lon": "52.30679" + }, + { + "name": "17", + "lat": "54.90412", + "lon": "52.30726" + }, + { + "name": "18", + "lat": "54.90508", + "lon": "52.30666" + }, + { + "name": "19", + "lat": "54.90413", + "lon": "52.30606" + }, + { + "name": "20", + "lat": "54.90467", + "lon": "52.30544" + }, + { + "name": "21", + "lat": "54.90366", + "lon": "52.30445" + }, + { + "name": "21А", + "lat": "54.90400", + "lon": "52.30544" + }, + { + "name": "22", + "lat": "54.90456", + "lon": "52.30438" + }, + { + "name": "23", + "lat": "54.90340", + "lon": "52.30288" + }, + { + "name": "23", + "lat": "54.90338", + "lon": "52.30314" + }, + { + "name": "24", + "lat": "54.90416", + "lon": "52.30342" + }, + { + "name": "25", + "lat": "54.90307", + "lon": "52.30215" + }, + { + "name": "26", + "lat": "54.90384", + "lon": "52.30263" + }, + { + "name": "27", + "lat": "54.90276", + "lon": "52.30136" + }, + { + "name": "28", + "lat": "54.90350", + "lon": "52.30179" + }, + { + "name": "29", + "lat": "54.90238", + "lon": "52.30048" + }, + { + "name": "30", + "lat": "54.90354", + "lon": "52.30104" + }, + { + "name": "30А", + "lat": "54.90408", + "lon": "52.30106" + }, + { + "name": "31", + "lat": "54.90205", + "lon": "52.29984" + }, + { + "name": "32", + "lat": "54.90310", + "lon": "52.30080" + }, + { + "name": "32А", + "lat": "54.90376", + "lon": "52.30022" + }, + { + "name": "33", + "lat": "54.90183", + "lon": "52.29928" + }, + { + "name": "33А", + "lat": "54.90162", + "lon": "52.29960" + }, + { + "name": "33Б", + "lat": "54.90205", + "lon": "52.29947" + }, + { + "name": "34", + "lat": "54.90282", + "lon": "52.29992" + }, + { + "name": "35", + "lat": "54.90134", + "lon": "52.29872" + }, + { + "name": "36", + "lat": "54.90247", + "lon": "52.29908" + }, + { + "name": "37", + "names": { + "tt": "Әлмәт татар дәүләт драма театры", + "hy": "Ալմետևսկի թաթարական պետական դրամատիկական թատրոն" + }, + "lat": "54.90051", + "lon": "52.29799" + }, + { + "name": "38", + "lat": "54.90265", + "lon": "52.29818" + }, + { + "name": "39", + "lat": "54.90046", + "lon": "52.29627" + }, + { + "name": "40", + "lat": "54.90213", + "lon": "52.29829" + }, + { + "name": "41", + "lat": "54.90033", + "lon": "52.29539" + }, + { + "name": "41А", + "lat": "54.89985", + "lon": "52.29634" + }, + { + "name": "42", + "lat": "54.90188", + "lon": "52.29720" + }, + { + "name": "42А", + "lat": "54.90173", + "lon": "52.29760" + }, + { + "name": "43", + "lat": "54.90009", + "lon": "52.29477" + }, + { + "name": "44", + "lat": "54.90246", + "lon": "52.29733" + }, + { + "name": "46", + "lat": "54.90134", + "lon": "52.29619" + }, + { + "name": "47", + "lat": "54.89972", + "lon": "52.29363" + }, + { + "name": "48", + "lat": "54.90099", + "lon": "52.29529" + }, + { + "name": "49", + "lat": "54.89932", + "lon": "52.29342" + }, + { + "name": "49А", + "lat": "54.89929", + "lon": "52.29290" + }, + { + "name": "50", + "lat": "54.90071", + "lon": "52.29411" + }, + { + "name": "51", + "lat": "54.89903", + "lon": "52.29271" + }, + { + "name": "51А", + "lat": "54.89869", + "lon": "52.29363" + }, + { + "name": "52", + "lat": "54.90170", + "lon": "52.29443" + }, + { + "name": "53", + "lat": "54.89912", + "lon": "52.29209" + }, + { + "name": "55", + "lat": "54.89876", + "lon": "52.29117" + }, + { + "name": "55А", + "lat": "54.89859", + "lon": "52.29067" + }, + { + "name": "56", + "lat": "54.90022", + "lon": "52.29327" + }, + { + "name": "57", + "lat": "54.89858", + "lon": "52.29258" + }, + { + "name": "58", + "lat": "54.90020", + "lon": "52.29260" + }, + { + "name": "59", + "lat": "54.89828", + "lon": "52.29295" + }, + { + "name": "60", + "lat": "54.89986", + "lon": "52.29198", + "postcode": "423450" + }, + { + "name": "61", + "lat": "54.89797", + "lon": "52.29331" + }, + { + "name": "62", + "lat": "54.89964", + "lon": "52.29119" + }, + { + "name": "63", + "lat": "54.89765", + "lon": "52.29366" + }, + { + "name": "64", + "lat": "54.90030", + "lon": "52.29095" + }, + { + "name": "65", + "lat": "54.89740", + "lon": "52.29462" + }, + { + "name": "66", + "lat": "54.90013", + "lon": "52.29016" + }, + { + "name": "67", + "lat": "54.89718", + "lon": "52.29391" + }, + { + "name": "68", + "lat": "54.89924", + "lon": "52.29072" + }, + { + "name": "68А", + "lat": "54.89914", + "lon": "52.29082" + }, + { + "name": "69А", + "lat": "54.89788", + "lon": "52.28943" + }, + { + "name": "70", + "lat": "54.89946", + "lon": "52.28988" + }, + { + "name": "70А", + "lat": "54.89999", + "lon": "52.28924" + }, + { + "name": "71", + "lat": "54.89739", + "lon": "52.28887" + }, + { + "name": "72", + "lat": "54.89900", + "lon": "52.28975" + }, + { + "name": "72А", + "lat": "54.89877", + "lon": "52.28960" + }, + { + "name": "73", + "lat": "54.89677", + "lon": "52.28700" + }, + { + "name": "74", + "lat": "54.89909", + "lon": "52.28891" + }, + { + "name": "74А", + "lat": "54.89965", + "lon": "52.28836" + }, + { + "name": "75", + "lat": "54.89716", + "lon": "52.28722" + }, + { + "name": "75", + "lat": "54.89719", + "lon": "52.28651" + }, + { + "name": "75", + "lat": "54.89733", + "lon": "52.28683" + }, + { + "name": "75", + "lat": "54.89733", + "lon": "52.28632" + }, + { + "name": "75", + "lat": "54.89740", + "lon": "52.28673" + }, + { + "name": "75", + "lat": "54.89767", + "lon": "52.28683" + }, + { + "name": "76", + "lat": "54.89856", + "lon": "52.28900" + }, + { + "name": "77", + "lat": "54.89772", + "lon": "52.28589" + }, + { + "name": "78", + "lat": "54.89911", + "lon": "52.28795" + }, + { + "name": "80", + "lat": "54.89865", + "lon": "52.28745" + }, + { + "name": "82", + "lat": "54.89834", + "lon": "52.28795" + }, + { + "name": "82А", + "lat": "54.89842", + "lon": "52.28696" + }, + { + "name": "83", + "lat": "54.89712", + "lon": "52.28164" + }, + { + "name": "85", + "lat": "54.89790", + "lon": "52.28112" + }, + { + "name": "85", + "lat": "54.89777", + "lon": "52.28115" + }, + { + "name": "86", + "lat": "54.89866", + "lon": "52.28649" + }, + { + "name": "87", + "lat": "54.89693", + "lon": "52.28061" + }, + { + "name": "88", + "lat": "54.89838", + "lon": "52.28608" + }, + { + "name": "89", + "lat": "54.89756", + "lon": "52.27986" + }, + { + "name": "90", + "lat": "54.89865", + "lon": "52.28565" + }, + { + "name": "91", + "lat": "54.89700", + "lon": "52.27898" + }, + { + "name": "92", + "lat": "54.89923", + "lon": "52.28597" + }, + { + "name": "93", + "lat": "54.89785", + "lon": "52.27864" + }, + { + "name": "94", + "lat": "54.89999", + "lon": "52.28123" + }, + { + "name": "95", + "lat": "54.89703", + "lon": "52.27812" + }, + { + "name": "97", + "lat": "54.89764", + "lon": "52.27737" + }, + { + "name": "98", + "lat": "54.89920", + "lon": "52.27746" + }, + { + "name": "99", + "lat": "54.89708", + "lon": "52.27651" + }, + { + "name": "100", + "lat": "54.89948", + "lon": "52.27471" + }, + { + "name": "100", + "lat": "54.89941", + "lon": "52.27391" + }, + { + "name": "101", + "lat": "54.89790", + "lon": "52.27615" + }, + { + "name": "103", + "lat": "54.89713", + "lon": "52.27565" + }, + { + "name": "104А", + "lat": "54.90096", + "lon": "52.26671" + }, + { + "name": "104Б", + "lat": "54.90123", + "lon": "52.26572" + }, + { + "name": "104Б", + "lat": "54.90134", + "lon": "52.26632" + }, + { + "name": "105", + "lat": "54.89772", + "lon": "52.27490" + }, + { + "name": "106", + "lat": "54.90203", + "lon": "52.26681" + }, + { + "name": "107", + "lat": "54.89718", + "lon": "52.27404" + }, + { + "name": "108", + "lat": "54.90261", + "lon": "52.26694" + }, + { + "name": "109", + "lat": "54.89804", + "lon": "52.27370" + }, + { + "name": "110", + "lat": "54.90314", + "lon": "52.26709" + }, + { + "name": "110А", + "lat": "54.90367", + "lon": "52.26735" + }, + { + "name": "111", + "lat": "54.89718", + "lon": "52.27316" + }, + { + "name": "112", + "lat": "54.90187", + "lon": "52.26507" + }, + { + "name": "112", + "lat": "54.90208", + "lon": "52.26417" + }, + { + "name": "112А", + "lat": "54.90164", + "lon": "52.26495" + }, + { + "name": "113", + "lat": "54.89780", + "lon": "52.27243" + }, + { + "name": "113А", + "lat": "54.89817", + "lon": "52.27250" + }, + { + "name": "114А", + "lat": "54.90235", + "lon": "52.26383" + }, + { + "name": "114Б", + "lat": "54.90261", + "lon": "52.26357" + }, + { + "name": "115", + "lat": "54.89722", + "lon": "52.27153" + }, + { + "name": "115А", + "lat": "54.89707", + "lon": "52.27235" + }, + { + "name": "116", + "lat": "54.90312", + "lon": "52.26297" + }, + { + "name": "117", + "lat": "54.89809", + "lon": "52.27119" + }, + { + "name": "118", + "lat": "54.90373", + "lon": "52.26385" + }, + { + "name": "119", + "lat": "54.89750", + "lon": "52.27067" + }, + { + "name": "119А", + "lat": "54.89767", + "lon": "52.27046" + }, + { + "name": "120", + "lat": "54.90373", + "lon": "52.26222" + }, + { + "name": "121", + "lat": "54.90097", + "lon": "52.26434" + }, + { + "name": "121А", + "lat": "54.89927", + "lon": "52.26720" + }, + { + "name": "121Б", + "lat": "54.89908", + "lon": "52.26810" + }, + { + "name": "121В", + "lat": "54.89887", + "lon": "52.26666" + }, + { + "name": "122", + "lat": "54.90333", + "lon": "52.26179" + }, + { + "name": "122", + "lat": "54.90325", + "lon": "52.26166" + }, + { + "name": "123", + "lat": "54.89999", + "lon": "52.26572" + }, + { + "name": "123Б", + "lat": "54.89927", + "lon": "52.26617" + }, + { + "name": "123В", + "lat": "54.89956", + "lon": "52.26664" + }, + { + "name": "124", + "lat": "54.90527", + "lon": "52.26482" + }, + { + "name": "124 с1", + "lat": "54.90573", + "lon": "52.25909" + }, + { + "name": "124 с2", + "lat": "54.90595", + "lon": "52.25939" + }, + { + "name": "125", + "lat": "54.89923", + "lon": "52.26499" + }, + { + "name": "126", + "lat": "54.90662", + "lon": "52.25707" + }, + { + "name": "127", + "lat": "54.89859", + "lon": "52.26495" + }, + { + "name": "128", + "lat": "54.90627", + "lon": "52.25585" + }, + { + "name": "129", + "lat": "54.89812", + "lon": "52.26460" + }, + { + "name": "129А", + "lat": "54.89823", + "lon": "52.26400" + }, + { + "name": "131", + "lat": "54.89891", + "lon": "52.26377" + }, + { + "name": "132", + "lat": "54.90779", + "lon": "52.25540" + }, + { + "name": "135", + "lat": "54.90069", + "lon": "52.26252" + }, + { + "name": "137", + "lat": "54.89929", + "lon": "52.26304" + }, + { + "name": "139", + "lat": "54.89920", + "lon": "52.26183" + }, + { + "name": "139Б", + "lat": "54.89953", + "lon": "52.26179" + }, + { + "name": "140", + "lat": "54.90801", + "lon": "52.25224", + "postcode": "423455" + }, + { + "name": "140", + "lat": "54.90851", + "lon": "52.25256", + "postcode": "423455" + }, + { + "name": "141", + "lat": "54.89976", + "lon": "52.26070" + }, + { + "name": "143", + "lat": "54.90057", + "lon": "52.26031" + }, + { + "name": "145", + "lat": "54.90143", + "lon": "52.26072" + }, + { + "name": "147", + "lat": "54.90157", + "lon": "52.26005" + }, + { + "name": "149", + "lat": "54.90129", + "lon": "52.26237" + }, + { + "name": "151", + "lat": "54.90185", + "lon": "52.26243" + }, + { + "name": "153", + "lat": "54.90223", + "lon": "52.26138" + }, + { + "name": "157", + "lat": "54.90117", + "lon": "52.25885" + }, + { + "name": "157А", + "lat": "54.90057", + "lon": "52.25909" + }, + { + "name": "171", + "lat": "54.90199", + "lon": "52.25671" + }, + { + "name": "187", + "lat": "54.90302", + "lon": "52.25544" + }, + { + "name": "189", + "lat": "54.90335", + "lon": "52.25385" + }, + { + "name": "193", + "lat": "54.90488", + "lon": "52.25400" + }, + { + "name": "195", + "lat": "54.90462", + "lon": "52.25572" + }, + { + "name": "195", + "lat": "54.90418", + "lon": "52.25679" + }, + { + "name": "195", + "lat": "54.90451", + "lon": "52.25647" + }, + { + "name": "197", + "lat": "54.90426", + "lon": "52.25340" + }, + { + "name": "199", + "lat": "54.90487", + "lon": "52.25209" + }, + { + "name": "201", + "lat": "54.90619", + "lon": "52.25250" + }, + { + "name": "203", + "lat": "54.90720", + "lon": "52.25070" + } + ], + "intersectedStreets": [ + { + "name": "улица Герцена", + "names": { + "tt": "Герцен урамы" + }, + "lat": "54.90398", + "lon": "52.31797" + }, + { + "name": "улица Ризы Фахретдина", + "names": { + "tt": "Риза Фәхреддин урамы" + }, + "lat": "54.90398", + "lon": "52.31797" + }, + { + "name": "проспект Тукая", + "names": { + "tt": "Тукай проспекты", + "ru": "проспект Тукая" + }, + "lat": "54.90412", + "lon": "52.31383" + }, + { + "name": "проспект Зарипова", + "lat": "54.90766", + "lon": "52.25008" + }, + { + "name": "улица Аминова", + "lat": "54.90362", + "lon": "52.25967" + }, + { + "name": "улица Зифы Балакиной", + "lat": "54.89988", + "lon": "52.26761" + }, + { + "name": "улица Марджани", + "lat": "54.89816", + "lon": "52.28522" + }, + { + "name": "улица Чехова", + "names": { + "tt": "Чехов урамы", + "tt-lat": "Çexov uramı" + }, + "lat": "54.90434", + "lon": "52.30475" + }, + { + "name": "улица Пушкина", + "names": { + "tt": "Пушкин урамы" + }, + "lat": "54.90378", + "lon": "52.30331" + }, + { + "name": "улица Маяковского", + "names": { + "tt": "Маяковский урамы" + }, + "lat": "54.90423", + "lon": "52.31044" + }, + { + "name": "улица Островского", + "names": { + "tt": "Островский урамы" + }, + "lat": "54.90437", + "lon": "52.30589" + }, + { + "name": "улица Радищева", + "names": { + "tt": "Радищев урамы" + }, + "lat": "54.90244", + "lon": "52.29984" + }, + { + "name": "улица Гагарина", + "lat": "54.90141", + "lon": "52.29720" + }, + { + "name": "улица Джалиля", + "names": { + "tt": "Җәлил урамы" + }, + "lat": "54.90024", + "lon": "52.29413" + }, + { + "name": "улица Заслонова", + "names": { + "tt": "Заслонов урамы" + }, + "lat": "54.89871", + "lon": "52.29014" + } + ] + }, + { + "name": "Ленина", + "lat": "54.90885", + "lon": "52.25265", + "id": 726, + "buildings": [ + { + "name": "140", + "lat": "54.90885", + "lon": "52.25265" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Давликеево", + "names": { + "tt": "Дәүләки" + }, + "lat": "55.21625", + "lon": "48.36310", + "id": 703166489, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.21762", + "lon": "48.36134", + "id": 6609 + } + ], + "matchStreet": 1 + }, + { + "name": "Большая Цильна", + "names": { + "tt": "Зур Чынлы" + }, + "lat": "54.68808", + "lon": "47.85389", + "id": 762000538, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.69761", + "lon": "47.85312", + "id": 10335 + } + ], + "matchStreet": 1 + }, + { + "name": "Апастово", + "enName": "Apastovo", + "names": { + "tt": "Апас", + "ar": "أباستوفو", + "de": "Apastowo", + "cv": "Апас", + "ru": "Апастово", + "ja": "アパソトヴォ", + "ca": "Apàstovo", + "ba": "Апас" + }, + "lat": "55.20267", + "lon": "48.50687", + "id": 703166491, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "uliza Lenina", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.20401", + "lon": "48.51266", + "id": 2565 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Балтаси", + "enName": "Baltasi", + "names": { + "tt": "Балтач", + "ru": "Балтаси", + "ja": "バルタシ" + }, + "lat": "56.34462", + "lon": "50.21142", + "id": 701721057, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "56.34680", + "lon": "50.20677", + "id": 275 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Светлое Озеро", + "names": { + "tt": "Яктыкүл" + }, + "lat": "55.18347", + "lon": "52.01205", + "id": 586094617, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.17911", + "lon": "52.01449", + "id": 525, + "buildings": [ + { + "name": "1", + "lat": "55.19065", + "lon": "52.00960" + }, + { + "name": "2", + "lat": "55.19073", + "lon": "52.00889" + }, + { + "name": "45", + "lat": "55.18594", + "lon": "52.01245" + }, + { + "name": "77", + "lat": "55.18224", + "lon": "52.01449" + }, + { + "name": "79", + "lat": "55.18177", + "lon": "52.01473" + }, + { + "name": "81", + "lat": "55.18094", + "lon": "52.01533", + "postcode": "423538" + }, + { + "name": "83", + "lat": "55.18046", + "lon": "52.01499" + }, + { + "name": "94", + "lat": "55.17950", + "lon": "52.01449", + "postcode": "423538" + }, + { + "name": "96", + "lat": "55.17911", + "lon": "52.01449", + "postcode": "423538" + }, + { + "name": "96", + "lat": "55.17912", + "lon": "52.01449", + "postcode": "423538" + }, + { + "name": "98", + "lat": "55.17871", + "lon": "52.01451" + } + ], + "intersectedStreets": [ + { + "name": "улица Академика Акатьева", + "lat": "55.18053", + "lon": "52.01464" + }, + { + "name": "переулок Вахитова", + "lat": "55.17898", + "lon": "52.01479" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Камское Устье", + "enName": "Kamskoye Ustye", + "names": { + "tt": "Кама Тамагы", + "cv": "Кама Вӑрри", + "ru": "Камское Устье", + "ja": "カムスコエ・ウスチエ" + }, + "lat": "55.20157", + "lon": "49.26802", + "id": 336524471, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.20416", + "lon": "49.26960", + "id": 7493 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Кагарлик", + "lat": "49.85635", + "lon": "30.74794", + "id": 6629021, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Старое Клянчино", + "names": { + "tt": "Иске Теләнче", + "ru": "Старое Клянчино" + }, + "lat": "55.47022", + "lon": "52.52591", + "id": 582997319, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "ru": "улица Ленина" + }, + "lat": "55.46914", + "lon": "52.52182", + "id": 11253 + } + ], + "matchStreet": 1 + }, + { + "name": "Заря", + "names": { + "tt": "Заря", + "ja": "ザリャー" + }, + "lat": "54.99205", + "lon": "50.84252", + "id": 854647311, + "type": "HAMLET", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы" + }, + "lat": "54.99286", + "lon": "50.84267", + "id": 12004 + } + ], + "matchStreet": 1 + }, + { + "name": "Коцюбинське", + "enName": "Kotsiubynske", + "names": { + "ru": "Коцюбинское", + "uk": "Коцюбинське", + "prefix": "селище міського типу", + "pl": "Kotsiubynske" + }, + "lat": "50.49047", + "lon": "30.33379", + "id": 337520861, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Большое Афанасово", + "names": { + "tt": "Олы Афанас", + "ru": "Большое Афанасово" + }, + "lat": "55.59972", + "lon": "51.77507", + "id": 2463557141, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.60991", + "lon": "51.79354", + "id": 9734, + "buildings": [ + { + "name": "1", + "lat": "55.60995", + "lon": "51.79442" + }, + { + "name": "2", + "lat": "55.61010", + "lon": "51.79384" + }, + { + "name": "2А", + "lat": "55.61071", + "lon": "51.79333" + }, + { + "name": "3", + "lat": "55.60971", + "lon": "51.79416" + }, + { + "name": "4", + "lat": "55.60991", + "lon": "51.79354" + }, + { + "name": "5", + "lat": "55.60952", + "lon": "51.79393" + }, + { + "name": "6", + "lat": "55.60972", + "lon": "51.79331" + }, + { + "name": "7", + "lat": "55.60934", + "lon": "51.79361" + }, + { + "name": "8", + "lat": "55.60953", + "lon": "51.79305" + }, + { + "name": "9", + "lat": "55.60920", + "lon": "51.79339" + }, + { + "name": "10", + "lat": "55.60929", + "lon": "51.79264" + }, + { + "name": "11", + "lat": "55.60898", + "lon": "51.79307" + }, + { + "name": "12", + "lat": "55.60909", + "lon": "51.79225" + }, + { + "name": "13", + "lat": "55.60884", + "lon": "51.79283" + }, + { + "name": "14", + "lat": "55.60894", + "lon": "51.79200" + }, + { + "name": "15", + "lat": "55.60872", + "lon": "51.79266" + }, + { + "name": "16", + "lat": "55.60881", + "lon": "51.79183" + }, + { + "name": "17", + "lat": "55.60862", + "lon": "51.79247" + }, + { + "name": "18", + "lat": "55.60869", + "lon": "51.79163" + }, + { + "name": "19", + "lat": "55.60843", + "lon": "51.79217" + }, + { + "name": "20", + "lat": "55.60849", + "lon": "51.79144" + }, + { + "name": "21", + "lat": "55.60827", + "lon": "51.79189" + }, + { + "name": "22", + "lat": "55.60834", + "lon": "51.79116" + }, + { + "name": "23", + "lat": "55.60805", + "lon": "51.79155" + }, + { + "name": "24", + "lat": "55.60820", + "lon": "51.79095" + }, + { + "name": "25", + "lat": "55.60791", + "lon": "51.79133" + }, + { + "name": "26", + "lat": "55.60808", + "lon": "51.79075" + }, + { + "name": "27", + "lat": "55.60778", + "lon": "51.79114" + }, + { + "name": "27А", + "lat": "55.60766", + "lon": "51.79092" + }, + { + "name": "28", + "lat": "55.60795", + "lon": "51.79054" + }, + { + "name": "29", + "lat": "55.60752", + "lon": "51.79067" + }, + { + "name": "30", + "lat": "55.60780", + "lon": "51.79028" + }, + { + "name": "31", + "lat": "55.60735", + "lon": "51.79043" + }, + { + "name": "32", + "lat": "55.60778", + "lon": "51.78938" + }, + { + "name": "33", + "lat": "55.60718", + "lon": "51.79017" + }, + { + "name": "34", + "lat": "55.60743", + "lon": "51.78949" + }, + { + "name": "35", + "lat": "55.60703", + "lon": "51.78994" + }, + { + "name": "36", + "lat": "55.60721", + "lon": "51.78949" + }, + { + "name": "37", + "lat": "55.60686", + "lon": "51.78966" + }, + { + "name": "39", + "lat": "55.60672", + "lon": "51.78942" + }, + { + "name": "39А", + "lat": "55.60652", + "lon": "51.78884" + }, + { + "name": "41", + "lat": "55.60662", + "lon": "51.78848" + }, + { + "name": "42", + "lat": "55.60683", + "lon": "51.78846" + }, + { + "name": "42Б", + "lat": "55.60658", + "lon": "51.78747" + }, + { + "name": "45", + "lat": "55.60627", + "lon": "51.78783" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Саклов-Баш", + "names": { + "tt": "Саклаубаш" + }, + "lat": "55.37935", + "lon": "52.88140", + "id": 593610600, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "tt-lat": "Lenin uramı" + }, + "lat": "55.37916", + "lon": "52.88016", + "id": 1816 + } + ], + "matchStreet": 1 + }, + { + "name": "Рокитне", + "enName": "Rokytne", + "names": { + "de": "Rokytne", + "ru": "Ракитное", + "uk": "Рокитне", + "prefix": "селище міського типу", + "pl": "Rokitna" + }, + "lat": "49.68673", + "lon": "30.47303", + "id": 337549274, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Богуслав", + "enName": "Bohuslav", + "names": { + "de": "Bohuslaw", + "ru": "Богуслав", + "uk": "Богуслав", + "prefix": "місто", + "pl": "Bohusław" + }, + "lat": "49.54765", + "lon": "30.87330", + "id": 337555159, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Пестрецы", + "enName": "Pestretsy", + "names": { + "tt": "Питрәч", + "ru": "Пестрецы", + "ja": "ペストレツィ", + "lt": "Pestrecai" + }, + "lat": "55.75021", + "lon": "49.65709", + "id": 697241159, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Алексеевское", + "enName": "Alexeyevskoye", + "names": { + "tt": "Алексеевск", + "de": "Alexejewskoje", + "ru": "Алексеевское", + "ja": "アレクセーエフスコエ", + "lt": "Aleksėjevskojė" + }, + "lat": "55.30496", + "lon": "50.11289", + "id": 336524229, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "uliza Lenina", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.30730", + "lon": "50.12300", + "id": 6508 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Мензелинск", + "enName": "Menzelinsk", + "names": { + "tt": "Минзәлә", + "de": "Menselinsk", + "ru": "Мензелинск", + "ja": "メンゼリンスク" + }, + "lat": "55.72556", + "lon": "53.10718", + "id": 337839017, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.72411", + "lon": "53.10192", + "id": 3916 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Бугульма", + "enName": "Bugulma", + "names": { + "tt": "Бөгелмә", + "de": "Bugulma", + "ru": "Бугульма", + "ja": "ブグリマ" + }, + "lat": "54.53841", + "lon": "52.79559", + "id": 1707207947, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.54633", + "lon": "52.78989", + "id": 595 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Мамадыш", + "enName": "Mamadysh", + "names": { + "tt": "Мамадыш", + "de": "Mamadysch", + "ru": "Мамадыш", + "ja": "ママドィシ", + "az": "Mamadış" + }, + "lat": "55.70908", + "lon": "51.40891", + "id": 337839024, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица В. И. Ленина", + "lat": "55.71813", + "lon": "51.42443", + "id": 1740, + "buildings": [ + { + "name": "1/22", + "lat": "55.71805", + "lon": "51.42372", + "postcode": "422190" + }, + { + "name": "2", + "lat": "55.71847", + "lon": "51.42376" + }, + { + "name": "16", + "lat": "55.71888", + "lon": "51.42202" + }, + { + "name": "18/26", + "lat": "55.71893", + "lon": "51.42172" + }, + { + "name": "19", + "lat": "55.71890", + "lon": "51.41992" + }, + { + "name": "23", + "lat": "55.71911", + "lon": "51.41926" + }, + { + "name": "70", + "lat": "55.72104", + "lon": "51.41293" + }, + { + "name": "73", + "lat": "55.72167", + "lon": "51.40851" + }, + { + "name": "74", + "lat": "55.72127", + "lon": "51.41194" + }, + { + "name": "75А", + "lat": "55.72172", + "lon": "51.40578" + }, + { + "name": "75В", + "lat": "55.72161", + "lon": "51.40640" + }, + { + "name": "80", + "lat": "55.72155", + "lon": "51.41087" + }, + { + "name": "85А", + "lat": "55.72338", + "lon": "51.40188" + }, + { + "name": "94Б", + "lat": "55.72255", + "lon": "51.40617" + }, + { + "name": "96", + "lat": "55.72326", + "lon": "51.40492" + }, + { + "name": "104", + "lat": "55.72411", + "lon": "51.40293" + }, + { + "name": "105", + "lat": "55.72850", + "lon": "51.39870" + }, + { + "name": "107", + "lat": "55.72903", + "lon": "51.39891" + }, + { + "name": "107А", + "lat": "55.72898", + "lon": "51.39791" + }, + { + "name": "108", + "lat": "55.72640", + "lon": "51.40123", + "postcode": "422190" + }, + { + "name": "110", + "lat": "55.72655", + "lon": "51.40100", + "postcode": "422190" + }, + { + "name": "118", + "lat": "55.72943", + "lon": "51.39990", + "postcode": "422190" + } + ], + "intersectedStreets": [ + { + "name": "улица Толстого", + "lat": "55.71882", + "lon": "51.42155" + }, + { + "name": "улица Галактионова", + "lat": "55.71814", + "lon": "51.42443" + }, + { + "name": "улица Максимова", + "lat": "55.73760", + "lon": "51.39655" + }, + { + "name": "улица Абсалямова", + "names": { + "tt": "Әпсәләмов урамы" + }, + "lat": "55.73633", + "lon": "51.39705" + }, + { + "name": "Ипподромная улица", + "lat": "55.73581", + "lon": "51.39722" + }, + { + "name": "Товарищеская улица", + "lat": "55.73557", + "lon": "51.39728" + }, + { + "name": "улица Р. Нуриева", + "lat": "55.73485", + "lon": "51.39763" + }, + { + "name": "Вишнёвая улица", + "lat": "55.73407", + "lon": "51.39801" + }, + { + "name": "улица Энергетиков", + "lat": "55.73401", + "lon": "51.39803" + }, + { + "name": "улица Х. Такташ", + "lat": "55.73389", + "lon": "51.39810" + }, + { + "name": "Радужная улица", + "lat": "55.73326", + "lon": "51.39842" + }, + { + "name": "улица Дружбы", + "lat": "55.73326", + "lon": "51.39842" + }, + { + "name": "улица 50 лет Победы", + "lat": "55.73045", + "lon": "51.39947" + }, + { + "name": "улица Ш. Маннура", + "lat": "55.73006", + "lon": "51.39956" + }, + { + "name": "Майская улица", + "lat": "55.72997", + "lon": "51.39956" + }, + { + "name": "улица Нигматуллина", + "lat": "55.72785", + "lon": "51.40001" + }, + { + "name": "переулок Нигматуллина", + "lat": "55.72776", + "lon": "51.40003" + }, + { + "name": "улица Мичурина", + "lat": "55.72707", + "lon": "51.40037" + }, + { + "name": "Школьная улица", + "lat": "55.72677", + "lon": "51.40059" + }, + { + "name": "улица Ф. Энгельса", + "lat": "55.72602", + "lon": "51.40110" + }, + { + "name": "Садовая улица", + "lat": "55.72500", + "lon": "51.40188" + }, + { + "name": "Комсомольская улица", + "lat": "55.72367", + "lon": "51.40290" + }, + { + "name": "Союзная улица", + "lat": "55.72246", + "lon": "51.40591" + }, + { + "name": "улица Тукая", + "lat": "55.72201", + "lon": "51.40795" + }, + { + "name": "улица Азина", + "names": { + "tt": "Азин урамы" + }, + "lat": "55.72148", + "lon": "51.41020" + }, + { + "name": "Красноармейская улица", + "lat": "55.72093", + "lon": "51.41252" + }, + { + "name": "улица Гагарина", + "names": { + "tt": "Гагарин урамы" + }, + "lat": "55.72043", + "lon": "51.41469" + }, + { + "name": "улица М. Джалиля", + "lat": "55.71993", + "lon": "51.41677" + }, + { + "name": "улица К. Маркса", + "lat": "55.71946", + "lon": "51.41889" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Болгар", + "names": { + "tt": "Болгар", + "ja": "ボルガル" + }, + "lat": "55.41516", + "lon": "51.60141", + "id": 705268166, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.41721", + "lon": "51.59851", + "id": 9311, + "intersectedStreets": [ + { + "name": "улица Гагарина", + "lat": "55.41721", + "lon": "51.59851" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Бавлы", + "enName": "Bavly", + "names": { + "tt": "Баулы", + "de": "Bawly", + "ru": "Бавлы", + "ja": "バヴルィ", + "et": "Bavlõ" + }, + "lat": "54.40309", + "lon": "53.23571", + "id": 337839279, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "enName": "Lenina Street", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.40419", + "lon": "53.23696", + "id": 6957 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Згурівка", + "enName": "Zghurivka", + "names": { + "de": "Shuriwka", + "ru": "Згуровка", + "prefix": "селище міського типу", + "uk": "Згурівка", + "pl": "Zhuriwka" + }, + "lat": "50.49506", + "lon": "31.76918", + "id": 337520849, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Буинск", + "enName": "Buinsk", + "names": { + "tt": "Буа", + "de": "Buinsk", + "cv": "Пӑва", + "ru": "Буинск", + "ja": "ブインスク" + }, + "lat": "54.97229", + "lon": "48.29289", + "id": 295862317, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.96690", + "lon": "48.29476", + "id": 5936 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Гостомель", + "enName": "Hostomel", + "names": { + "ru": "Гостомель", + "uk": "Гостомель", + "prefix": "селище міського типу", + "pl": "Hostomel" + }, + "lat": "50.58826", + "lon": "30.25909", + "id": 337519314, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Бровари", + "enName": "Brovary", + "names": { + "de": "Browary", + "ru": "Бровары", + "prefix": "місто", + "uk": "Бровари", + "eo": "Brovari", + "fr": "Brovary", + "pl": "Browary", + "hu": "Brovari", + "et": "Brovarõ", + "sr": "Бровари" + }, + "lat": "50.51111", + "lon": "30.79004", + "id": 3673183717, + "type": "CITY", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Победа", + "names": { + "tt": "Победа" + }, + "lat": "54.67300", + "lon": "52.66657", + "id": 783002941, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "54.67386", + "lon": "52.66232", + "id": 4552 + } + ], + "matchStreet": 1 + }, + { + "name": "Димер", + "enName": "Dymer", + "names": { + "ru": "Дымер", + "uk": "Димер", + "prefix": "селище міського типу", + "pl": "Dymer" + }, + "lat": "50.78355", + "lon": "30.30780", + "id": 1585808480, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Набережные Челны", + "enName": "Naberezhnye Chelny", + "names": { + "tt": "Яр Чаллы", + "de": "Nabereschnyje Tschelny", + "no": "Naberezjnyje Tsjelny", + "be": "Наберажныя Чалны", + "fi": "Naberežnyje Tšelny", + "ru": "Набережные Челны", + "pt": "Naberejnye Chelny", + "bg": "Набережние Челни", + "lt": "Naberežnyje Čelnai", + "hr": "Naberežnye Čelny", + "lv": "Naberežnije Čelni", + "fr": "Naberejnye Tchelny", + "ka": "ნაბერეჟნიე ჩელნი", + "uk": "Набережні Човни", + "ca": "Nàberejnie_Txelní", + "sr": "Набережније Челни", + "sv": "Naberezjnyje Tjelny", + "ko": "나베레즈니예첼니", + "it": "Naberežnye Čelny", + "es": "Náberezhnye Chelny", + "zh": "卡马河畔切尔尼", + "et": "Naberežnõje Tšelnõ", + "cs": "Naberežnyje Čelny", + "ar": "نابريجناي تشلني", + "cv": "Чаллă", + "ja": "ナベレジヌイェ・チェルヌイ", + "az": "Naberejnıye Çelnı", + "fa": "نابرژنیه چلنی", + "pl": "Nabierieżnyje Czełny", + "ro": "Naberejnîe Celnî", + "nl": "Naberezjnye Tsjelny", + "tr": "Yarçallı", + "ba": "Яр Саллы" + }, + "lat": "55.74201", + "lon": "52.39923", + "id": 191749240, + "type": "CITY", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.69950", + "lon": "52.31059", + "id": 1334, + "buildings": [ + { + "name": "9", + "lat": "55.71643", + "lon": "52.38245" + } + ], + "intersectedStreets": [ + { + "name": "Полевая улица", + "lat": "55.69824", + "lon": "52.30953" + }, + { + "name": "улица Фрунзе", + "names": { + "tt": "Фрунзе урамы" + }, + "lat": "55.69824", + "lon": "52.30953" + }, + { + "name": "улица Карла Маркса", + "names": { + "tt": "Карл Маркс урамы" + }, + "lat": "55.69995", + "lon": "52.31029" + }, + { + "name": "Красногвардейская улица", + "lat": "55.70029", + "lon": "52.31009" + }, + { + "name": "Комсомольская набережная", + "lat": "55.70193", + "lon": "52.30900" + } + ] + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Богдашкино", + "enName": "Bogdashkino", + "names": { + "cv": "Пухтел", + "ru": "Богдашкино" + }, + "lat": "54.61321", + "lon": "47.67519", + "id": 336525269, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "переулок Ленина", + "lat": "54.61380", + "lon": "47.67824", + "id": 10951 + }, + { + "name": "улица Ленина", + "lat": "54.60684", + "lon": "47.67318", + "id": 9171 + } + ], + "matchStreet": 1 + }, + { + "name": "Сквира", + "enName": "Skvyra", + "names": { + "kk": "Skvyra", + "de": "Skwyra", + "ceb": "Skvyra", + "be": "Сквыра", + "ru": "Сквира", + "sv": "Skvyra", + "prefix": "місто", + "it": "Skvyra", + "fr": "Skvyra", + "cs": "Skvyra", + "hy": "Սկվյրա", + "vi": "Skvyra", + "uk": "Сквира", + "sk": "Skvyra", + "fa": "اسکویرا", + "pl": "Skwyra", + "ro": "Skvîra" + }, + "lat": "49.73370", + "lon": "29.66266", + "id": 337547206, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Рыбная Слобода", + "enName": "Rybnaya Sloboda", + "names": { + "tt": "Балык Бистәсе", + "ru": "Рыбная Слобода", + "ja": "ルィブナヤ・スロボーダ" + }, + "lat": "55.46442", + "lon": "50.14061", + "id": 703680750, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "tt-lat": "Lenin uramı", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.46726", + "lon": "50.14763", + "id": 2637 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Арск", + "enName": "Arsk", + "names": { + "tt": "Арча", + "de": "Arsk", + "ru": "Арск", + "ja": "アルスク" + }, + "lat": "56.09099", + "lon": "49.87718", + "id": 295868224, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Каркаусь", + "names": { + "tt": "Кәркәүч" + }, + "lat": "56.10411", + "lon": "51.14129", + "id": 797051488, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "lat": "56.10492", + "lon": "51.14228", + "id": 7812 + } + ], + "matchStreet": 1 + }, + { + "name": "Мусабай-Завод", + "names": { + "tt": "Мусабай-Завод", + "ru": "Мусабай-Завод" + }, + "lat": "55.51024", + "lon": "52.40260", + "id": 582657576, + "type": "VILLAGE", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.51051", + "lon": "52.40217", + "id": 7928, + "buildings": [ + { + "name": "29", + "lat": "55.51133", + "lon": "52.40182" + } + ] + } + ], + "matchStreet": 1 + }, + { + "name": "Тюлячи", + "enName": "Tyulyachi", + "names": { + "tt": "Теләче", + "ru": "Тюлячи", + "ja": "チュリャチ" + }, + "lat": "55.89188", + "lon": "50.23350", + "id": 697241170, + "type": "TOWN", + "listOfStreets": [ + { + "name": "улица Ленина", + "names": { + "tt": "Ленин урамы", + "de": "Leninstraße", + "be": "вулiца Ленiна", + "ru": "улица Ленина", + "mrj": "Ленин öлицä", + "fr": "Rue Lénine", + "ba": "Ленин урамы" + }, + "lat": "55.89223", + "lon": "50.24659", + "id": 3195 + } + ], + "init": 1, + "matchStreet": 1 + }, + { + "name": "Васильків", + "enName": "Vasylkiv", + "names": { + "de": "Wassylkiw", + "ru": "Васильков", + "uk": "Васильків", + "prefix": "місто", + "fr": "Vassylkiv", + "pl": "Wasilków", + "hu": "Vasylkiv" + }, + "lat": "50.17387", + "lon": "30.32158", + "id": 337527490, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + }, + { + "name": "Красный Ключ", + "enName": "Krasny Klyuch", + "names": { + "tt": "Красный Ключ", + "ja": "クラスヌイ・クリューチ" + }, + "lat": "55.68249", + "lon": "51.81914", + "id": 585272830, + "type": "TOWN", + "listOfStreets": [], + "init": 1 + } + ] +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 092f87b225..1a3cce49f9 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -438,26 +438,6 @@ public class AndroidUtils { return !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); } - public static String getFileAsString(File file) { - try { - FileInputStream fin = new FileInputStream(file); - BufferedReader reader = new BufferedReader(new InputStreamReader(fin, "UTF-8")); - StringBuilder sb = new StringBuilder(); - String line; - while ((line = reader.readLine()) != null) { - if (sb.length() > 0) { - sb.append("\n"); - } - sb.append(line); - } - reader.close(); - fin.close(); - return sb.toString(); - } catch (Exception e) { - return null; - } - } - public static PointF centroidForPoly(PointF[] points) { float centroidX = 0, centroidY = 0; diff --git a/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java index 8065d38bf6..51ac6b50a2 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java @@ -11,7 +11,6 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; -import net.osmand.AndroidUtils; import net.osmand.IndexConstants; import net.osmand.Location; import net.osmand.PlatformUtil; @@ -824,7 +823,7 @@ public class ExternalApiHelper { // test show gpx (data) uri = Uri.parse("osmand.api://show_gpx"); intent = new Intent(Intent.ACTION_VIEW, uri); - intent.putExtra("data", AndroidUtils.getFileAsString( + intent.putExtra("data", Algorithms.getFileAsString( new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName))); } @@ -836,7 +835,7 @@ public class ExternalApiHelper { // test navigate gpx (data) uri = Uri.parse("osmand.api://navigate_gpx?force=true"); intent = new Intent(Intent.ACTION_VIEW, uri); - intent.putExtra("data", AndroidUtils.getFileAsString( + intent.putExtra("data", Algorithms.getFileAsString( new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName))); }