私はWindwowsPhoneアプリケーションを持っており、ユーザーはqrコードをスキャンして取得した初期位置を地図上で確認できます。ユーザーがQrコードをスキャンすると、Webサーバーに保存されているマップへのURLと、初期位置のX座標とY座標を取得します。
.xamlページにマップイメージのコンテナーを作成しました:
<Image x:Name="ImagePanel" Width="470" Margin="5,0,5,98" Grid.Row="1" />
.csページで、サーバーからマップイメージをダウンロードしました。
public void DownloadImage(string URLmappa)
{
ImagePanel.Source = new BitmapImage(new Uri(URLmappa));
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
try
{
wc.OpenReadAsync(new Uri(URLmappa), wc);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null && !e.Cancelled)
{
try
{
BitmapImage image = new BitmapImage();
image.SetSource(e.Result);
ImagePanel.Source = image;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("It's impossibile to download map from server");
}
}
...そしてそれは機能しますが、難しい部分は画像上の場所をマークすることです(レポート)。
私はこのようなものを見つけました:
public void MarkLocation(int posizioneX, int posizioneY)
{
var imageMarker = new System.Web.UI.WebControls.Image { ImageUrl = "/pin.jpg" };
imageMarker.Style.Value = string.format("position:absolute;top:{0}px;left:{1}px;display:block;width:30px; height:30px;", point.X, point.Y);
imagePanel.Controls.Add(imageMarker); }
ただし、WindowsPhoneでは機能しません。
X、Y座標を指定して、画像上(上)に位置をマークする方法についての提案に興味があります。
別のアプローチをいただければ幸いです。