API Карт Google для Android - PullRequest
       48

API Карт Google для Android

0 голосов
/ 25 октября 2018

Я успешно интегрировал метки и полигоны KML в свое приложение для Android, но значки пользовательских маркеров не отображаются.

Видя, что это определено в KMLStyle.Любой способ создать пользовательский KMLStyle, который не только для чтения или другие решения?

Прикрепленный код, который я использую, может использоваться любой файл KML с пользовательским значком, но я не могу получить доступ к getIconURL (), а также кажется, что только для чтения я не могу использовать setIconURL ().

private class DownloadKmlFile extends AsyncTask<String, Void, byte[]> {
    private final String mUrl;

    public DownloadKmlFile(String url) {
        mUrl = url;
    }

    protected byte[] doInBackground(String... params) {
        try {
            InputStream is = new URL(mUrl).openStream();
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            int nRead;
            byte[] data = new byte[16384];
            while ((nRead = is.read(data, 0, data.length)) != -1) {
                buffer.write(data, 0, nRead);
            }
            buffer.flush();
            return buffer.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(byte[] byteArr) {
        try {
            KmlLayer kmlLayer = new KmlLayer(mMap, new ByteArrayInputStream(byteArr),
                    getApplicationContext());
            kmlLayer.addLayerToMap();
            Log.d("IconURL", ((KmlPlacemark)(kmlLayer.getPlacemarks().iterator().next())).getInlineStyle().getIconUrl());
            kmlLayer.setOnFeatureClickListener(new KmlLayer.OnFeatureClickListener() {
                @Override
                public void onFeatureClick(Feature feature) {
                    /*Toast.makeText(KmlDemoActivity.this,
                            "Feature clicked: " + feature.getId(),
                            Toast.LENGTH_SHORT).show();*/
                }
            });
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

}

...