当前位置: 首页 > 编程笔记 >

Android 自定义Google地图样式

漆雕彬彬
2023-03-14
本文向大家介绍Android 自定义Google地图样式,包括了Android 自定义Google地图样式的使用技巧和注意事项,需要的朋友参考一下

示例

映射样式

Google Maps使用以下代码提供了一系列不同的样式:

// Sets the map type to be "hybrid"
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

不同的映射样式是:

正常

map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

典型路线图。显示了道路,一些人造特征以及重要的自然特征,例如河流。道路和要素标签也可见。

杂种

map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

附带路线图的卫星照片数据。道路和要素标签也可见。

卫星

map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

卫星照片数据。道路和要素标签不可见。

地形

map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

地形数据。该映射包括颜色,轮廓线和标签以及透视图底纹。一些道路和标签也可见。

没有

map.setMapType(GoogleMap.MAP_TYPE_NONE);

没有瓷砖。映射将呈现为未加载图块的空网格。

其他样式选择

室内映射

在高缩放级别下,映射将显示室内空间的平面图。这些映射称为室内映射,仅针对“正常”和“卫星”映射类型显示。

启用或禁用室内映射,方法如下:

GoogleMap.setIndoorEnabled(true).
GoogleMap.setIndoorEnabled(false).

我们可以向映射添加自定义样式。

在onMapReady方法中,添加以下代码段

mMap = googleMap;
    try {
        // 使用定义的JSON对象自定义基本映射的样式
        // 在原始资源文件中。
        boolean success = mMap.setMapStyle(
                MapStyleOptions.loadRawResourceStyle(
                        MapsActivity.this, R.raw.style_json));

        if (!success) {
            Log.e(TAG, "样式解析失败。");
        }
    } catch (Resources.NotFoundException e) {
        Log.e(TAG, "Can't find style.", e);
    }

res文件夹下,创建一个原始文件夹名称并添加样式json文件。样本style.json文件

    [
  {
    "featureType": "all",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#242f3e"
      }
    ]
  },
  {
    "featureType": "all",
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "lightness": -80
      }
    ]
  },
  {
    "featureType": "administrative",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#746855"
      }
    ]
  },
  {
    "featureType": "administrative.locality",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#263c3f"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#6b9a76"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#2b3544"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9ca5b3"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#38414e"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#212a37"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#746855"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#1f2835"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#f3d19c"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#38414e"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#212a37"
      }
    ]
  },
  {
    "featureType": "transit",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#2f3948"
      }
    ]
  },
  {
    "featureType": "transit.station",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#17263c"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#515c6d"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "lightness": -20
      }
    ]
  }
]

要生成样式json文件,请单击此链接

 类似资料:
  • 我们可以自定义标记图标谷歌地图吗?我不想只是简单地更改图标位图(我知道怎么做),我想更改图标的方式就像我有一个xml布局(有一个imageview和一个textview),我想膨胀这个xml(像自定义信息窗口)。但我想让它成为一个标记图标,这样我就可以通过编码来设置图像和文本。注意,我不想要一个信息窗口,我希望它是一个标记

  • 我正在为Android制作基于谷歌地图服务的公共交通地图。地图应该包含很多标记(超过300个),它们应该在地图放大和缩小(缩放)时调整大小。现在标记只是互相重叠,有没有办法创建像这样的自定义标记? 我自己也试过,但没有成功。使用android-map-utils库(https://github.com/googlemaps/android-maps-utils)标记现在看起来更好了,但它们不能调整

  • 我正在尝试使用WordPress的StoreLocator Plus插件将自定义样式应用于Google地图。我发现了一个支持线程,其中有人可以使用以下代码将自定义样式应用于地图: 出于某种原因,一直以的形式返回给我,因此脚本无法运行。我试着在插件的JavaScript中寻找根源,我看到了的东西,但我不明白为什么这不起作用。 我的测试页面:http://lombard.myweblinx.net/?

  • 本文向大家介绍Android EditText自定义样式的方法,包括了Android EditText自定义样式的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android EditText自定义样式的方法。分享给大家供大家参考,具体如下: 1.去掉边框 EditText的background属性设置为@null就搞定了:android:background="@null" sty

  • 在苹果自带地图和百度地图上覆盖一层图片,图片可以随地图缩放移动。关键就是自定义Overlay和OverlayView。 作者说:实在无力吐槽了,百度地图iOS SDK中的静态库文件居然都是10M !由于过大上传不了,亲们自行去 http://developer.baidu.com/map/sdk-ios.htm 按提示添加SDK吧!至于基于百度地图的自定义Overlay和OverlayView 记

  • 本文向大家介绍详解Android自定义View--自定义柱状图,包括了详解Android自定义View--自定义柱状图的使用技巧和注意事项,需要的朋友参考一下 绪论 转眼间,2016伴随着互联网寒冬和帝都的雾霾马上就过去了,不知道大家今年一整年过得怎么样?最近票圈被各个城市的雾霾刷屏,内心难免会动荡,庆幸自己早出来一年,也担忧着自己的未来的职业规划。无所谓了,既然选择了这个行业,我觉得大家就应该坚

  • 我的谷歌地图API地图缩放显示谷歌搜索后添加的所有标记。在移动地图上,这可能需要一点时间来加载,作为这个骑自行车的应用程序,我更喜欢只显示视口内的结果。我阅读的大多数研究表明,不可能只在视图端口内返回结果。我是否可以在添加标记后保持地图边界不变?如果它只向我显示添加到当前边界的标记,那就太好了,除非只返回一个标记,然后它应该缩放到该标记。因此,搜索像比萨饼这样的一般东西会在当前视口中显示许多比萨饼

  • 本文向大家介绍Android自定义图片集合,包括了Android自定义图片集合的使用技巧和注意事项,需要的朋友参考一下 本文主要包括以下内容: 使用Xfermode设置圆角图片 使用BitmapShader设置圆角图片 滑动旋转缩放的bimp图片 图片颜色处理(滑动) 图片 + 文字 其中1,2是两种不同方式处理图片圆角的情况。3,是通过Matrix进行图片缩放,旋转等。4,是通过Matrix操作