0

在下面的示例中,我尝试根据所选选项类型的值更新地图类型。

不幸的是,它似乎没有加载maptypegoogle.maps.MapTypeId令人沮丧的内容中。我也试过把它当作一个字符串var gmapsMapType = google.maps.MapTypeId.++maptype;,我觉得我在这里遗漏了一些东西。

HTML

<select id="maptype" name="maptype">
    <option selected="selected" value="RoadMap">Road Map</option>
    <option value="Satellite">Satellite</option>
    <option value="Hybrid">Hybrid</option>
    <option value="Terrain">Terrain</option>
</select>

查询

var maptype = $('#maptype>option:selected').val().toUpperCase();
var gmapsMapType = google.maps.MapTypeId.+maptype;
map.setMapTypeId(gmapsMapType);

帮助表示赞赏。

4

2 回答 2

3

使用下标符号

google.maps.MapTypeId[maptype];
于 2013-11-05T09:45:54.560 回答
0

如果选中mapOptions,它是一个包含以下属性的对象。

center: N
mapTypeId: "roadmap" //lowercase 
zoom: 8

mapTypeId 是小写的,因此您可以像这样简单地使用

function initialize() {
    var maptype = $('#maptype>option:selected').val().toLowerCase();
    var myLatlng = new google.maps.LatLng(43.565529, -80.197645);
    var mapOptions = {
        zoom: 8,
        center: myLatlng,
        mapTypeId: maptype
    }
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}

google.maps.event.addDomListener(window, 'load', initialize);

$("#maptype").change(function () {
    initialize();
})

检查这个JSFiddle

于 2013-11-05T09:50:22.843 回答