جستجو برای:
سبد خرید 0
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
ورود
گذرواژه خود را فراموش کرده اید؟
عضویت

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

ارسال مجدد کد یکبار مصرف (00:60)
  • 02171058559
  • info@amooznegar.com
  • لیست علاقه مندی ها
آکادمی آموزنگار
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آکادمی آموزنگار > اخبار > برنامه نویسی > اندروید > آموزش OpenStreetMap و مقایسه با نقشه گوگل مپ

آموزش OpenStreetMap و مقایسه با نقشه گوگل مپ

1400-05-23
ارسال شده توسط آموزنگار
اندروید
آموزش OpenStreetMap

اوپن استریت مپ یا OSM یا openstreetmap پروژه ای مشارکتی برای تولید نقشه ای است که به رایگان در اختیار همه قرار گیرد و در واقع یک پروژه اوپن سورس است. از این جهت آشنایی با OSM می تواند آگاهی زیادی برای استفاده از این داده ها ایجاد کند.

ایرادی که داده های گوگل مپز دارند این است که اختصاصی بوده و دستیابی به آن ها به شدت دشوار است و معمولاً دسترسی به انواع دیگر داده ها با هزینه های زیادی همراه خواهد بود.

بنابراین ما به چیزی احتیاج داشتیم که افراد از سرتاسر دنیا بتوانند آن را ویرایش کنند، و راه حل این مشکل OpenStreetMap می باشد، که مشارکت کنندگان را تشویق به ویرایش این “نقشه ی آزاد” به صورت روزانه می کند.

از این رو که “آزاد” فلسفه کلیدی OpenStreetMap می باشد، این “آزاد” بودن برای داده ها نیز صدق می کند. بنابراین به شما نشان می دهیم که چگونه می توانید داده های OSM را دانلود کنید (البته که بدون هیچ هزینه ای).

اوپن استریت مپ از دید سایت ویکی پدیا

اوپن‌استریت‌مپ (به انگلیسی: OpenStreetMap) یا نقشه شهری باز, پروژه ای مشارکتی برای ایجاد یک نقشه قابل ویرایش رایگان از جهان است.

این پروژه، سال ۲۰۰۴ در لندن، توسط استیو کاست کلید خورد.

هدف پروژه جمع‌آوری پایگاه داده‌ای رایگان از اطلاعات جغرافیایی در سراسر دنیا بود. حجم زیادی از داده‌های جغرافیایی مانند جاده‌ها، ساختمان‌ها و اماکن دیدنی می‌توانند به این بانک اطلاعاتی اضافه شوند.

مانند سایر پروژه‌های مشارکتی موجود در شبکۀ اینترنت، هر کاربر می‌تواند با طی یک مسیر کوتاه ثبت نام کرده و در ویرایش داده‌ها مشارکت کند. این روش ساده امکان جذب ۱۹۰۰۰۰۰ عضو (تا ژانویه ۲۰۱۵) را در این پروژه فراهم کرده است.

کامپوننت های رابط کاربری اندروید Jetpack
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

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

با تغییر مدل اجازه‌نامه گوگل مپس در اوایل سال ۲۰۱۲ و پیش بینی افزایش هزینۀ استفاده از این سرویس، تعداد بیشتری از کسب و کارها رو به امکاناتی آوردند که اُپن استریت مپ به صورت رایگان دراختیار آنها قرار می‌داد. برای مثال می‌توان به فوراسکور که یک شبکۀ اجتماعی مکان گرا است اشاره کرد.

فرق بین OpenStreetMap با  GoogleMaps:

فرق بین OpenStreetMap با  GoogleMaps

گوگل دیگه نقشه‌هاش رو به صورت رایگان در اختیار استفاده‌کنندگان قرار نمیده و از چند روز پیش به کسانی که قبلا در پروژه‌هاشون ازش استفاده کردن ایمیل داده از زمان مشخص شده در اطلاعیه به بعد باید حساب‌مالی رو به گوگل اضافه کنند تا چنانچه هزینه استفاده از نقشه، چه خود نقشه چه سرویس‌های مربوط به مسیریابی و … بیشتر از ۲۰۰دلار در ماه شد اون رو از حساب مشتری کم کنه.

داده‌های OSM جزئیات بسیار کمتری نسبت به گوگل داره و بخصوص مکان‌های ثبت شده توسط کاربر در اون خیلی کمتره. اما میشه نقشه رو به راحتی بهبود داد. چند ماه پیش پروژه‌ای متن‌باز در گیت‌هاب دیدم به نام StreetComplete که یک اپ اندروید برای وصل شدن به API این نقشه فراهم کرده. با استفاده از این برنامه میشه به راحتی مسیرها، مکان‌ها و ویژگی اون‌ها رو کامل و به‌روز کرد.

و حالا می خوام نحوه پیاده سازی نقشه osm در برنامه تون بهتون توضیح بدم :

1- اولین کاری که می کنیم باید در Manifests برنامه مجوز های اینترنت ، جی پی اس (لوکیشن) ، خواندن و نوشتن از حافظه

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2- در این مرحله باید منبع دانلود osm را به build.gradle (Project) معرفی کنیم . در تگ allprojects

allprojects {
    repositories {
        google()
        jcenter()
 
        mavenCentral()
        mavenLocal()
        maven { url 'https://jitpack.io' }
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
            name 'OSS-Sonatype'
        }
    }
}

