7

我想我知道这个问题的答案,但我们可以设计一个 Google Map v2 的样式吗?通过样式,我的意思是使用可用于提取 JSON 样式数据的 Google Maps API Styled Map Wizard ( http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html )用于 JavaScript API。

谷歌似乎已经为 Ingress 成功了,所以希望有办法。我似乎找不到方法,所以我怀疑谷歌正在使用 Ingress 的内部知识。有谁肯定知道吗?

4

5 回答 5

23

要设置地图样式,请调用GoogleMap.setMapStyle()并传递包含 JSON 格式的样式声明的MapStyleOptions对象。您可以从原始资源或字符串加载 JSON,在您的mapReady()函数中......所以在他 json 调用之后,您的地图就绪函数几乎看起来像

 @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        try {
            // Customise the styling of the base map using a JSON object defined
            // in a raw resource file.
            boolean success = mMap.setMapStyle(
                    MapStyleOptions.loadRawResourceStyle(
                            this, R.raw.style_json));

            if (!success) {
                Log.e("MapsActivityRaw", "Style parsing failed.");
            }
        } catch (Resources.NotFoundException e) {
            Log.e("MapsActivityRaw", "Can't find style.", e);
        }
    }

在 /res/raw/style_json.json 中定义一个原始资源,其中包含用于夜间模式样式的 JSON 样式声明

您可以从以下链接 https://mapstyle.withgoogle.com/获取 json

于 2016-09-30T01:43:36.907 回答
7

是的,现在你可以声明一个 Json 对象来使用GoogleMap.setMapStyle()函数来设置你的地图样式。检查文档

于 2016-09-24T17:07:33.560 回答
6

根据 Google Geo 开发者倡导者 Mano Marks的说法,Ingress 不使用 Google 地图,目前,与 Javascript API 不同,Android API(通过 Google Play 服务)不支持样式化地图,尽管它确实支持标题(参见 TilesProvider ETC)。

我希望他们能尽快将风格化的地图带到 Android(Google Play 服务)。

于 2013-08-07T01:05:49.497 回答
2

谷歌刚刚发布了一个新的谷歌地图样式 API: https ://developers.google.com/maps/documentation/android-api/styling

于 2016-09-22T06:42:39.963 回答
0

使用 Maps Platform 样式向导导出标准样式 json,您还可以使用导入选项验证您的样式 - https://mapstyle.withgoogle.com/

于 2021-08-14T10:37:28.733 回答