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

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

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

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

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

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

بروزرسانی:

برای این کار شما باید نقشه مد نظرتون رو دانلود کنید و داخل پوشه 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

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

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

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

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

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

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

online-support-icon