2011-12-19 26 views
0

Googleマップを使用してマップチャート用のJavascriptアプリケーションをいくつか作成しましたが、OpenLayersでこれらを再作成したいと考えていました。私は自分のサイトのドキュメントがかなり混乱していて、ナビゲートするのが難しいと思っています。 はこれまでのところ、私は、次のコードを使用して、私のKMLにロードすることができるよ:私がやりたいのは何OpenLayersでのKML領域のターゲット設定と変更

var map = new OpenLayers.Map({ 
      div: divName, 
      layers: [ 
       new OpenLayers.Layer.OSM(), 
       new OpenLayers.Layer.Vector("KML", { 
        strategies: [new OpenLayers.Strategy.Fixed()], 
        protocol: new OpenLayers.Protocol.HTTP({ 
         url: "data.kml", 
         format: new OpenLayers.Format.KML({ 
          extractStyles: true, 
          extractAttributes: true, 
          maxDepth: 4 
         }) 
        }) 
       }) 
      ], 
      zoom: 4 
     }); 
     map.setCenter(
      new OpenLayers.LonLat(-97, 38).transform(
       new OpenLayers.Projection("EPSG:4326"), 
       map.getProjectionObject() 
      ), 4 
     ); 

変更または個々のKML領域を標的とすることができることです。たとえば、クリックイベントをアタッチするか、リージョンの背景色を変更するだけです。
私は周りを見回して、良い例を見つけることができないようです。 jQueryをロードしても役立ちます。 ご協力いただければ幸いです。

+1

を採用することができ、私はこの本を取得助言する - https://www.packtpub.com/openlayers-2 -1-javascript-web-mapping-library-beginners-guide/book –

答えて

1

あなたは詳細を取得/このような何かが

var myVectorLayer = map.getLayersByName("KML")[0]; 

var highlightCtrl = new OpenLayers.Control.SelectFeature(myVectorLayer , { 
       hover: true, 
       highlightOnly: true, 
       renderIntent: "temporary"     
      }); 

    var selectCtrl = new OpenLayers.Control.SelectFeature(myVectorLayer , 
     {clickout: true} 
    ); 

    map.addControl(highlightCtrl); 
    map.addControl(selectCtrl); 

がさらにイベントを発生するために動作するはずのオブジェクトの背景を変更するにはOpenLayers.Control.SelectFeatureオブジェクト

を使用してOpenLayersをマップにイベントを追加することができます選択された特徴から、あなたはOpenLayersをに新しいしている場合

myVectorLayer.events.on({ 
      "featureselected": function (e) { 
       alert(e.type + " - " + e.feature.id); 
    } 
}); 
+0

ここでこのvarを定義しています: var myVectorLayer = map.getLayersByName( "KML")[0]; しかし、私は後でそれを参照してください表示されません。これの目的は何ですか? – Munzilla

+0

これを反映するようにコードを変更しました。 – AlexC

+0

myVectorLayerが入力されているようですが、アラートは発生していません。また、どのようにKML地域のスタイルを変更するかについては完全にはわかりません。このコードは、KML全体またはKML全体の個々の地域で使用できますか?おかげさまで – Munzilla

関連する問題