`
ponlya
  • 浏览: 165396 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

GoogleMap V3 样式

    博客分类:
  • maps
 
阅读更多

https://developers.google.com/maps/documentation/javascript/styling?hl=zh-CN

样式化地图
    自定义 Google 标准基本地图的显示方式,更改道路、公园和建筑物区域等元素的视觉显示效果。   

可通过以下两种方式将样式应用到地图:
    设置地图的 MapOptions 对象的 .styles 属性。该方法会更改标准地图类型的样式(地形和卫星视图中的基本图像不会受到影响,不过道路、标签等需符合样式化规则)。请参阅更改默认地图样式。
    创建和定义 StyledMapType,并将其附加到地图。该方法会创建一个新的地图类型,您可从地图类型控件中选择该类型。请参阅创建 StyledMapType。
    以上两种方法都采用 MapTypeStyle 数组,其中每个数组都包含选择器和样式器。选择器用于指定要进行样式化应选择的地图组件,而样式器用于指定这些元素的视觉效果修改。
   
样式化地图使用以下两种概念对地图应用颜色和更改:
    地图项,即可定位在地图上的地理元素,包括道路、公园、水体及其标签等。
        地图由道路或公园等一组地图项组成,这些地图项使用 MapTypeStyleFeatureType 进行指定。地图项类型构成类别树,以 all 为根。
        地图项使用语法 featureType: 'feature' 进行指定。
        {
            featureType: "road"
        }
        某些地图项类型类别包含子类别,这些子类别通过点表示法(例如 landscape.natural 或 road.local)进行指定。
        地图上的某些地图项会包含不同元素。例如,道路不仅包括地图上绘制的地理线(几何图形),还包括表示其名称的文本(标签)。您可指定 MapTypeStyleElementType 类型的类别,以选择地图项内的元素。系统支持以下元素类型:
            all(默认),用于选择地图项的所有元素。
            geometry,用于选择地图项的所有几何图形元素。
                geometry.fill,用于只选择地图项中几何图形的填充。
                geometry.stroke,用于只选择地图项中几何图形的笔触。
            labels,用于只选择与地图项关联的文本标签。
                labels.icon,用于只选择地图项标签中显示的图标。
                labels.text,用于只选择标签的文本。
                labels.text.fill,用于只选择标签的填充。标签的填充通常呈现为标签文本周围的彩色轮廓。
                labels.text.stroke,用于只选择标签文本的笔触。
        {//适用于所有本地道路的标签
            featureType: "road.local",
            elementType: "labels"
        }
       
    样式器,即可应用到地图项的颜色和可见性属性,用于通过组合色相、色彩和亮度/灰度值来定义显示颜色。
        样式器是应用于地图项的 MapTypeStyler 类型的格式化选项。系统支持以下 MapTypeStyler 选项:
            hue(RGB 十六进制字符串),用于表示基本颜色。
            lightness(介于 -100 和 100 之间的浮点值),用于表示元素的亮度变化百分比。负值用于增加暗度(其中 -100 指定为黑),而正值用于增加亮度(其中 +100 指定为白)。
            saturation(介于 -100 和 100 之间的浮点值),用于表示要应用到元素的基本颜色的色度变化百分比。
            gamma(介于 0.01 和 10.0 之间的浮点值,其中 1.0 表示不应用任何校正)用于表示要应用到元素的灰度系数校正量。灰度系数以非线性方式修改色相亮度,而不会影响白色值或黑色值。灰度系数通常用于修改多个元素的对比度。例如,您可以通过修改灰度系数来提高或降低元素的边缘与内部间的对比度。低灰度系数值(小于 1)可提高对比度,而高值(大于 1)则可降低对比度。
            inverse_lightness(如果为 true),用于仅对调现有的亮度。例如,使用此选项可快速切换为带有白色文本的暗色地图。
            visibility(on、off 或 simplified),用于表示元素是否以及怎样显示在地图上。simplified 可见度用于从受影响的地图项删除若干样式化地图项;例如,道路会简化为较细的线(不具备轮廓),而公园则会在保留标签图标的情况下删除其中的文本。
            color(RGB 十六进制字符串),用于设置地图项的颜色。
            width(大于或等于零的整数),用于设置地图项的宽度(以像素为单位)。为此宽度设置高值可能会导致图块边界附近被剪裁。
        地图项的颜色可以使用单独的 color 值设置,也可以组合使用 hue、saturation 和 lightness 进行修改。样式器操作中使用色相、饱和度、亮度 (HSL) 模型来表示样式化地图的颜色。这些用于定义颜色的操作在图形设计领域很常见。色相表示基本颜色,饱和度表示颜色的色度,而亮度则表示组合色中黑色或白色所占的相对比重。
        样式器规则会按照其在 MapTypeStyler 数组中的显示顺序进行应用。
       
        stylers: [ //亮蓝色显示地图项.
            { hue: "#00d4ff" },
            { saturation: 60 },
            { lightness: -20 },
            { gamma: 1.51 }
        ]
        //亮绿色显示地图项,同时使用单个 RGB 值
        stylers: [
            { color: "#99FF33" }
        ]
        删除地图项中的所有颜色(无论最初为哪种颜色)
        stylers: [
            { saturation: -100 }
        ]   
        完全隐藏地图项
        stylers: [
            { visibility: "off" }
        ]
    样式数组示例
        样式数组由地图项选择器和样式器规则组成。您可在一个数组中定位任意数量的地图项。
        以下示例将所有的地图项都转换为了灰色,然后将主干道几何图形设为蓝色,并完全隐藏商家标签:
        var styleArray = [
        {
            featureType: "all",
            stylers: [
                { saturation: -80 }
            ]
        },{
            featureType: "road.arterial",
            elementType: "geometry",
            stylers: [
                { hue: "#00ffee" },
                { saturation: 50 }
            ]
        },{
            featureType: "poi.business",
            elementType: "labels",
            stylers: [
                { visibility: "off" }
            ]
        }
        ];

 

示例,基本用法

	<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
function initialize() {
	var lanLng = new google.maps.LatLng(30.51667,114.31667);
	//将所有的地图项都转换为了灰色,然后将主干道几何图形设为蓝色,并完全隐藏商家标签:
	var styleArray = [
	{
	  featureType: 'all',
	  stylers: [
		{ saturation: -80 }
	  ]
	},{
	  featureType: 'road.arterial',
	  elementType: 'geometry',
	  stylers: [
		{ hue: '#00ffee' },
		{ saturation: 50 }
	  ]
	},{
	  featureType: 'poi.business',
	  elementType: 'labels',
	  stylers: [
		{ visibility: 'off' }
	  ]
	}
	];

  var mapOptions = {
    zoom: 12,
    center: lanLng,
    styles: styleArray,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  var map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
	<div id="map-canvas"></div>
</body>

 杂乱示例

<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {

// Create an array of styles.
var styles =   [
	{
		//亮蓝色显示地图项,all(默认),用于选择地图项的所有元素。
		featureType: 'all',
		stylers: [
			{ hue: "#FF5500" },
			{ saturation: 80 },
			{ lightness: -20 },
			{ gamma: 1.51 }
		]
	},{
		featureType: "road",
		stylers:[
			{color:"#7AB900"},
			{inverse_lightness:true}
		]
	},{
		//主干道几何图形设为蓝色
		featureType: "road.arterial",
		elementType: "geometry",
		stylers: [
			{ hue: "#FF0000" },
			{ saturation: 50 },
			{ width:2}
		]
    },
	{
		//适用于所有本地道路的标签
		featureType: "road.local",
		elementType: "labels" 
    },
	{
		//完全隐藏商家标签
		featureType: "poi.business",
		elementType: "labels",
		stylers: [
			{ visibility: "off" }
		]
	}
  ];

  // Create a new StyledMapType object, passing it the array of styles,
  // as well as the name to be displayed on the map type control.
  var styledMapType = new google.maps.StyledMapType(styles,
    {name: 'Styled Map'});

  // Create a map object, and include the MapTypeId to add
  // to the map type control.
  var mapOptions = {
    zoom: 12,
    center: new google.maps.LatLng(30.51667,114.31667),
    mapTypeControlOptions: {
      mapTypeIds: [google.maps.MapTypeId.ROADMAP,
        google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.HYBRID,
        google.maps.MapTypeId.TERRAIN, 'styled_maps']
    }
  };
  var map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

  // Associate the styled map with the MapTypeId and set it to display.
  map.mapTypes.set('styled_maps', styledMapType);
  map.setMapTypeId('styled_maps');
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
    <div id="map-canvas"></div>
</body>

 

 附件为官网上例子。

分享到:
评论

相关推荐

    GoogleMap V3 中文 教程

    Google Map V3是Google Maps API的一个重要版本,主要针对Web开发,提供了一整套用于在网页中集成地图、定位、路线规划等功能的工具。这个中文教程可以帮助开发者理解和运用V3版本的API,即便在无法访问互联网的情况...

    谷歌地图Google Map API V3中文开发文档

    在谷歌地图 Google Map API V3 中,开发者可以使用 Map 对象来创建一个新的地图,该对象提供了多种方法和属性,以便开发者可以自定义地图的样式和行为。例如,开发者可以使用 setCenter() 方法来设置地图的中心点,...

    Google Map V3 API

    **Google Map V3 API**是谷歌提供的一种用于在网页中集成地图功能的接口,它允许开发者利用JavaScript语言创建交互式的地图应用。这个API是Google Maps API的第三个主要版本,提供了更多的功能、更好的性能以及更...

    Google Map v3 官方实例

    综上所述,"Google Map v3 官方实例"中的内容涵盖了地图集成、交互设计、地理信息处理等多个方面,对于任何希望在网站或应用中集成地图功能的开发者而言,都是极其宝贵的参考资料。通过学习和实践这些实例,开发者...

    googleMap V3 中文API

    谷歌地图JavaScript API V3是谷歌提供的用于在网页中嵌入交互式地图的服务。这个API允许开发者通过JavaScript编程语言创建各种地图应用,包括自定义标记、信息窗口、路线规划、地理编码、以及各种地图样式和控件。V3...

    Google Map api V3 (3.9.12)的离线开发包

    Google Map API V3(3.9.12)是谷歌提供的一个用于在网页上嵌入交互式地图的服务,它是Google Maps JavaScript API的第三个主要版本。这个离线开发包允许开发者在没有网络连接的情况下进行地图应用的开发和测试,这...

    google map jsv3 示例

    9. **地图样式(Map Styles)**:你可以自定义地图的外观,比如改变颜色、隐藏某些图层、调整标签等,使用`styles`配置项或` StyledMapType`接口。 10. **响应式设计**:考虑到不同设备和屏幕尺寸,jsv3 API支持...

    Google Map V3版 根据KeyDragZoom制作DragZoomControl

    本篇我们将深入探讨如何在Google Maps V3中利用KeyDragZoom插件创建自定义的DragZoomControl。 首先,KeyDragZoom是一个非常实用的插件,它扩展了Google Maps的基本功能,允许用户通过按住键盘上的某个键(通常是...

    Google Map Api

    最新版的Google Map API是V3,它是一个基于JavaScript的API,具有高度可定制性和灵活性。 在Google Map API V3中,开发者可以实现以下主要功能: 1. **地图嵌入**:通过简单的HTML和JavaScript代码,可以在网页上...

    googlemap js v3 gmap

    谷歌地图JavaScript API V3(简称gmap)是Google提供的一款强大的地图开发工具,它允许开发者在网页上嵌入交互式地图,实现各种定制化的地图功能。这个压缩包文件包含了一系列有关gmap的教程章节,从基础到进阶,...

    google api v3 实例

    5. **图层(Layers)**:Google Maps V3支持多种图层,如地形图、卫星图、交通图等,可以通过切换图层来改变地图的显示样式。 6. **路径规划**:通过`google.maps.DirectionsService`和`google.maps....

    google map api v3 ExtDraggableObject

    谷歌地图API V3是Google为开发者提供的一种强大的工具,用于在网页上集成和操作地图。在API中,`ExtDraggableObject`是一个自定义扩展类,它允许用户将地图上的对象(如标记、覆盖物等)进行拖放操作,极大地增强了...

    谷歌地图API-google map api v3

    ### 谷歌地图API V3 - 详细知识点解析 #### 概述 谷歌地图API V3(Google Maps API V3)是谷歌提供的一套强大的工具和服务集合,旨在帮助开发者在网页上集成交互式地图。它支持多种功能,如自定义地图样式、添加...

    Google MAP 学习例程

    这个“Google MAP 学习例程”旨在帮助你深入理解和掌握Google Map V3 API,从而能够利用它创建各种定制化的地图应用。 **一、Google Map API基础** 1. **引入API**: 首先,你需要在HTML文件中通过`&lt;script&gt;`标签...

    Google Map开发房产地图实例

    ### Google Map开发房产地图实例详解 #### 一、概述 本文档主要介绍如何利用Google Maps JavaScript API V3 和 Google Local Search API 来开发一个房产地图应用。通过详细步骤的讲解和示例代码的展示,帮助读者...

    Google Maps API V3 (开发必备)

    ### Google Maps API V3 开发必备知识点 #### 一、概览 Google Maps API V3 是一个强大的工具,允许开发者将交互式的谷歌地图嵌入到网页应用中。它提供了丰富的功能,包括自定义地图样式、添加标记、路线规划等。...

    Google_Maps_API_V3.docx

    此外,V3 API还提供了丰富的类和接口,如`Map`、`Marker`、`Polyline`、`InfoWindow`等,用于创建、操作和显示地图元素。还有`Geocoder`服务用于地理编码和反编码,`DirectionsRenderer`和`DirectionsService`用于...

    google-map-v3-infobox

    "google-map-v3-infobox" 是一个专门为 Google Maps API v3 设计的插件,用于增强地图上的信息窗口(InfoBox)。这个插件在原始 Google Maps API 的基础上提供了更多的自定义选项和功能,使得开发者可以创建更加丰富...

    Google_Maps_API_V3.rar_Google Maps api v3_谷歌地图

    Google Maps API V3 是谷歌为开发者提供的一个强大工具,用于在网站或应用程序中集成交互式地图功能。这个API允许开发人员自定义地图显示的内容、样式以及交互方式,从而构建出各种基于地理位置的应用。在Google ...

Global site tag (gtag.js) - Google Analytics