hatte ich Datei mit den Ländern, aus denen ich Features erhalten, und dann tun Liste mit einfachen Markierungen:Ausklappen Karten wie Land für Punktposition erhalten
// Load country polygons and adds them as markers
countries = GeoJSONReader.loadData(this, "countries.geo.json");
countryMarkers = MapUtils.createSimpleMarkers(countries);
Jetzt möchte ich überprüfen, in welchem Land der gegebenen Punkt ist. Also warf ich einfach Marker in AbstractShapeMarker und dann prüfen, ob isInsideByLocation:
for (Marker country: countryMarkers) {
AbstractShapeMarker cou = (AbstractShapeMarker)country;
if (cou.isInsideByLocation(place.getLocation())) {
System.out.println("country!:" + country.getLocation() + "" +country.getProperties().get("name"));
}
}
Dies funktioniert gut für einfach geformte Länder, sondern auch für Länder, die mehrere Polygone (wie zB USA) ist enthält das funktioniert nicht.
In der Dokumentation http://unfoldingmaps.org/javadoc/de/fhpotsdam/unfolding/data/MarkerFactory.html die Marker-Fabrik zu tun:
MarkerFactory markerFactory = new MarkerFactory();
markerFactory.setPolygonClass(MyPolygonMarker.class);
List<Marker> markers = markerFactory.createMarkers(features);
map.addMarkers(markers);
Aber ich kann nicht verstehen, wie ich Klassen erstellen kann, so dass ich nur Polygonformen erhalten.
Oder vielleicht ist dies eine andere Methode, um die Position der Position für ungefaltete Karten zu überprüfen.
Vielen Dank im Voraus!
Danke, Thagel, aber das ist nicht ich brauche. Ich brauche den Ländernamen ohne Map-Iteration - sonst könnte ich country.isInside (arg0, arg1, arg2) verwenden. Name des Landes ist für andere Berechnungen erforderlich .. –