<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های M.Madadi</title>
        <link>https://virgool.io/feed/@mmadadi</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-20 09:05:40</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/24751/avatar/WvxkLL.png?height=120&amp;width=120</url>
            <title>M.Madadi</title>
            <link>https://virgool.io/@mmadadi</link>
        </image>

                    <item>
                <title>آموزش ساخت اپلیکیشن جستجو بر روی نقشه نشان - iOS</title>
                <link>https://neshan.blog/neshan-maps-ios-sdk-search-tutorial-ydi1qhvxm4y5</link>
                <description>در مطلب قبلی با عنوان معرفی SDK نقشه نشان برای iOS ضمن آشنایی با کیت توسعه نشان، تجربه ساخت یک اپلیکیشن ابتدایی برای سیستم عامل iOS با استفاده از SDK نقشه نشان را داشتید. حالا در قدم دوم قصد داریم از یک قابلیت جذاب پلتفرم نقشه نشان استفاده کنیم و یک اپلیکیشن کاربردی برای جستجوی مکان از روی نقشه بسازیم.چنانچه هنوز با سرویس‌های و api نقشه نشان آشنا نیستید می‌توانید ابتدا مطلب سرویس‌های نقشه نشان برای برنامه‌نویسان را مطالعه کنید. همچنین در این صفحه به شیوه راه‌اندازی iOS SDK پرداخته‌ایم.قسمت اول: نقشهدر ابتدا لازم است تا با توجه به دستورالعمل مقاله قبل یک صفحه نقشه ساده را ایجاد کنید. برای توضیحات بیشتر می‌توانید مطلب قبلی را مطالعه کنید. اما به صورت خلاصه و کلی کدهای نمایش نقشه را در زیر مشاهده می‌کنید. https://gist.github.com/MMadadi/f8e685283aee83132796a12811b7e099 قسمت دوم: Storyboardجهت انجام جستجو لازم است تا ۳ عنصر را از طریق Interface Builder نرم افزار xcode به صفحه اصلی خود اضافه کنید.در ابتدا برای جستجو نیاز به یک TextField دارید تا کاربر از طریق آن کلمه دلخواه خود جهت جستجو را وارد کند. همچنین می‌توان یک ImageView با نشان ضربدر را جهت بسته شدن کیبورد به دلخواه کاربر در مقابل TextField قرار داد.پس از آن به یک TableView نیاز دارید تا بتوانید نتایج جستجو را در آن نمایش دهید. توضیحات و جزئیات مربوط به راه اندازی TableView از موضوع این مقاله خارج است اما شما می‌توانید با مطالعه مطلب Create a Table View از سایت developer.apple.com و همچنین بررسی کدهای این اپلیکیشن به درک خوبی درباره TableView ها برسید. اما این تازه شروع کار است. دست از پیشرفت برندارید!قسمت سوم: متغیرهاپس از انجام دو قسمت اول آماده ورود به کدنویسی هستید. تعریف متغیرهای مورد نیاز اولین کاری است که باید انجام دهید. در زیر متغیرهای تعریف شده را می‌بینید. https://gist.github.com/MMadadi/eb4a99f139a7b0d7bcc26352adf87e39 با متغیر map از نوع NTMapView در مقاله قبل آشنا شدید؛ اما متغیرهای  markerLayer و marker و markerId و animSt همگی مربوط به تابع addMarker هستند که در ادامه با آن آشنا خواهید شد.۳ متغیر finalTitleResult و finalAddressResult و finalLocationResult مربوط به ذخیره داده‌های دریافتی از SDK نشان می‌باشد. همچنین ۲ متغیر table و txtSearch نیز جهت دستیابی به دو عنصر TextField و TableView - که در قسمت قبل ایجاد کردید - می‌باشند که از نوع IBOutlet@ تعریف شده‌اند.قسمت چهارم: تعریف تابع neshanSearchAPI و ارسال درخواستقبل از اینکه به تعریف تابع neshanSearchAPI و ارسال درخواست‌ها بپردازید لازم است تا به وسیله تابعی از نوع IBAction@ فیلد ورودی خود را به تغییر متن درون آن حساس کنید تا هرگاه کاربر کاراکتر درون TextField را تغییر داد تابع neshanSearchAPI فراخوانی شده و نتایج جستجو در TableView نمایان شود. https://gist.github.com/MMadadi/1529b97e018fb56a149b6e580c585796 ۳ نکته در تعریف تابع فوق وجود دارد:باید تمام مقادیری که از قبل در متغیرهای خود ذخیره کردید را پاک کنید تا در نمایش نتایج جستجو دچار مشکل نشویدهرگاه داخل TextField هیچ متنی نبود لزومی به فراخوانی تابع neshanSearchAPI و نمایش TableView نیست.برای بهینه سازی جستجو لازم است تا درخواست‌ها با تأخیری کوتاه ارسال شوند چرا که در غیر این صورت مقدار زیادی درخواست بیهوده ارسال می‌شود که نتیجه آن به کاربر نمایش داده نمی‌شود. مثلا فرض کنید کاربری کلمه «پلتفرم نشان» را جستجو می‌کند. در صورتی که از تاخیر استفاده نکرده باشیم به ازای هر حرفی که کاربر وارد می‌کند یک درخواست به سرور ارسال می‌شود در حالی که نیازی به ارسال درخواست‌های اضافه نخواهید داشت.برای ارسال درخواست‌ها به SDK لازم است تا فرمت پاسخی که از وب‌سرویس جستجو دریافت می‌کنید را بررسی کنید. نمونه یک پاسخ وب‌سرویس در زیر قابل مشاهده است اما جزییات بیشتر را می‌توانید از طریق سایت توسعه دهندگان نشان بخش وب‌سرویس‌ها و از قسمت وب‌سرویس جستجو دریافت نمایید. https://gist.github.com/MMadadi/f87fd21e393f6953fe66ed58f9e1a3fe حال پیش‌نیازهای تعریف تابع neshanSearchAPI را گذراندید. این تابع در واقع دو وظیفه اصلی بر عهده دارد. ارسال درخواست به وب‌سرویس جستجو و دریافت و تجزیه پاسخ. در زیر این تابع را مشاهده می‌کنید. https://gist.github.com/MMadadi/08c5d6e7387e9d4c5dfdf4fb12e483ec دقت نمایید که برای ارسال درخواست‌ها از پکیج AFNetworking استفاده شده است و شما نیز برای استفاده از این پکیج می‌بایست ابتدا آن را به فایل Podfile خود اضافه کنید.همانطور که در قطعه کد بالا مشاهده می‌کنید تابع در بخش اول یک درخواست برای ارسال به SDK آماده کرده و آن را همراه با API KEY شما به آدرس مربوطه ارسال می‌کند.در بخش دوم تابع نیز شاهد هستید که پاسخ دریافتی از سرور را تجزیه و تحلیل می‌کند به این صورت که اگر پاسخی برای عبارت جستجو شده وجود نداشت جدول نتایج نمایش داده نمی‌شود اما در صورت وجود جواب ۳ فیلد Title, Address و  Location را درون آرایه‌ی از پیش تعریف شده قرار می‌دهد تا در هنگام ایجاد جدول از آن استفاده کنید.قسمت پنجم: تنظیم TableView نتیجه جستجودر قسمت آخر نتایج حاصل را در یک جدول به کاربر نمایش دهید تا کاربر با لمس هر خانه جدول به مکان نظر روی نقشه هدایت شود و با استفاده از تابع addMarker که پیش از این تعریف کرده بودید؛ یک پین در آن نقطه قرار گیرد.توابع مربوط به تنظیمات TableView را در زیر مشاهده می‌کنید. https://gist.github.com/MMadadi/49e80e6896a015f2a7f8678d44df07f4 در اولین تابع تعداد سطرهای جدول مشخص می‌گردد.در تابع  cellForRowAt مقادیری که هر سطر نمایش می‌دهد را مشخص کنید و در تابع didSelectRowAt می‌بایست عملیات لمس هر سطر تعریف شود.سورس کد این اپلیکیشن را می‌توانید در گیت‌هاب پلتفرم نشان در این صفحه مشاهده کنید. همچنین توجه داشته باشید استفاده از SDK نقشه نشان برای توسعه اپلیکیشن‌های مبتنی بر نقشه در iOS و Android کاملاً رایگان است. جهت اطلاع از سایر شرایط و آشنایی با شیوه محاسبه قیمت سایر خدمات پلتفرم نقشه نشان می‌توانید مطلب مدیریت هزینه‌ها در پلتفرم نشان را مطالعه کنید.</description>
                <category>M.Madadi</category>
                <author>M.Madadi</author>
                <pubDate>Wed, 16 Jan 2019 09:40:47 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی SDK نقشه نشان برای iOS</title>
                <link>https://neshan.blog/neshan-maps-ios-sdk-intro-ctbxsdbse1eo</link>
                <description> رفته رفته و با همه گیر شدن گوشی‌های هوشمند خدمات متنوعی بر بستر این دستگاه‌ها ارائه می‌شود. سرویس‌های مختلف مانند Google Maps و Apple ARKit برای استفاده توسعه‌دهندگان از خدمات خود ابزاری به نام SDK را توسعه می‌دهند تا برنامه نویسان بتوانند به راحتی از این سرویس‌های نرم‌افزاری در پلتفرم دلخواه خود (Web, Android, iOS) استفاده کنند. در واقع SDK یا همان کیت توسعه نرم‌افزاری مجموعه‌ای از کلاس‌ها و توابعی است که امکان استفاده از سرویس‌های مختلف یک پلتفرم را به عنوان واسطی برای بسترهای مختلف فراهم می‌کند.زیرساخت توسعه نقشه نشان نیز در راستای ارائه سرویس‌ها و راهکارهای مختلف برای برنامه نویسان و کسب و کارها، SDK نقشه iOS را برای برنامه‌نویسان این سیستم عامل مهیا کرده است.پلتفرم نقشه نشانشرکت سازه‌های اطلاعاتی راژمان با معرفی زیرساخت توسعه  نقشه نشان (Neshan Maps Platform) در ابتدای تابستان ۱۳۹۷ جزء اولین ارائه‌دهندگان راه‌کارهای مبتنی بر نقشه برای توسعه‌دهندگان در ایران بوده است. این پلتفرم که بر پایه داده و جامعه کاربری یک میلیونی مسیریاب نشان و با تکیه بر فناوری و تجربه ۸-۷ ساله راژمان در پروژه‌های نقشه همراه شهرهای کشور شکل گرفته است، از اواسط تابستان خدمات و سرویس‌های مبتنی بر نقشه (API &amp; SDK) خود را به صورت عمومی در اختیار کسب و کارها و برنامه‌نویسان قرار داده است. هزینه استفادهیک خبر خوب برای همه برنامه‌نویسان و کسب و کارهایی که برای پروژه‌های خود نیاز به استفاده از SDK نقشه دارند! استفاده از SDK نقشه نشان و MapLoad در آن کاملاً رایگان است. همچنین چنانچه اپلکیشن iOS خود را توسط زیرساخت نقشه نشان پیاده‌سازی کنید می‌توانید از تایل ترافیک آنلاین معابر و لایه POI نیز به‌صورت رایگان استفاده کنید. چطور شروع کنم؟در اولین قدم لازم است تا در سایت توسعه دهندگان نشان ثبت نام کرده و سپس وارد پنل کاربری خود شوید. برای استفاده از iOS SDK لازم است تا یک کلید دسترسی برای اپلیکیشن iOS خود بسازید و برای این کار باید Bundle Identifier اپلیکیشن خود را در قسمت مربوطه وارد کنید. فایل neshan.license را با کلیک بر روی دریافت لایسنس دریافت کرده و آن را در پوشه پروژه قرار دهید.پس از انجام این کار برای نصب و استفاده از iOS SDK نشان، باید اسکریپت:pod &#039;NeshanMobileSDK&#039;را در podfile موجود در پروژه خود قرار دهید و از دستورpod install(در ترمینال) برای نصب پیکیج‌های Pod استفاده کنید.اکنون شما آماده استفاده از SDK نشان در اپلیکیشن iOS خود هستید!آموزش مرحله به مرحله ایجاد یک صفحه نقشهدر اولین قدم برای ایجاد یک صفحه نقشه با استفاده از زبان برنامه نویسی Swift می‌بایست در ViewController مورد نظر یک شئ با نام mapView از نوع NTMapView تعریف کنیم.پس از تعریف این شئ از کلاس NTNeshanServices تابع createBaseMap را فراخوانی کرده و سپس یکی از case های NTNeshanMapStyle (که از نوع Enumeration می‌باشد) را به عنوان پارامتر به این تابع ارجاع می‌دهیم. سپس به ترتیب دو تابع getLayers و add را روی شئ mapView فراخوانی میکنیم.حال برای اینکه مرکز صفحه در هنگام شروع برنامه در مکان دلخواه ما باشد، از تابع setFocalPointPosition که روی شئ mapView فراخوانی می‌شود، استفاده میکنیم. این تابع دو پارامتر ورودی دارد که اولی نقطه‌ای از کلاس NTLngLat و دومین پارامتر ورودی آن زمان انتقال صفحه به این نقطه می‌باشد که برای شروع می‌توان به آن مقدار 0 داد. لازم به ذکر است برای استفاده از کلاس NTLngLat دو نقطه طول و عرض جغرافیایی به ترتیب به عنوان پارامترهای ورودی تابع initializer این کلاس استفاده می‌شود.در آخر نیز برای تعیین مقدار زوم نقشه در هنگام شروع، تابع setZoom روی شئ mapView فراخوانی می‌شود. پارامتر اول این تابع، مقدار زوم و پارامتر دوم آن نیز همانند تابع قبل مقدار زمانی که زوم انجام می‌شود را مشخص می‌کند.چنانچه view خود را به طور مستقیم از Main.storyboard در ViewController تعریف نکردیم لازم است تا مقدار view را برابر با mapView قرار دهیم اما در صورتی که مستقیما view خود را از جنس NTMapView قرار داده و آن را در ViewController تعریف کرده‌اید نیازی به این کار نیست.برای مطالعه ادامه آموزش کامل ایجاد نقشه و کسب اطلاعات بیشتر در خصوص SDK نقشه iOS می‌توانید به این صفحه در سایت توسعه‌دهندگان نشان مراجعه کنیدتبریک! شما اولین اپلیکیشن iOS با استفاده از SDK نقشه نشان ایجاد کردید!این مطلب شروع سلسله مطالب آموزشی در مورد شیوه استفاده از iOS SDK نشان می‌باشد. به زودی با آموزش‌های متنوع و قدم به قدم برای توسعه‌دهندگان با شما همراه خواهیم بود.شما همچنین می‌توانید با دنبال کردن اکانت NeshanMaps در گیت‌هاب سورس‌کد اپلکیشن‌های نمونه و سایر کدهای مرتبط با این موضوع را مشاهده کنید. </description>
                <category>M.Madadi</category>
                <author>M.Madadi</author>
                <pubDate>Wed, 19 Dec 2018 10:37:22 +0330</pubDate>
            </item>
            </channel>
</rss>