ahmad316948

چگونه نقشه افلاین قسمتی از روستا یا شهر رو تویه برنامه اضافه کنم؟

ahmad316948 ۱۳۹۷/۰۵/۱۳ مباحث عمومی برنامه‌نویسی

سلام. می خوام تویه بخشی از برنامم، نقشه افلاین اضافه کنم که موقعیت کاربر رو توسط GPS نشون بده. ممنون میشم اگه راهنمایی کنید.

پاسخ‌ها به این تاپیک
kernel
kernel علاقمند به هک و امنیت ، یادگیری ماشین
۱۳۹۷/۰۵/۱۳

سلام ، وقتتون بخیر

شما هیچ اطلاع از پلتفرمی که قراره براش برنامه بسازید ندادین.

لطفا سوال خودتون رو با جزئیات بیشتری مطرح کنید.

بروزرسانی:

برای این کار شما باید نقشه مد نظرتون رو دانلود کنید و داخل پوشه assets قرار بدین

برای استفاده از نقشه ذخیره شده تون میتونید از تکیه کد زیر استفاده کنید :

public class CustomMapTileProvider implements TileProvider {
    private static final int TILE_WIDTH = 256;
    private static final int TILE_HEIGHT = 256;
    private static final int BUFFER_SIZE = 16 * 1024;

    private AssetManager mAssets;

    public CustomMapTileProvider(AssetManager assets) {
        mAssets = assets;
    }

    @Override
    public Tile getTile(int x, int y, int zoom) {
        byte[] image = readTileImage(x, y, zoom);
        return image == null ? null : new Tile(TILE_WIDTH, TILE_HEIGHT, image);
    }

    private byte[] readTileImage(int x, int y, int zoom) {
        InputStream in = null;
        ByteArrayOutputStream buffer = null;

        try {
            in = mAssets.open(getTileFilename(x, y, zoom));
            buffer = new ByteArrayOutputStream();

            int nRead;
            byte[] data = new byte[BUFFER_SIZE];

            while ((nRead = in.read(data, 0, BUFFER_SIZE)) != -1) {
                buffer.write(data, 0, nRead);
            }
            buffer.flush();

            return buffer.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } catch (OutOfMemoryError e) {
            e.printStackTrace();
            return null;
        } finally {
            if (in != null) try { in.close(); } catch (Exception ignored) {}
            if (buffer != null) try { buffer.close(); } catch (Exception ignored) {}
        }
    }

    private String getTileFilename(int x, int y, int zoom) {
        return "map/" + zoom + '/' + x + '/' + y + ".png";
    }
}

و یا میتونی از کتابخانه هایی نظیر این استفاده کنید :

https://github.com/cocoahero/android-gmaps-addons

ahmad316948
ahmad316948
۱۳۹۷/۰۵/۱۳

الان یه مشکلی دیگه پیش اومده. من میخام از یه اکتیویتی به اکتیویتی دیگه برم. ولی به محض کلیلک کردن رویه دکمه برنامه کرش میکنه.

اینم سورس کدهام

http://imgurl.ir/uploads/18047_IMG_20180805_001537.jpg

در پاسخ به

kernel
kernel علاقمند به هک و امنیت ، یادگیری ماشین
۱۳۹۷/۰۵/۱۴

برای پاسخگویی صحیح متن ارور و همچنین سورس کد اکتیویتی دوم شما هم نیاز هست.

در پاسخ به