این مراحل را دنبال کنید تا با یک استایل مبتنی بر داده برای مرزها راهاندازی کنید.
رندر نقشه های جدید را فعال کنید
یک رندر نقشه ارتقا یافته از نسخه 18.0.0 Maps SDK برای Android در دسترس است. این رندر پیشرفتهای زیادی از جمله پشتیبانی از استایل نقشههای مبتنی بر Cloud را در Maps SDK برای Android به ارمغان میآورد.
با انتشار نسخه 18.2.0 Maps SDK برای اندروید، گوگل رندر پیش فرض را از رندر قدیمی به رندر نقشه ارتقا یافته تغییر داد. این تغییر به این معنی است که وقتی یک برنامه جدید میسازید یا یک برنامه موجود را بازسازی میکنید، رندر نقشه ارتقا یافته بهطور پیشفرض در برنامه شما استفاده میشود.
یک شناسه نقشه ایجاد کنید
برای ایجاد شناسه نقشه جدید، مراحل ایجاد شناسه نقشه را دنبال کنید. مطمئن شوید که نوع Map را روی Android تنظیم کرده اید.
یک سبک نقشه جدید ایجاد کنید
برای ایجاد یک سبک نقشه جدید، دستورالعمل های موجود در Manage map styles را برای ایجاد سبک دنبال کنید و سبک را با شناسه نقشه ای که ایجاد کرده اید مرتبط کنید .
لایه های ویژگی را در سبک نقشه جدید خود انتخاب کنید
در Google API Console میتوانید لایههای ویژگی را برای سبک نقشه جدید خود انتخاب کنید. لایه ویژگی تعیین می کند که چه نوع مرزهایی روی نقشه ظاهر می شوند (به عنوان مثال محلات، ایالت ها و غیره).
- در Google API Console، به صفحه Map Styles بروید .
- در صورت درخواست، پروژه ای را انتخاب کنید.
- یک سبک نقشه را انتخاب کنید.
- برای افزودن یا حذف لایهها، روی منوی کشویی لایههای ویژگی کلیک کنید.
- برای ذخیره تغییرات و در دسترس قرار دادن آنها در نقشه های خود، روی ذخیره کلیک کنید.
کد اولیه نقشه خود را به روز کنید
این مرحله به شناسه نقشه ای نیاز دارد که به تازگی ایجاد کرده اید. می توانید آن را در صفحه مدیریت نقشه های شما پیدا کنید.
برای افزودن شناسه نقشه به کد اولیه خود، به افزودن شناسه نقشه به برنامه خود مراجعه کنید.
به یک لایه ویژگی از نقشه دسترسی پیدا کنید
شما از یک شی FeatureLayer
برای نشان دادن هر لایه ویژگی نقشه استفاده می کنید، مانند یک لایه مشخصه کد پستی یا محلی. برای دسترسی به یک شی لایه ویژگی، زمانی که نقشه مقداردهی اولیه شد، GoogleMap.getFeatureLayer()
را فراخوانی کنید:
جاوا
private FeatureLayer postalCodeLayer;
@Override public void onMapReady(GoogleMap map) { // Get the POSTAL_CODE feature layer. postalCodeLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()); ... }
کاتلین
private var postalCodeLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the POSTAL_CODE feature layer. postalCodeLayer = googleMap.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()) ... }
یک شی FeatureLayerOptions
را به getFeatureLayer()
ارسال کنید تا نوع لایه ویژگی را مشخص کنید. در این مثال، شما می خواهید به لایه POSTAL_CODE
دسترسی داشته باشید. برای هر لایه ای که می خواهید به آن استایل بدهید، یک شی FeatureLayer
متفاوت ایجاد کنید.
هنگامی که شی FeatureLayer
را دارید، می توانید یک استایل را به چند ضلعی های مرزی در آن ویژگی اعمال کنید.
بررسی قابلیت های نقشه (الزامی)
یک ظاهر طراحی مبتنی بر داده برای مرزها به شناسه نقشه نیاز دارد. اگر شناسه نقشه مفقود باشد یا شناسه نقشه نامعتبر ارسال شود، طرحبندی مبتنی بر داده برای مرزها نمیتواند بارگیری شود. به عنوان یک مرحله عیبیابی، میتوانید از MapCapabilities
برای بررسی اینکه آیا استایل مبتنی بر دادهها برای مرزها پشتیبانی میشود یا خیر استفاده کنید.
کاتلین
val capabilities: MapCapabilities = googleMap.getMapCapabilities() System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())
جاوا
MapCapabilities capabilities = googleMap.getMapCapabilities(); System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());