#android #arcgis #esri #arcgis-runtime
#Android #arcgis #esri #arcgis-runtime
Вопрос:
Как получить координаты (широта / долгота) видимых углов экстента карты для ArcGIS MapView с помощью Android SDK?
Комментарии:
1. Вы пробовали getExtent()? И преобразовать 4 точки возвращенного полигона в WGS84 (EPSG: 4326)?
Ответ №1:
ArcGIS Runtime 10.2.x:
SpatialReference WGS1984 = SpatialReference.create(4326);
Polygon extent = (Polygon) GeometryEngine.project(
mapView.getExtent(),
mapView.getSpatialReference(),
WGS1984);
for (int i = 0; i < extent.getPointCount(); i ) {
Point corner = extent.getPoint(i);
// Do something with that corner, e.g. print it...
Toast.makeText(MainActivity.this,
"Here's a corner: " corner.getX() ", " corner.getY(),
Toast.LENGTH_LONG).show();
}
ArcGIS Runtime Quartz (бета-версия 3):
SpatialReference WGS1984 = SpatialReference.create(4326);
Envelope extent = (Envelope) GeometryEngine.project(
mapView.getCurrentViewpoint(Viewpoint.Type.BOUNDING_GEOMETRY).getTargetGeometry(),
WGS1984);
// Do something with the extent, e.g. print it...
Toast.makeText(MainActivity.this,
"Extent:n(" extent.getXMin() ", " extent.getYMin() "),n"
"(" extent.getXMax() ", " extent.getYMax() ")",
Toast.LENGTH_LONG).show();
Комментарии:
1. Дорогой Гэри, если я пытаюсь использовать
Cannot resolve method 'WGS1984()
is show, он не может быть решен повторно. Вы знаете, почему это происходит? Есть ли какая-либо библиотека для компиляции, необходимая для зависимости?2.
WGS1984
это просто имя переменной, которое я выбрал для возвращаемого значенияSpatialReference.create(4326)
. Это не метод. Возможно, вам следует создать новый вопрос и поделиться своим кодом в этом вопросе, потому что мой код не используетсяWGS1984
в качестве метода.3. Не могли бы вы взглянуть на этот вопрос gis.stackexchange.com/questions/237103 /…
4. Пожалуйста, помогите мне здесь gis.stackexchange.com/questions/237257 /…