2011-08-15 10 views
0

あなたは私たちは変更することができますどのようにライン154クリック

GEvent.addListener(window.polyline, 'click', function() { 
            window.polyline.setOptions(options: { strokeColor: 'blue' }); 

You Have edited script according to v2 i am getting this error on using that script pic attached に付着し、そのスクリプトの写真を使用して、このエラーを取得していV2に応じてスクリプトを編集したことにより、実行時にアイコンの色とポリラインを変更する方法実行中のアプリケーションをクリックすると、アイコンとポリラインの色が変わりますか?私のコードは以下の通りです。エラーはありません。これどうやってするの? GergLによると

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

namespace GoogleMap 
{ 
    // A sample project by Ghaffar khan 

    public partial class Map : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      DataSet1TableAdapters.LocationsTableAdapter da = new GoogleMap.DataSet1TableAdapters.LocationsTableAdapter(); 
      DataSet1.LocationsDataTable table = new DataSet1.LocationsDataTable(); 
      da.Fill(table); 
      BuildScript(table); 
      //GooglePolyline PL1 = new GooglePolyline(); 

     } 
     private void BuildScript(DataTable tbl) 
     { 
      String Locations = ""; 
      foreach (DataRow r in tbl.Rows) 
      { 
       // bypass empty rows   
       if (r["Latitude"].ToString().Trim().Length == 0) 
        continue; 

       string Latitude = r["Latitude"].ToString(); 
       string Longitude = r["Longitude"].ToString(); 
       // create a line of JavaScript for marker on map for this record  
       Locations += Environment.NewLine + " map.addOverlay(new GMarker(new GLatLng(" + Latitude + "," + Longitude + ")));"; 

      } 

      // construct the final script 
      js.Text = @"<script type='text/javascript'> 
          function initialize() { 
           if (GBrowserIsCompatible()) { 
           var map = new GMap2(document.getElementById('map_canvas')); 
           map.setCenter(new GLatLng(45.05,7.6667), 2); 
           map.openInfoWindowHtml (new GLatLng(45.05,7.6667), 'Serif<br>Pakistan'); 
           " + Locations + @" 
           map.setUIToDefault(); 

// Create an array with points 
var points = [ 
    new GLatLng(24.85229, 67.01703), 
    new GLatLng(24.914463, 67.0965958), 
    new GLatLng(24.86588, 67.06089), 
new GLatLng(24.9726753, 67.06638), 
new GLatLng(24.840023, 67.24285), 
new GLatLng(24.85229, 67.01703) 
]; 

// Create a new polyline 
var polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

// Add the polyline to the map using map.addOverlay() 
map.addOverlay(polyline); 
var marker = new GMarker(new GLatLng(45.05,7.6667)) 
// 

           } 
          } 


          </script> "; 
     }  

    } 
} 

//////スクリプトは、///////

  js.Text = @"<script type='text/javascript'> 
          function initialize() { 
           if (GBrowserIsCompatible()) { 
           window.polyline = new GPolyline(points, '#ff0000', 5, 0.7); 
           var map = new GMap2(document.getElementById('map_canvas')); 
           map.setCenter(new GLatLng(45.05,7.6667), 2); 
           map.openInfoWindowHtml (new GLatLng(45.05,7.6667), 'Serif<br>Pakistan'); 
           " + Locations + @" 
           map.setUIToDefault(); 
google.maps.event.addListener(window.polyline, 'click', function() { 
    window.polyline.setOptions(options: { strokeColor: 'blue' }); 
}); 
// Create an array with points 
var points = [ 
    new GLatLng(24.85229, 67.01703), 
    new GLatLng(24.914463, 67.0965958), 
    new GLatLng(24.86588, 67.06089), 
new GLatLng(24.9726753, 67.06638), 
new GLatLng(24.840023, 67.24285), 
new GLatLng(24.85229, 67.01703) 
]; 

// Create a new polyline 
var polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

// Add the polyline to the map using map.addOverlay() 
map.addOverlay(polyline);       
           } 
          } 
google.maps.event.addListener(window.polyline, 'click', function() { 
    window.polyline.setOptions(options: { strokeColor: 'blue' }); 
}); 
          </script> "; 

ですが、私はエラーを取得しています。.. .Objectは、スクリプトどこにライン47に期待します私はあなたの助けを望んでいるその行のクリックメソッドを使用する!

あなたは私がそのスクリプトの写真を使用して、このエラーを取得していV2に応じてスクリプトを編集したあなたがグローバルにアクセス変数にinitialize()機能であなたのpolyline変数を割り当てるし、その後にsetOptions()メソッドを使用する必要が

答えて

1

を添付しましたクリックイベントハンドラ(javascriptで)に新しい色を設定します。

これに

var polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

:あなたはこのからinitialise()にラインを変更した場合

window.polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

そして、それがクリックされたとき、あなたはのようなコードを追加することになり、青に変化していたかった。

GEvent.addListener(window.polyline, 'click', function() { 
    window.polyline.setOptions(options: { strokeColor: 'blue' }); 
}); 

私はこれをテストしていません、btw。しかし、それはあなたが正しい軌道に乗るのを助けるはずです。

編集:ここでは、私はあなたのスクリプトがあるべきだと思うものです:
EDIT 2:ただし、API v2のでは動作し、Googleは強くあなたが両方V2 documentation pageV3 documentation pageに新しいV3に移行するよう奨励意識するように更新されました。

js.Text = @"<script type='text/javascript'> 
          function initialize() { 
           if (GBrowserIsCompatible()) { 
           var map = new GMap2(document.getElementById('map_canvas')); 
           map.setCenter(new GLatLng(45.05,7.6667), 2); 
           map.openInfoWindowHtml (new GLatLng(45.05,7.6667), 'Serif<br>Pakistan'); 
           " + Locations + @" 
           map.setUIToDefault(); 
           // Create an array with points 
           var points = [ 
            new GLatLng(24.85229, 67.01703), 
            new GLatLng(24.914463, 67.0965958), 
            new GLatLng(24.86588, 67.06089), 
            new GLatLng(24.9726753, 67.06638), 
            new GLatLng(24.840023, 67.24285), 
            new GLatLng(24.85229, 67.01703) 
           ]; 

           // Create a new polyline 
           window.polyline = new GPolyline(points, '#ff0000', 5, 0.7); 
           GEvent.addListener(window.polyline, 'click', function() { 
            window.polyline.setOptions(options: { strokeColor: 'blue' }); 
           }); 
           // Add the polyline to the map using map.addOverlay() 
           map.addOverlay(window.polyline);       
           } 
          } 
         </script> "; 
+0

ここで、クリック機能にこのコードを追加する必要がありますか?私のスクリプトやコードの中で? –

+0

どちらか。おそらくページ上のリテラルコントロールを使用してJavaScriptをレンダリングしていますが、これはうまくいくが、これを実行する最善の方法ではない。 クリック機能は、Google Maps JavaScript APIとのやりとりのように、明らかにJavascriptで行われます。あなたのための最良の場所は、私の答え(コードの背後にある)の最初の1行のコードの直後に、私の答えの最後の3行のコードを追加することです。 クリックして色を変更するポリラインにしたいと思っていたのは間違いありませんか? – GregL

+0

私が「どちらか」と言うとき、私はあなたが既に行っているようにjavascriptをレンダリングするためにあなたのコードを使うことができる、あるいはあなたが定義した別の関数を持つことができる、つまりあなたのページに含まれるjavascriptファイル、コードの背後からその関数への呼び出しをレンダリングします。それは理にかなっていますか? – GregL

関連する問題