0

ルート案内の出力に使用される地図上の XML ファイルからマーカーを読み込もうとしています。基本的には、Google のドキュメント ページにある 2 つのデモを組み合わせたものです。

行き方: https://google-developers.appspot.com/maps/documentation/javascript/examples/directions-panel

XML: http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/downloadurl_info.html

最初に道順マップを作成してから、マーカーを含む XML ファイルを追加しようとしました。

私はおそらく単純な間違いを犯していますが、私はjsとコーディングが得意ではないので、何が見つかりません. エラーは表示されず、空白のページのみが表示されます。

これが私の現在のコードです:

<script>
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var mapOptions = {
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: new google.maps.LatLng(41.850033, -87.6500523)
    };
    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById('directions-panel'));
    var control = document.getElementById('control');
    control.style.display = 'block';
    map.controls[google.maps.ControlPosition.TOP].push(control);
  }   
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  downloadUrl("http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/moredata.xml", function(data) {
  var markers = data.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < markers.length; i++) {
    var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
    var marker = createMarker(markers[i].getAttribute("name"), latlng);
   }
 });

  function calcRoute() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    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);
      }
    });
  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

これが(動作していない)jsFiddleです:http://jsfiddle.net/ajJ3u/

4

1 に答える 1

1

簡単なレビューからの問題:

  1. マップを 2 回作成しています。
  2. createMarker 関数がありません。その呼び出しが例の 1 つから来た場合、それを新しいマップに持ち込めませんでした。
  3. downloadUrl は、クロスドメイン セキュリティ制限の対象となります。ページが「http://gmaps-samples-v3.googlecode.com」ドメインで実行されていない場合、機能しません。ページが実行されているのと同じドメインから xml にアクセスするか、プロキシを使用する必要があります。

xml のマーカーから/へのルート案内の例 (Mike Williams の v2 チュートリアルから v3 に変換)

于 2012-10-09T00:28:27.993 に答える