مرتضی حسینی
مرتضی حسینی
خواندن ۷ دقیقه·۴ سال پیش

نمایش نقشه ایران (map.ir) در سه سوت

سلام؛

امروز به این فکر افتادم که هر وقت می خوام یه ایده ی نرم افزار موبایل رو دنبال کنم، چرا هنوز شروع نکرده پشیمون میشم؛ بعدش که یه کم فکر کردم، به این نتیجه رسیدم که یکی از دلایل اصلیش بزرگ جلوه دادن کار هست، آخه چرا؟؟؟

سرتونو درد نیارم، خلاصه این که خیلی از ماها تابه حال خواستیم یه نرم افزار توسعه بدیم که داخلش نقشه ایران رو نمایش بدیم، داخلش امکان جستجو بزاریم و کلی کار دیگه که تو یه مقاله ی دیگه بهش می رسیم.

حالا می خوام در سه سوت، نقشه ایران رو تو گوشی های اندروید بیارم بالا؛ شروع کنیم دیگه ...

اول از همه باید محیط برنامه نویسیتونو آماده کنید؛ قاعدتا بهترین گزینه تا امروز که من دارم براتون مینویسم، Android studio هست که برای همه ی سیستم عامل ها هم وجود داره. اگر ندارینش از اینجا دانلود کنید؛ نصبش کنید و برید قدم بعدی، اگر هم که نصب کردینش قبلا، پس برید مرحله بعد دیگه، منتظر چی هستید.
نکته: اندروید استودیو من ورژن V4.1 Canary 10 هست ولی مهم نیست شما از چه نسخه ای استفاده می کنید.

۱. یه پروژه جدید بسازید که فقط یه اکتیویتی داشته باشه.

۲. فایل gradle:app رو باز کنید و کتابخونه نقشه رو اضافه کنید:

implementation 'ir.map:map-sdk:4.0.0'

۳. پروژه رو build کنید.

۴. حالا فایل layout رو باز کنید و view نقشه رو به شکل زیر اضافه کنید:

<?xml version=&quot1.0&quot encoding=&quotutf-8&quot?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot xmlns:mapbox=&quothttp://schemas.android.com/apk/res-auto&quot xmlns:tools=&quothttp://schemas.android.com/tools&quot android:layout_width=&quotmatch_parent&quot android:layout_height=&quotmatch_parent&quot tools:context=&quot.MainActivity&quot> <ir.map.sdk_map.maps.MapView android:id=&quot@+id/map_view&quot android:layout_width=&quotmatch_parent&quot android:layout_height=&quotmatch_parent&quot mapbox:mapbox_cameraZoomMax=&quot20&quot mapbox:mapbox_cameraZoomMin=&quot1&quot /> </androidx.constraintlayout.widget.ConstraintLayout>
برای نمایش نقشه ی map.ir باید به اینجا برید و خیلی سریع یه اکانت بسازید، وارد محیط کاربری خودتون بشید، یه پروژه جدید بسازید و api-key بگیرید که لازمتون میشه. اینکه چه جوری پروژه بسازید خیلی آسونه، اینکه به چه نامی بسازید هم اصلا مهم نیست. اگر سوالی داشتید، حتما زیر پست بپرسید. میتونید با پشتیبانی مپ هم در میون بزارید.

۵. یه کلاس به نام دلخواه (من به اسم AppController می سازم!) بسازید؛ از Application ارث بری کنید. اون api-key بود که گرفتید،‌اینجا توی کلاس AppController کپیش کنید:

import android.app.Application; import ir.map.sdk_map.Mapir; public class AppController extends Application { @Override public void onCreate() { super.onCreate(); Mapir.getInstance(this, &quotpaste your api-key&quot); } }

۶. حالا فایل Manifest رو باز کنید و اسم کلاس Application در مشخصه ی name بنویسید: (خیلی مهمه!)

<?xml version=&quot1.0&quot encoding=&quotutf-8&quot?> <manifest xmlns:android=&quothttp://schemas.android.com/apk/res/android&quot package=&quotir.map.sample.showmap&quot> <application android:name=&quot.AppController&quot android:allowBackup=&quottrue&quot android:icon=&quot@mipmap/ic_launcher&quot android:label=&quot@string/app_name&quot android:roundIcon=&quot@mipmap/ic_launcher_round&quot android:supportsRtl=&quottrue&quot android:theme=&quot@style/Theme.ShowMap&quot> <activity android:name=&quotir.map.sample.showmap.MainActivity&quot> <intent-filter> <action android:name=&quotandroid.intent.action.MAIN&quot /> <category android:name=&quotandroid.intent.category.LAUNCHER&quot /> </intent-filter> </activity> </application> </manifest>

۷. نوبت میرسه به مرحله ی آخر؛ فایل Activity رو باز کنید و کدهای زیر رو کپی کنید؛ اگر دلتون میخواد بدونید که هر قسمت از کد برای چی اضافه شده، با پشتیبانی مپ تماس بگیرید و پس از ارتباط با تیم اندروید، سؤالتونو بپرسید؛ چون لازم نیست منم اینجا توضیح نمیدم:

import android.os.Bundle; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.maps.Style; import ir.map.sdk_map.MapirStyle; import ir.map.sdk_map.maps.MapView; public class MainActivity extends AppCompatActivity { MapboxMap map; Style mapStyle; MapView mapView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = findViewById(R.id.map_view); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { map = mapboxMap; map.setStyle(new Style.Builder().fromUri(MapirStyle.MAIN_MOBILE_VECTOR_STYLE), new Style.OnStyleLoaded() { @Override public void onStyleLoaded(@NonNull Style style) { mapStyle = style; } }); } }); } @Override public void () { super.(); mapView.(); } @Override public void () { super.(); mapView.(); } @Override public void () { super.(); mapView.(); } @Override public void () { super.(); mapView.(); } @Override public void onLowMemory() { super.onLowMemory(); mapView.onLowMemory(); } @Override protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); } @Override protected void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); } }

۸. تمام.

۹. اپ رو اجرا کنید تا نقشه رو ببینید:

نقشه map.ir
نقشه map.ir
اینم لینک همین پروژه ای که براتون توضیح دادم.
هر امکانات دیگه ای لازم دارید و یا اگر می خواید از آموزش های خود map.ir برای توسعه ی نقشه و سرویس های اون استفاده کنید، برید اینجا تا کلی مستندات و مثال و پروژه های نمونه ببینید.
دوست داشتین نظر بدین ولی لایکو دیگه حتما بدین.




نقشهاندرویدجاواmap ir
شاید از این پست‌ها خوشتان بیاید