Google Map V3常量作为变量

时间:2013-11-05 09:16:12

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

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

不幸的是,似乎没有将maptype加载到google.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>

JQUERY

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

非常感谢帮助。

2 个答案:

答案 0 :(得分:3)

使用subscript-notation

google.maps.MapTypeId[maptype];

答案 1 :(得分: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