3- و در این مرحله نوبت به اضافه کردن کتابخانه osm و Dexter(برای گرفتن مجوز ها از کاربر) در build.gradle ماژول است .

implementation 'org.osmdroid:osmdroid-android:6.1.8'

4- وبعد در فایل Layout برای نمایش نقشه از عنصر MapView برای مثال با ایدی mapview استفاده می کنیم.

<org.osmdroid.views.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusable="true" />

5. حالا در فایلMainActivity در بالای متد onCreat :

private MapView map; برای نمایش مپ
private IMapController mapController;

برای کنترل نقشه مانند : نمایش یک موقعیت جغرافیایی ، مقدار زوم نقشه و…
وبعد در متد onCreate قبل از متد setContentView

Context ctx = getApplicationContext();
Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));

نکته : اگر این خط کد را قبل از متد setContentView ننویسید مپ درست لود نمی شود.

اندروید چیست ؟ هرچیزی که درمورد سیستم عامل اندروید می‌خواهید بدانید
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

ودر ادامه بعد از متد setContentview  برای گرفتن مجوز از کاربر :

Dexter.withContext(getApplicationContext()).withPermissions(Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.WRITE_EXTERNAL_STORAGE)
          .withListener(new MultiplePermissionsListener() {
              @Override
              public void onPermissionsChecked(MultiplePermissionsReport multiplePermissionsReport) {
 
              }
 
              @Override
              public void onPermissionRationaleShouldBeShown(List<PermissionRequest> list, PermissionToken permissionToken) {
 
              }
          }).check();

و در ادامه برای پیاده سازی مپ :

map = findViewById(R.id.mapView);
 
mapController = map.getController();
 
mapController.setZoom((long)15);  تنظیم مقدار زوم نقشه

تبدیل نقشه به  Dpiجهت بهتر نمایش دادن نقشه

map.setTilesScaledToDpi(true);  

قابلیت امکان کنترل زوم

map.setBuiltInZoomControls(true);

امکان کنترل نقشه با دو انگشت

	map.setMultiTouchControls(true);

برای تبدیل مختصات جغرافیایی به موقعیت جغرافیایی

GeoPoint point = new GeoPoint(35.7448416,51.3775099,17);

ایجاد متغیر مارکر

Marker marker = new Marker(map);

تنظیم موقیعت جغرافیایی مارکر

marker.setPosition(point);

عنوان مارکر

marker.setTitle("برج میلاد");

توضیحات مارکر

marker.setSubDescription("توضیحات");

اضافه کردن مارکر در نقشه

map.getOverlays().add(marker);

نمایش موقیعت جغرافیایی مورد نظر رو نقشه

mapController.setCenter(point);
قبلی چگونه memory Leak را در برنامه اندروید خود برطرف کنیم؟
بعدی Flutter یا React Native کدامیک را انتخاب کنیم؟

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • GoLang
  • jetpack compose
  • PHP
  • اپلیکیشن
  • امنیت
  • اندروید
  • اوپن سورس
  • برنامه نویسی
  • برنامه نویسی iOS
  • برنامه نویسی react native
  • پادکست صوتی
  • تکنولوژی
  • جاوا
  • طراح رابط کاربری
  • طراحی رابط کاربری
  • طراحی وب
  • عمومی
  • فریلنسر
  • فلاتر
  • فناوری
  • کاتلین
  • کتاب های آموزشی
  • کسب و کار
  • هوش مصنوعی
  • وردپرس
برچسب‌ها
admob coroutine dagger dagger-hilt jetpack nft rxandroid rxjava spring swift ارز دیجیتال امنیت در اندروید دارت فایربیس فوشیا مصاحبه کاری معماری mvi نقشه راه برنامه نویسی کاتلین گوگل

آکادمی آموزنگار، جایی برای آغاز یک سفر شگفت‌انگیز در دنیای برنامه‌نویسی است. آموزنگار تلاش می‌کند تا هر فردی را از هر سطحی از زندگی و تجربه به دنیای جذاب برنامه‌نویسی وارد کند.

دسترسی سریع
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • سوالات متداول
نمادها
شبکه های اجتماعی
Facebook Twitter Youtube icon--white Whatsapp

تهران، ازگل ، مجتمع تجاری الماس ایرانیان، پارک علم و فناوری فردا

021-71058559

تمامی حقوق برای آکادمی آموزنگار محفوظ می باشد

اشتراک گذاری در شبکه های اجتماعی
ارسال به ایمیل
https://amooznegar.com/?p=11090
ورود
استفاده از شماره تلفن
استفاده از آدرس ایمیل
آیا هنوز عضو نشده اید؟ ثبت نام کنید
بازیابی رمز عبور
استفاده از شماره تلفن
استفاده از آدرس ایمیل
ثبت نام
استفاده از شماره تلفن
استفاده از ایمیل
قبلا عضو شده اید؟ ورود به سیستم
محافظت توسط   
مرورگر شما از HTML5 پشتیبانی نمی کند.

سوالی دارید؟ از ما بپرسید، کارشناسان ما در اسرع وقت با شما تماس می گیرند.

آموزنگار

آکادمی آموزنگار

  • 021-71058559
  • شنبه تا چهارشنبه از ساعت 8 تا 17
  • info@amooznegar.com