Google Map API中的setCenter无法正常工作。地图不可见

时间:2018-11-27 05:10:10

标签: google-maps

我一直在从事Google地图项目的工作,遇到了此问题。 我想使用setCenter方法重定位地图中心。我只能看到灰色地图。我认为应该可以找到它,但是我不知道怎么了

这是enter image description here的样子

enter code here

var map;
var marker;

function initMap(){
    var options = {
            center: new google.maps.LatLng(37.4989885,127.03282719999993),
            zoom : 8
        };

    map = new google.maps.Map(document.getElementById('map'), options);

    marker = new google.maps.Marker({
        position : {lat:37.4989885,lng:127.03282719999993},
        map : map
    }); 
}

function changePosition(altitude, longitude){
    map.setCenter(new google.maps.LatLng(altitude,longitude));
    marker.setPosition(new google.maps.LatLng(altitude,longitude));
}


$(function() {
    var url = "tourXML";
    $.ajax({
        type : "GET",
        url : url,
        dataType : "text",
        success : function(data) {
            var temp = $.trim(data);
            obj = JSON.parse(temp);

            var longitude = parseFloat(obj.longitude);
            var altitude = parseFloat(obj.altitude);
            changePosition(altitude, longitude);
            $("#altitude").html(obj.altitude);
            $("#longitude").html(obj.longitude);

        },
        error : function() {
            alert("error.");
        }
    });
});

1 个答案:

答案 0 :(得分:0)

您可以使用此代码根据需要对其进行修改
map.setCenter(21.219381,72.840128); 或
map.setCenter(pos);

在此处输入代码

函数initMap()  {

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 5,
      center: {lat: 21.219381, lng: 72.840128}
    });


    var geocoder = new google.maps.Geocoder;
    var trafficLayer = new google.maps.TrafficLayer();
    trafficLayer.setMap(map);
    var infowindow = new google.maps.InfoWindow;

      if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(position) {
        var pos = {
          lat: position.coords.latitude,
          lng: position.coords.longitude
        };

    geocoder.geocode({'location': pos}, function(results, status) {
       if (status === 'OK') {
        if (results[0]) {
          console.log(JSON.stringify(results[0]));
          map.setZoom(11);
          var marker = new google.maps.Marker({
            position: pos,
            map: map
          });
          infowindow.setContent(results[0].formatted_address);
          infowindow.open(map, marker);
          map.setCenter(pos);
        } else {
          window.alert('No results found');
        }
      } else {
        window.alert('Geocoder failed due to: ' + status);
      }
    });

      }, function() {
        handleLocationError(true, infoWindow, map.getCenter());
      });
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter());
    }
    }