$(document).ready(function ()
{
$(".viewmap").click(function ()
{
var id = $(this).attr("id");
var responseURL = "~/changemap?id=" + id;
//alert(responseURL);
$.ajax(
{
url: responseURL,
dataType: "json",
type:"GET",
success: function (dt)
{
initialize(dt.Latt, dt.Longt);
}
}
);
}
);
});
changemap.cshtml
私はそのスクリプトを使用して、次のことを行うページにajax呼び出しを行います
@{
if(!IsPost)
{
if(!Request.QueryString["id"].IsEmpty()&&Request.QueryString["id"].IsInt())
{
var countryId=Request.QueryString["id"];
var db=Database.Open("GoogleMapView");
var dbCmd="SELECT * FROM places WHERE id=@0";
var row=db.QuerySingle(dbCmd,countryId);
if(null!=row)
{
Json.Write(row,Response.Output);
}
}
}
}
これは、クエリされたデータをデータベースからjson形式でクライアントに返すことです。初期化関数は次のように定義されます
function initialize(lat,lng)
{
var mapOptions = {
center: new google.maps.LatLng(lat,lng),zoom: 8,mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("gmap"),mapOptions);
}
しかし、クラスのdivタグをクリックしてviewmap
も、何も起こりません。アプリケーションを正しく動作させるためのスクリプトがもう少し足りないと思います。
私は、ユーザーが地名をハイパーリンクとしてクリックすると、それに一致する地図を再読み込みする単純なグーグルマップビューを実装しようとしているだけです。