API هاي موقعيت اندرويد باعث مي شود كه به سادگي بتوانيد اپليكيشن هايي بسازيد كه از موقعيت آگاه مي شوند؛ بدون اين كه نياز باشد روي جزئيات تكنولوژي برجسته موقعيت يابي تمركز كند.
اين امر با كمك خدمات گوگل پلي امكان پذير مي شود؛ كه با رديابي خودكار موقعيت؛ مكان يابي و تشخيص فعاليت؛ آگاهي از موقعيت را به اپليكيشن شما اضافه مي كند.
اين آموزش به شما نشان مي دهد كه چگونه مي توانيد از خدمات مبتني بر موقعيت در APP خودتان استفاده نماييد تا بتوانيد به موقعيت فعلي، به روز رساني هاي متناوب موقعيت، جستجوي آدرسها و غيره دست پيدا كنيد.
شيء موقعيت
شيء Location ارائه دهنده يك موقعيت جغرافيايي است كه مي تواند از عرض جغرافيايي، طول جغرافيايي، تايم استمپ و ساير اطلاعات مانند جهت يابي، ارتفاع و سرعت تشكيل شود. روشهاي مهم زير وجود دارد كه مي توانيد با استفاده از شيء Location مي توانيد اطلاعات خاصي از يك موقعيت ويژه را به دست آوريد:
رديف | متد و توضيح آن |
۱ |
Float distance To(Location dest) فاصله تقريبي بين اين موقعيت و موقعيت داده شده را بر حسب متر باز مي گرداند. |
۲ |
Float getAccuracy() دقت برآورد شده از اين موقعيت بر حسب متر را ايجاد مي كند. |
۳ |
Double getAltitude() ارتفاع را در صورت وجود؛ بر حسب متر از سطح دريا ايجاد مي كند. |
۴ |
Float getBearing() جهت را بر حسب درجه بيان مي كند. |
۵ |
Double getLatitude() عرض جغرافيايي را بر حسب درجه در اختيار شما مي گذارد. |
۶ |
Double getLongitude() طول جغرافيايي را بر حسب درجه در اختيار شما مي گذارد. |
۷ |
Float getSpeed() اگر سرعت در دسترس باشد؛ بر حسب متر بر ثانيه بر روي زمين در اختيار شما قرار مي دهد. |
۸ |
Boolean has Accuracy() اگر اين موقعيت؛ دقت داشته باشد؛ True را باز مي گرداند. |
۹ |
Boolean has Altitude() اگر اين موقعيت يك ارتفاع از سطح دريا داشته باشد؛ True را باز مي گرداند. |
۱۰ |
Boolean hasBearing() اگر اين موقعيت زاويه حامل داشته باشد؛ True را باز مي گرداند. |
۱۱ |
Boolean hasSpeed() اگر اين موقعيت سرعتي داشته باشد؛ مقدار True را باز مي گرداند. |
۱۲ |
Void reset محتواي موقعيت را پاك مي كند. |
۱۳ |
void setAccuracy(float accuracy) دقت برآورد شده اين موقعيت را بر حسب متر تنظيم مي كند. |
۱۴ |
void setAltitude(double altitude) ارتفاع از سطح دريا را بر حسب متر تنظيم مي كند. |
۱۵ |
void setBearing(float bearing) تنظيم زاويه حامل بر حسب درجه |
۱۶ |
void setLatitude (double latitude) عرض جغرافيايي را بر حسب درجه تنظيم مي كند. |
۱۷ |
void setLongitude (double longitude) طول جغرافيايي را بر حسب درجه تنظيم مي كند. |
۱۸ |
void setSpeed (float speed) سرعت روي زمين را بر حسب متر بر ثانيه تنظيم مي كند. |
۱۹ |
String toString() يك رشته را باز مي گرداند كه توضيحات مختصري از اين شيء ارائه مي دهد كه توسط انسان خوانده مي شود. |
دريافت موقعيت فعلي
براي دريافت موقعيت فعلي، يك سرويس دهنده موقعيت مكاني ايجاد مي كنيد كه شيء LocationClient مي باشد و با استفاده از متد ()connect آن را به سرويس هاي موقعيت متصل كرده، و سپس متد ()getLastLocation آن را فراخواني مي كنيد. اين متد، جديدترين مكان را به صورت شيء Location باز مي گرداند كه شامل مختصات طول و عرض جغرافيايي و ساير اطلاعات مي باشد كه در بالا توضيح داده مي شود. براي داشتن عملكردي مبتني بر موقعيت مكاني در activity تان، بايد دو رابط را پياده سازي كنيد –
- GooglePlayServicesClient.ConnectionCallbacks
- GooglePlayServicesClient.OnConnectionFailedListener