یک نقشه choropleth بسازید

پلتفرم را انتخاب کنید: Android iOS JavaScript

نقشه choropleth نوعی نقشه موضوعی است که در آن مناطق اداری با توجه به مقدار داده رنگی یا سایه دار می شوند. شما می توانید از یک تابع style factory برای استایل دادن به نقشه بر اساس داده هایی استفاده کنید که در آن هر ناحیه اداری با طیفی از مقادیر عددی مرتبط است. نقشه مثال زیر یک نقشه choropleth برای ایالت های ایالات متحده را نشان می دهد.

در این مثال، داده ها از شناسه مکان ایالت تشکیل شده است. تابع style factory به صورت شرطی هر حالت را بر اساس مقدار هش شده مکان شناسه برای حالت رنگ می کند.

اسکرین شات که نقشه ای از ایالت های ایالات متحده را نشان می دهد.

  1. اگر قبلاً این کار را انجام نداده اید، برای ایجاد شناسه نقشه و سبک نقشه جدید، مراحل را در Get Started دنبال کنید. حتماً لایه ویژگی Administrative Area Level 1 را فعال کنید.

  2. هنگامی که نقشه اولیه می شود، به لایه ویژگی سطح 1 منطقه اداری ارجاع دهید. برای ایالات متحده، این سطوح اداری با هر ایالت مطابقت دارد.

    جاوا

    private FeatureLayer areaLevel1Layer;
    @Override public void onMapReady(GoogleMap map) { areaLevel1Layer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.ADMINISTRATIVE_AREA_LEVEL_1) .build());
    // Apply style factory function to ADMINISTRATIVE_AREA_LEVEL_1 layer. styleAreaLevel1Layer(); }

    کاتلین

    private var areaLevel1Layer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the ADMINISTRATIVE_AREA_LEVEL_1 feature layer. areaLevel1Layer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.ADMINISTRATIVE_AREA_LEVEL_1) .build())
    // Apply style factory function to ADMINISTRATIVE_AREA_LEVEL_1 layer. styleAreaLevel1Layer() }

  3. یک تابع style factory ایجاد کنید و آن را در لایه ویژگی Administrative Area Level 1 اعمال کنید. مثال زیر تابع را برای چند ضلعی که هر ایالت ایالات متحده را نشان می دهد اعمال می کند.

    جاوا

    private void styleAreaLevel1Layer() {
      FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
        if (feature instanceof PlaceFeature) {
          PlaceFeature placeFeature = (PlaceFeature) feature;
    // Return a hueColor in the range [-299,299]. If the value is // negative, add 300 to make the value positive. int hueColor = placeFeature.getPlaceId().hashCode() % 300; if (hueColor < 0) { hueColor += 300; }
    return new FeatureStyle.Builder() // Set the fill color for the state based on the hashed hue color. .fillColor(Color.HSVToColor(150, new float[] {hueColor, 1, 1})) .build(); } return null; };
    // Apply the style factory function to the feature layer. areaLevel1Layer.setFeatureStyle(styleFactory); }

    کاتلین

    private fun styleAreaLevel1Layer() {
      val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
          if (feature is PlaceFeature) {
              val placeFeature: PlaceFeature = feature as PlaceFeature
    // Return a hueColor in the range [-299,299]. If the value is // negative, add 300 to make the value positive. var hueColor: Int = placeFeature.getPlaceId().hashCode() % 300 if (hueColor < 0) { hueColor += 300 } return@StyleFactory FeatureStyle.Builder() // Set the fill color for the state based on the hashed hue color. .fillColor(Color.HSVToColor(150, floatArrayOf(hueColor.toFloat(), 1f, 1f))) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. areaLevel1Layer?.setFeatureStyle(styleFactory) }