谷歌地图设置中心到一个新点击的区域

Google Map setCenter to a newly clicked area

本文关键字:一个 新点击 区域 设置中心 谷歌地图      更新时间:2023-10-23

我有以下代码。在关于"点击"事件的部分中,我想获得点击点的lang,但到目前为止我还无法做到。我该怎么办?

问题:我需要将地图的setCenter添加到新点击的区域。

<div id='map-container' style="width: 500px; height: 500px;">
</div>
<script type="text/javascript">

var map;
function initialize() {
  var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(35.7, 51.3999)
  };
    map = new google.maps.Map(document.getElementById('map-container'),
      mapOptions);
  var marker = new google.maps.Marker({
    position: map.getCenter(),
    map: map,
    title: 'موقعیت خود را انتخاب کنید'
  });


    google.maps.event.addListener(document.getElementById('map-container'), 'click', function() {
    map.setZoom(10);
    map.setCenter(35.7, 51.3999);
    console.log(marker.getPosition());
  });
}
google.maps.event.addDomListener(window, 'load', initialize);

</script>

(1)要获得谷歌地图中正在点击的点的纬度,您必须使用谷歌地图的clickeventListener,如

google.maps.event.addListener(map, 'click', function(event) {
  });

(2) 然后,为了获得正在点击的地图的位置,

event.latLng    //returns the position
event.latLng.ob //returns lat
event.latLng.pb //returns lng

(3) 现在使用setCenter(pos),像一样将单击的区域标记为地图的中心

map.setCenter(event.latLng);

最后,

google.maps.event.addListener(map, 'click', function(event) {
    map.setCenter(event.latLng);
  });

样品Fiddle

编辑:你能告诉我如何同时将红色标记移动到新点击的区域吗

google.maps.event.addListener(map, 'click', function (event) {
        marker.setPosition(event.latLng); //set the position to marker
        map.setCenter(marker.getPosition()); //Now set marker to map's center
    });

Fiddle