Google地图:使用菜单设置新的中心点

我对Google地图很陌生。 我想要做的是设置一个地图,当点击一个HTML菜单时,它将居中点。

如果控件位于地图之外,我是否说得不需要事件侦听器?

这是我的头部分代码:`function init(){var myLatlng = new google.maps.LatLng(53.53562,-1.05642); var myOptions = {zoom:8,center:myLatlng,mapTypeId:google.maps.MapTypeId.ROADMAP} //绘制地图var map = new google.maps.Map(document.getElementById(“map”),myOptions);

        //set up the marker
        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
        }); 
    }

    function resetMap(lat,long) {
            var latlong = lat+","+long;
            var newPos = new google.maps.LatLng(latlong)({
            setCenter: latlong,
            map: map,
            zoom:15,
        })

        //add a marker
        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
            title:"New marker",
        })
    }   
</script>`

并且HTML如下所示:

<body onLoad="init()">
<div id="selecter">
    <select>
        <option onClick="resetMap(53.39433,-1.25754);">Thurcroft</option>
        <option onClick="resetMap(53.41615,-1.27833);">Wickersley</option>
        <option onClick="resetMap(53.47929,-1.14828);">M18/A1</option>
        <option onClick="resetMap(53.47802,-1.06633);">Rossington</option>
        <option onClick="resetMap(53.53562,-1.05642);">Armthorpe</option>
        <option onClick="resetMap(53.5914,-0.98797);">J5 M180</option>
        <option onClick="resetMap(53.61159,-0.96308);">Thorne</option>
        <option onClick="resetMap(53.62769,-0.95181);">Moorends</option>
    </select>
</div>
<div id="map">
</div>
</body>

...但访问菜单时没有任何反应。 任何人都可以点我正确的方向 - 所有的建议赞赏ta!


我做了一些改变,

(1) map变成了一个全局变量(放置在函数之外的一个级别),所以它可以在initresetMap修改

(2)选项值与坐标保持一个字符串,但google.maps.LatLng需要两个参数,所以字符串会以逗号分隔

(3)调用setOptions来调用中心和缩放,还可以调用单个函数setZoom和setCenter

演示和更新的代码

function resetMap() {
    // retrieve new selection
    var latlongChoice = document.getElementById("placeSelect").value;

    // separate into lat and long
    var latlongParts = latlongChoice.split(",");
    var newPos = new google.maps.LatLng(latlongParts[0], latlongParts[1]);

    map.setOptions({
        center: newPos,
        zoom: 15
    });

    //add a marker
    var marker = new google.maps.Marker({
        position: newPos,
        map: map,
        title: "New marker"
    })
}​

...

    <select id="placeSelect" onchange="resetMap()">
        <option value="53.39433,-1.25754">Thurcroft</option>
        <option value="53.41615,-1.27833">Wickersley</option>
        ...

你不能在一个选项中放置一个onclick函数,你必须像这样在选择标签中放置一个onchange函数,

<select onchange="resetMap('53.39433', '-1.25754');">
    <option>Thurcroft</option>
    <option>Wickersley</option>
</select>

您还要确保在文件中包含地图URL

链接地址: http://www.djcxy.com/p/81505.html

上一篇: Google Maps: Setting a new centre point using a menu

下一篇: keep center when zooming