2

自分の位置から地図上の固定位置までの道順をユーザーに知らせる機能があります。メインのdivにデータを入力するために外部コンテンツとして読み込まれています。マップは、IEとFirefoxの両方で正常に表示されますが、Chromeで表示すると表示されません。Chrome devコンソールは、コンテンツがdivに読み込まれていることを示しており、エラーは発生していません。

外部map.html

<script type="text/javascript" src="JS/location.js"></script>
<div id="mapContainer"></div>
<div id="writtenDir"></div>

コンテンツをロードするJS:

  $('#Contact').click(function () {
    $('#centerPane').load('External/map.html');
    $.getScript("JS/location.js");
  });

Location.js

if (navigator.geolocation) { 
  navigator.geolocation.getCurrentPosition(geoInfo, noGeoInfo);
} else {
  noGeoInfo();
}

function geoInfo(position) {
  navigator.geolocation.getCurrentPosition(function (position) { 
    var latitude = position.coords.latitude;                    
    var longitude = position.coords.longitude;                 
    var coords = new google.maps.LatLng(latitude, longitude); 
    var directionsService = new google.maps.DirectionsService();
    var directionsDisplay = new google.maps.DirectionsRenderer();
    var mapOptions = {  
      zoom: 15,        
      center: coords, 
      mapTypeControl: true, 
      navigationControlOptions:
      {
        style: google.maps.NavigationControlStyle.SMALL 
      },
      mapTypeId: google.maps.MapTypeId.ROADMAP 
    };
    map = new google.maps.Map(document.getElementById("mapContainer"), mapOptions); 
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById(''));
    var request = {
      origin: coords, 
      destination: '54.861283, -6.326805', 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
    };
    directionsService.route(request, function (response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  });
}

function noGeoInfo() { 
  var location = new google.maps.LatLng(54.861283, -6.326805); 
  var mapOptions = { 
    center: location, 
    zoom: 15, //Sets zoom level (0-21)
    mapTypeId: google.maps.MapTypeId.ROADMAP 
  };
  var map = new google.maps.Map(document.getElementById("mapContainer"), mapOptions);
  marker = new google.maps.Marker({  
    position: location, 
    map: map 
  });
}

ロードされるDiv:

<div id="centerPane" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'"></div>

マップがGoogleChromeに表示されないのはなぜですか?(ライブリンク、「お問い合わせ」を押してください-http://scmweb.infj.ulst.ac.uk/~B00518833/DNA/View/index.php

4

1 に答える 1

1

問題は、59行目のNav.jsファイル内にあります。

google.maps.event.trigger(map, 'resize');

このmap行が実行されるとき、は未定義です。

サイズ変更イベントをトリガーする前に、jsファイルが正しい順序でロードされ、マップが常に定義されていることを確認してください。

ここに画像の説明を入力してください

これがお役に立てば幸いです。

于 2013-03-16T21:44:52.100 に答える