得到像42floors.com这样的酷谷歌地图

时间:2013-04-25 06:38:11

标签: google-maps google-maps-api-3

我使用谷歌地图api,我想获得像42floors.com的谷歌地图用户界面的用户界面。

任何人都可以帮助我如何更改用户界面?

我猜他们正在使用地图样式 https://developers.google.com/maps/documentation/javascript/examples/maptype-styled-simple

var map;
var brooklyn = new google.maps.LatLng(40.6743890, -73.9455);

var MY_MAPTYPE_ID = 'custom_style';

function initialize() {

  var featureOpts = [
    {
      featureType: 'road',
      elementType: 'geometry',
      stylers: [
        { hue: -45 },
        { saturation: 100 }
      ]
    },
    {
      featureType: 'landscape',
      elementType: 'geometry',
      stylers: [
        { hue: '#000000' },
        { saturation: 75 },
        { lightness: -100}
      ]
    }
  ];

  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);

2 个答案:

答案 0 :(得分:0)

是的,这是地图样式的实现。看看他们的代码,嵌入谷歌地图库后你会发现custom Javascript file(链接可能会不时改变)。如果您开始搜索某些字符串,例如“ROADMAP”,您将找到定义样式的部分。请注意,此文件已缩小,并且不具备人类可读性。

答案 1 :(得分:0)

这不是相同的解决方案,但它会导致正确的解决方案:)

var map;
var brooklyn = new google.maps.LatLng(40.6743890, -73.9455);

var MY_MAPTYPE_ID = 'custom_style';

function initialize() {

  var featureOpts = [
    {
      featureType: 'road',
      elementType: 'geometry',
      stylers: [
        { hue: -45 },
        { saturation: 100 }
      ]
    },
    {
      featureType: 'landscape',
      elementType: 'geometry',
      stylers: [
        { hue: '#000000' },
        { saturation: 75 },
        { lightness: -100}
      ]
    }
  ];

  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);