我使用谷歌地图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);
答案 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);