如何通过单击按钮更改Google Map Center

Abr*_*hin 11 html javascript jquery google-maps google-maps-api-3

我正在使用Google Map API v3和jQuery 1.11.0.

我在以下div中有一个Google Map:

<div id="googleMap" class="map_div"></div>
Run Code Online (Sandbox Code Playgroud)

map.js是外面的HTML文件,它是联系在一起的.

现在我在html的另一部分(外部地图)中有一个按钮,如下所示:

<button id="3">Change center</button>
Run Code Online (Sandbox Code Playgroud)

现在我想添加一个点击事件,它会将地图的中心更改为新的纬度和经度.

所以,我在HTML中有这样的JavaScript:

<script>
    $(document).ready(function()
    {
        $("#3").click(function(){
            var center = new google.maps.LatLng(10.23,123.45);
            map.panTo(center);
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?在此先感谢您的帮助.

小智 24

这是你的问题的代码:

var map;
function initialize()
{
  map = new google.maps.Map(document.getElementById('map-canvas'), {
    center: new google.maps.LatLng(48.1293954,12.556663),//Setting Initial Position
    zoom: 10
  });
}

function newLocation(newLat,newLng)
{
	map.setCenter({
		lat : newLat,
		lng : newLng
	});
}

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

//Setting Location with jQuery
$(document).ready(function ()
{
    $("#1").on('click', function ()
    {
	  newLocation(48.1293954,11.556663);
	});
  
	$("#2").on('click', function ()
    {
	  newLocation(40.7033127,-73.979681);
	});
  
    $("#3").on('click', function ()
    {
	  newLocation(55.749792,37.632495);
	});
});
Run Code Online (Sandbox Code Playgroud)
html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
Run Code Online (Sandbox Code Playgroud)
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>

<button id="1" style="padding:10px; cursor:pointer;">Munich</button>
<button id="2" style="padding:10px;cursor:pointer;">New York</button>
<button id="3" style="padding:10px;cursor:pointer;">Moscow</button>
<br>
<br>
<div style="height:100%;" id="map-canvas"></div>
Run Code Online (Sandbox Code Playgroud)

如果你需要更多:)现场演示就在这里.

  • 这可行,但它很难看.请改用事件监听器. (2认同)

MrU*_*own 14

在您的initialize函数(或创建映射的位置)中,在创建映射对象后添加以下代码:

google.maps.event.addDomListener(document.getElementById('3'), 'click', function () {

    map.setCenter(new google.maps.LatLng(10.23,123.45));
});
Run Code Online (Sandbox Code Playgroud)