0

我使用 google maps api,我想获得像 42​​floors.com 的 google map UI 这样的 UI。

谁能帮助我他们如何更改 UI?

我猜他们正在使用地图样式 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);
4

2 回答 2

0

是的,这是地图样式的一个实现。看看他们的代码,在嵌入谷歌地图库后,你会发现一个自定义的 Javascript 文件(链接可能会不时更改)。如果您开始搜索诸如“ROADMAP”之类的字符串,您将找到定义样式的部分。请注意,这个文件被缩小了,不是真正的人类可读的。

于 2013-04-25T06:45:45.507 回答
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);
于 2013-04-26T07:18:28.417 回答