0

これは問題です。非常に単純ですが、私はそれを得ることができません。たとえば<a href="includes/driving.php?lat=38.254181&long=20.649962" class="driving" >Driving instructions</a>、クリックすると(jQueryを使用して)次のようなgooglemapが開きます。

jQuery('a.driving').live('click',function(){
jQuery('#content').empty().load(jQuery(this).attr('href'), function(){
initGeolocation();
})
return false;
});

関数initGeolocation();が HTML5 の場所を取得class="driving"し、ページに複数のリンクがあります。私が起こらないのは、緯度と経度の変数をマップに渡すことです。それらをこの関数に入れる必要があります:

function calcRoute(position) {
var start = '38.313393,20.562651';
var end   = 'lat' , 'long'
var request = {
    origin:start,
    destination:end,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    directionsDisplay.setDirections(response);
  }
});

}

必要に応じて、マップは次のように呼び出されます (標準コード)

function success(position) {
    var myOptions = {
      zoom: 13,
      center: new google.maps.LatLng(38.313393, 20.562651),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
   directionsDisplay = new google.maps.DirectionsRenderer({
        'map': map,
        'preserveViewport': true,
        'draggable': true
    });
    directionsDisplay.setPanel(document.getElementById("directions_panel"));
    google.maps.event.addListener(directionsDisplay, 'directions_changed',
      function() {
        if (currentDirections) {
          oldDirections.push(currentDirections);
          setUndoDisabled(false);
        }
        currentDirections = directionsDisplay.getDirections();
      });
    setUndoDisabled(true);
    calcRoute(position);
  }

助けてくれてありがとう

4

3 に答える 3

0

わかりました。リンクから緯度と経度の属性を取得し、それらを calcRoute 関数に渡します。[elem は現在の<A href...>要素、name は 'lat' または 'long':

function getParameterByName(name) {
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

var lat=getParameterByName(elem, "lat");
var long=getParameterByName(elem, "long");

JavaScript でクエリ文字列値を取得するにはどうすればよいですか? .

于 2012-05-22T08:07:35.577 に答える
0

PHP 変数を取得し、緯度と経度を JavaScript 変数に渡し、calcRoute 関数で両方の変数を使用できます。

var lat = "<?= $lat ?>";
var long = "<?= $long ?>";

function calcRoute(lat, long) {
   var start = '38.313393,20.562651';
   var end   = lat , long;
   var request = {
       origin:start,
       destination:end,
       travelMode: google.maps.DirectionsTravelMode.DRIVING
   };
   directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
          directionsDisplay.setDirections(response);
      }
});

そして、あなたは呼び出すことができます:

calcRoute(lat, long);
于 2012-05-22T07:14:59.297 に答える
0

こんにちは、座標の準備ができている場合は、次のgoogle.maps.LatLng方法でオブジェクトを作成してみませんnew google.maps.LatLng(your lat, your lon)か: これで問題は解決します。詳細については、Google のドキュメントをご覧ください。:)stringnew google.maps.LatLng("address")

于 2012-05-22T06:52:08.137 に答える