1

サイトの訪問者がさまざまな州の技術者に関する情報を入手できるように、FusionLayerを使用してGoogleマップを作成しています。参考サイトは次のとおりです。http://horizo​​nwebtest.zxq.net/techmap.htmlマップは米国本土にロックする必要があるため、デフォルトのUI、ドラッグ可能、ダブルクリックズーム、キーボードショートカットを無効にしました。スクロールホイールと自動パン。問題は、情報ウィンドウがポップアップしたときに、マップを強制的にパンすることです。誰かがこれを回避する方法を知っていますか?JavaScriptは次のとおりです。

// JavaScript Document
  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(38.816223025492505, -94.15954943749999),
      zoom: 4,
      disableDefaultUI: true,
      draggable: false, 
      disableDoubleClickZoom: true,
      keyboardShortcuts: false,
      scrollwheel: false,
      disableAutoPan: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var horizonStyles = [
     {
        featureType: "water", 
            stylers: [ 
                { hue: "#0077ff" }, 
                { saturation: 20 }, 
                { lightness: -50 }, 
            ]
     },{
         featureType: "administrative.locality", 
            stylers: [ 
                { visibility: "off" } 
            ]
     },{
         featureType: "administrative.province",
         elementType: "labels.text.fill",
            stylers: [
                { lightness: -80 }
            ]
     }
    ];
    var layer = new google.maps.FusionTablesLayer({
        query: {
            select: 'geometry',
            from: '18KqZR_1Nd39CyWN1kKt8Pufd6wlLS2oQArpCugw'
        },
    });
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
    map.setOptions({styles: horizonStyles});
    layer.setMap(map);
}

どんな考えでも大歓迎です。

4

1 に答える 1

0

多くの検索と試行錯誤の結果、フュージョンレイヤーには編集可能な要素が含まれていないようです。インフォボックスを編集するには、suppressInfoWindows:trueを設定してから、情報ウィンドウを作成する必要があります。参考のために完成したコードは次のとおりです。

// JavaScript Document
  function initialize() {
    var latlng = new google.maps.LatLng(38.816223025492505, -94.15954943749999); 
    var infoposition = new google.maps.LatLng(40, -81);
    var infowindow = new google.maps.InfoWindow({
      disableAutoPan: true,
      position: infoposition,
    });
    var infoWindowContent = '';
    var mapOptions = {
      center: latlng,
      zoom: 4,
      disableDefaultUI: true,
      draggable: false, 
      disableDoubleClickZoom: true,
      keyboardShortcuts: false,
      scrollwheel: false,
      disableAutoPan: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var horizonStyles = [
     {
        featureType: "water", 
            stylers: [ 
                { hue: "#0077ff" }, 
                { saturation: 20 }, 
                { lightness: -50 }, 
            ]
     },{
         featureType: "administrative.locality", 
            stylers: [ 
                { visibility: "off" } 
            ]
     },{
         featureType: "administrative.province",
         elementType: "labels.text.fill",
            stylers: [
                { lightness: -80 }
            ]
     }
    ];
    var layer = new google.maps.FusionTablesLayer({
        query: {
            select: 'geometry',
            from: '18KqZR_1Nd39CyWN1kKt8Pufd6wlLS2oQArpCugw',
        },
        suppressInfoWindows: true,
    });
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
    map.setOptions({styles: horizonStyles});
    layer.setMap(map);

//click listener on layer
google.maps.event.addListener(layer, 'click', function(e) {
if(infowindow) infowindow.close();
else infowindow;

//create info window layer
infoWindowContent = infowindow.setContent(
    '<p class="info_window" style="font-weight: bold">' + e.row['State'].value + '</p>' +
    '<p class="info_window">' + e.row['Number of Technicians'].value + ' technicians available<br>' +
    '<a href="http://horizonwebtest.zxq.net/contact/">Click here to schedule a service call or installation<br>' +
    'or <style="font-weight:bold">CALL 727-845-4444 NOW</style> for a live help desk<br>' +
    'person to assist you over the phone or to dispatch<br>' +
    'a technician to your site.</a></p>'
    );

map.setCenter(latlng);
infowindow.open(map);        
});
}

私はそれが他の誰かを助けることを願っています...

于 2012-08-20T01:40:00.350 に答える