google maps api 可以輕鬆自定自己想要的地圖樣式,覺得地標太多太雜,或想要自定一個喜歡的色系,用這個就可以了。
參考官網範例:
- var map;
- var brooklyn = new google.maps.LatLng(40.6743890, -73.9455);
- var MY_MAPTYPE_ID = 'custom_style';
- function initialize() {
- var featureOpts = [
- {
- stylers: [
- { hue: '#890000' },
- { visibility: 'simplified' },
- { gamma: 0.5 },
- { weight: 0.5 }
- ]
- },
- {
- elementType: 'labels',
- stylers: [
- { visibility: 'off' }
- ]
- },
- {
- featureType: 'water',
- stylers: [
- { color: '#890000' }
- ]
- }
- ];
- var mapOptions = {
- zoom: 12,
- center: brooklyn,
- mapTypeControlOptions: {
- mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]
- },
- mapTypeId: MY_MAPTYPE_ID
- };
- map = new google.maps.Map(document.getElementById('map-canvas'),
- mapOptions);
- var styledMapOptions = {
- name: 'Custom Style'
- };
- var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions);
- map.mapTypes.set(MY_MAPTYPE_ID, customMapType);
- }
- google.maps.event.addDomListener(window, 'load', initialize);
要改樣式的話只要改 featureOpts 就可以了,設定的地方可以看這邊的 API 說明。
主要是指定 FeatureType 和 ElementType ,再設定 stylers 就可以了,說明不是很清楚的話,只要把要指定的部分丟上去,重整就可以看那個是不是你要的部分,稍微花一些時間調整就可以調整出想要的樣子了。
也可以透過這個網站選擇想要的樣式後,複製 json 就可以了。