0

2 つの座標間にポリラインを描画しようとすると、Google Maps API v3 の setMap 関数で問題が発生します。

コードのどこが失敗しているalert()かを確認しましたが、setMap 関数にあるようです。なぜこれが起こるのか誰にも考えがありますか?

function showPosition(position)
  {
  lat=position.coords.latitude;
  lon=position.coords.longitude;
  speed= position.coords.speed;
  altitude = position.coords.altitude;


  latlon=new google.maps.LatLng(lat, lon, speed, altitude)
  mapholder=document.getElementById('mapholder')
  mapholder.style.height='250px';
  mapholder.style.width='500px';

  var myOptions={
  center:latlon,zoom:14,
  mapTypeId:google.maps.MapTypeId.ROADMAP,
  mapTypeControl:false,
  navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
  };
  var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
  var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});


    x.innerHTML="Latitude: " + lat + " Long: " + lon;
  mapRoute();

  }

function mapRoute(showPosition, position){


var routeCoordinates = [
    new google.maps.LatLng(53.379763, -1.4658453999999999),
    new google.maps.LatLng(21.291982, -157.821856)   
  ];



  var flightPath = new google.maps.Polyline({
    path: routeCoordinates,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
  });


 flightPath.setMap(map);


}

前もってありがとう、マット

4

1 に答える 1

1

これは範囲の問題です

これは、グローバル変数ではなく、のvar map内部で定義されていますfunction showPosition(position)

関数呼び出しの上に a を追加し、からvar map;を削除しますvarvar map=new google.maps.Map(document.getElementById("mapholder"),myOptions);

mapその後、内部にアクセスできるはずですflightPath.setMap(map);

于 2012-11-18T16:57:34.590 に答える