1

私はGoogleFusionを初めて使用しますが、学びたいと思っています。マップを作成し、情報ウィンドウをカスタマイズし、FusionTablesLayer Wizardを使用してマップをサイトに埋め込み、同じドメインでホストされるスクリプトを作成しました。そうすることで、煩わしいtarget = _blankコマンドの代わりに、infowindowのリンクにtarget=_parentを使用できるようになると思います。それ以来、セキュリティ上の理由から、trget = _parentを機能させるには、クリックリスナーを追加する必要があることがわかりました。これで、私の能力が停止します。リスナーを有効にし、情報ウィンドウを構成し、最も重要なこととして、target=_parentを機能させるのを手伝ってくれる人はいますか。

ここにいくつかのコードがあります、私はあなたが使うことができることを望みます。

情報ウィンドウ:

<div class='googft-info-window' style='font-family:Georgia, sans-serif' "width: 250px;" >
<base target="_parent" />
<b><a href="{info-URL} " ">{Skole}</a></b></b><br>
<i>Åbner i ny fane/nyt vindue</i><br><br>
{Adresse}<br><br>
<b>Elevtal:</b> {Elevtal}<br>
<b>Rang 2010/2011:</b> {Rangering til kort}/107<br><br>
<b>Gennemsnit 2010/2011</b><br>
<b>Dansk:</b> {Dansk total}<br>
<b>Engelsk:</b> {Engelsk total}<br>
<b>Fysik/kemi:</b> {Fysik/kemi total}<br>
<b>Matematik:</b> {Matematik total}<br><br>
<b>Samlet gennemsnit:</b> {Skolegennemsnit}<br><br>
{NOTE}<br><br>
<a href="{Skole-URL}" target=_blank>Hjemmeside</a>
</div>

FusionTablesLayerウィザードのコード

<!DOCTYPE html>
<html>
  <head>
<base target="_parent" />
  <style>
    #map-canvas { width:700px; height:400px; }
  </style>
  <script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false">
  </script>
  <script type="text/javascript">
    var map;
    var layerl0;
    function initialize() {
      map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: new google.maps.LatLng(57.17199198214385, 9.771527295703208),
        zoom: 8
      });
      var style = [
        {
          featureType: 'all',
          elementType: 'all',
          stylers: [
            { saturation: 9 }
          ]
        }
      ];
      var styledMapType = new google.maps.StyledMapType(style, {
        map: map,
        name: 'Styled Map'
      });
      map.mapTypes.set('map-style', styledMapType);
      map.setMapTypeId('map-style');
      layerl0 = new google.maps.FusionTablesLayer({
        query: {
          select: "'col2'",
          from: 'table-id'
        },
        map: map,
        styleId: -1,
        templateId: 1
      });
    }
    google.maps.event.addDomListener(window, 'load', initialize);
  </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>

マップは現在www.skoleguide.netでオンラインになっており、クリックリスナーを追加するためのインスピレーションはここから得られました

私は本当に願っています、そこにいる誰かが私を助けることができます

Jens Skriver Steffensen

4

1 に答える 1

1

FusionTablesの既存のコンテンツに「target=_parent」を追加するには、次のように機能する必要があります。

var newContent = e.infoWindowHtml.replace("/<a /<a target='_parent' /g");

google.maps.addListenerメソッドを使用してFusionTableをリッスンするクリックを追加します

このようなものが機能するはずです:

  //add a click listener to the layer
  google.maps.event.addListener(layer10, 'click', function(e) {
    //update the content of the InfoWindow
    var newContent = e.infoWindowHtml.replace("/<a /<a target='_parent' /g");
    infowindow.setOptions({
       content: newContent,
   pixelOffset: e.pixelOffset,
   position: e.latLng
   });
    infowindow.open(map);
  });      

FusionTablesLayerコンストラクターに「suppressInfoWindows:true」オプションを追加して、デフォルトのinfowindowsを必ず無効にしてください。

実例

于 2012-11-15T21:04:28.680 に答える