Как импортировать файл полигона KML в фрагмент карты Google android studio - PullRequest
0 голосов
/ 17 марта 2020

это мой первый вопрос здесь, так что наберитесь терпения, пожалуйста.

Я изучаю java для Android развития и уже несколько недель застрял в одной проблеме:

Я просто не могу импортировать простой файл KML в своем приложении!

Я попробовал kmlLayer, я поместил файл в свой devide как поток ввода, и у меня ничего не работает. (Используя код, который преобразует строку (где мой файл находился на моем устройстве) в InputStream с кодировкой «utf-8»)

Так, ребята, как-то, как я могу импортировать этот многоугольник .kml?

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Schema name="Extra_31_168_366" id="Extra_31_168_366">
    <SimpleField name="Name" type="string"></SimpleField>
</Schema>
<Folder><name>Extra_31_168_366</name>
  <Placemark>
    <name>Zona Extra a levantar</name>
    <Style><LineStyle><color>FF232323</color><width>0.737006</width></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
      <MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>1.04761446057425,43.1864681306065 1.04740371376916,43.186733854839 1.04859489136319,43.1875310275366 1.04966695119782,43.1877875888645 1.05063821908219,43.1884015034707 1.0513254369249,43.1888596486991 1.05327713559821,43.1889879293631 1.05492645842072,43.1892170019774 1.05634670862899,43.1890520696951 1.05765700398243,43.1895835181601 1.05871073800792,43.1907655328496 1.05776695883726,43.1951179125201 1.06452918240956,43.1965839772512 1.06447420498214,43.195631035176 1.06418099203592,43.1933403090336 1.06093732381831,43.1920391765848 1.05740044265448,43.1885939244666 1.05425298493486,43.18868097206 1.05134834418633,43.1879479396945 1.04761446057425,43.1864681306065</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>
  </Placemark>
</Folder>
</Document></kml>

Прямо сейчас я делаю почти вручную, вот так: Excel, world и помещаю этот код в мой OnMapReady (GoogleMap googleMap):

PolygonOptions rectOptions = new PolygonOptions()
                .add(new LatLng(43.1864681306065,1.04761446057425), new LatLng(43.186733854839,1.04740371376916), new LatLng(43.1875310275366,1.04859489136319), new LatLng(43.1877875888645,1.04966695119782), new LatLng(43.1884015034707,1.05063821908219), new LatLng(43.1888596486991,1.0513254369249), new LatLng(43.1889879293631,1.05327713559821), new LatLng(43.1892170019774,1.05492645842072), new LatLng(43.1890520696951,1.05634670862899), new LatLng(43.1895835181601,1.05765700398243), new LatLng(43.1907655328496,1.05871073800792), new LatLng(43.1951179125201,1.05776695883726), new LatLng(43.1965839772512,1.06452918240956), new LatLng(43.195631035176,1.06447420498214), new LatLng(43.1933403090336,1.06418099203592), new LatLng(43.1920391765848,1.06093732381831), new LatLng(43.1885939244666,1.05740044265448), new LatLng(43.18868097206,1.05425298493486), new LatLng(43.1879479396945,1.05134834418633), new LatLng(43.1864681306065,1.04761446057425));
googleMap.addPolygon(rectOptions);

1 Ответ

1 голос
/ 23 марта 2020

Вы можете добавить слой KML на карту, сначала создав экземпляр класса KmlLayer . Существует два (2) способа создания KmlLayer :

  • рендеринга набора данных KML из локального ресурса:
    • KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext());
  • отображает набор данных KML из локального потока
    • KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());

После создания KmlLayer , позвоните addLayerToMap () , чтобы добавить импортированные данные на карту.

  • layer.addLayerToMap();

Для получения дополнительной информации вы можете обратиться к SDK Maps для Android Утилита импорта KML

...