2012-02-27 9 views
0

私はSilverlightとWCF RIAサービスの新機能ですので、誤解をおかけして申し訳ありません。 マップサーバーからタイルURLを使用してSLクライアントにtelerikマップコンポーネントがあります。カスタムプロバイダを実装したかったので、このメソッドを実装しました:私のWCF RIAサービスのURIは何ですか?

protected override Uri GetTile(int tileLevel, int tilePositionX, int tilePositionY) 
    { 
     int zoomLevel = ConvertTileToZoomLevel(tileLevel); 

     string url = this.tileUrlFormat; 

     url = ProtocolHelper.SetScheme(url); 
     url = url.Replace("{zoom}", zoomLevel.ToString(CultureInfo.InvariantCulture)); 
     url = url.Replace("{x}", tilePositionX.ToString(CultureInfo.InvariantCulture)); 
     url = url.Replace("{y}", tilePositionY.ToString(CultureInfo.InvariantCulture)); 
     url = url.Replace("{type}", googleTileType.ToString()); 
     return new Uri(url); 
    } 

オンラインマップサーバーで動作します。しかし、私はSQLサーバデータベースに格納されている自分のタイルを使いたいと思っていました。

どうすればいいですか?私のWebプロジェクトでWCF RIAサービスを実装するにはどうすればいいですか?私のSLクライアントはURLを呼び出しますか? Webプロジェクトでドメインサービスを定義してSLで使用する例が多数見つかりましたが、URLは何ですか? たとえば、x、y、ズームパラメータを取得してデータベースからタイルを取得するドメインサービスを実装している場合、SLのコンポーネントで呼び出すことができるURLは何ですか? そして別の質問があります。それが可能な場合、そのサービスを呼び出すためにユーザーを認証することは可能ですか?そしてどうやって?

答えて

1

タイルを照会するのにWCF RIAサービスを使用しないでください。ズームパラメータx、y、およびtypeを受け取り、適切なイメージを返すgetメソッドをサーバー上に実装する必要があります。サーバーASP MVCで使用する場合は、例えば

は、get関数は次のとおりです。

namespace MvcMap.Controllers 
{ 
    public class MapTile : Controller 
    { 
     public ActionResult GetTile(int zoom, int x, int y, string type="") 
     { 
      // Add your action logic here 
      // return your image 
     } 
    } 
} 

このMVCのアクションを呼び出すためのURLは次のようになります。

http://yourdomain_or_ip/MapTile/GetTile?zoom=10&x=5&y10

関連する問題