0

Google マップで地理位置情報を使用しようとしていますが、ページが読み込まれても何も起こりません。さまざまな例やさまざまなことをグーグル検索しましたが、答えが見つからないようです。コードに問題はありません。

<script>
var initialLocation;
var map;
var markersArray = [];
function initialize() {
  var mapOptions = {
  zoom: 15,
  center: new google.maps.LatLng(-34.397, 150.644),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  disableDefaultUI: false,
  zoomControl: true,
  zoomControlOptions: {
    style: google.maps.ZoomControlStyle.LARGE
  }
};

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

  google.maps.event.addListener(map, 'click', function(event) {
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();
    deleteOverlays();
    addMarker(event.latLng);
    updateTextFields(latitude, longitude);
  });

  google.maps.event.addListener(marker, 'click', function(event) {
    showInfo(window);
  });

  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success);
    alert('Browser Supports but Im not doing anything yet');
  } else {
    error('Geo Location is not supported');
  }
}

function updateTextFields(lati, longi) {
  $('#inputLatitude').val(lati);
  $('#inputLongitude').val(longi);
}


function addMarker(location) {
  marker = new google.maps.Marker({
    position: location,
    map: map
  });
  markersArray.push(marker);
}

function deleteOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
    markersArray.length = 0;
  }
}

function loadScript() {
  var script = document.createElement('script');
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&' +
  'callback=initialize';
  document.body.appendChild(script);
}

$(document).ready(function() {
$(window).resize(function () {
    var h = $(window).height(),
        offsetTop = 190; // Calculate the top offset

    $('#gmaps').css('height', (h - offsetTop));
  }).resize();
  window.onload = loadScript;
});


</script>

ここに画像の説明を入力

4

1 に答える 1

0

ウィンドウがロードされたwindow.onload に関数を割り当てています。したがって、呼び出されません。

次の方が良いでしょう:

$(document).ready(function() {
  $(window).resize(function () {
    var h = $(window).height(),
        offsetTop = 190; // Calculate the top offset

    $('#gmaps').css('height', (h - offsetTop));
  }).resize();
  loadScript();
});

加えて:

navigator.geolocation.getCurrentPosition(success);

successジオロケーション位置を入力パラメータとして受け取ると呼ばれる関数が必要です。あなたのコードにはそのような関数はありません。

于 2013-03-04T18:17:22.997 に答える