2017-03-17 1 views
0

上で集中管理し、私はちょうどGMAP.Netを使用して開始していると私は、このようにカスタムマーカーを設定しています:GMap.Netの場所がポイント以上ない

marker = new GMarkerGoogle(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[1])), new Bitmap(Iconpath)); 

あるIconPathポイントの42 * 38ピクセルの画像にしますタイプPNG。

ただし、画像は中央で上に設定されたポイントのすぐ上に表示されます。私が望むのは、その場所の上にイメージの中心を設定する方法を知ることです。

どうすればいいですか?

これはwinforms .Net 4.0アプリケーションに含まれています。

答えて

0

私は、このようにこれを行う簡単な方法があったが見つかりました:

    Bitmap imgMarker = new Bitmap(Iconpath); 
       marker = new GMarkerGoogle(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[1])), imgMarker); 
       marker.Offset = new Point(imgMarker.Width/2, imgMarker.Height/2); 

は、それが他の誰かに役立ちます願っています!

0

GoogleMarkerクラスはピンの先端が注目点の真上にくるようにプッシュピンの画像を表示するように設計されているようです。あなたの最善の策は、マーカークラスを継承し、画像配置を制御できる独自のクラスを作ることです。このように:

class customImageMarker: GMapMarker 
{ 
    Bitmap Bitmap; 

    public customImageMarker(PointLatLng p, Bitmap Bitmap) 
    : base(p) 
     { 
     this.Bitmap = Bitmap; 
     Size = new System.Drawing.Size(Bitmap.Width, Bitmap.Height); 
     Offset = new Point(-Size.Width/2, -Size.Height/2); 
     } 

    public override void OnRender(Graphics g) 
    { 
     g.DrawImage(Bitmap, LocalPosition.X - Offset.X, LocalPosition.Y - Offset.Y, Size.Width, Size.Height); 
    } 
} 

今ちょうどあなたのクラスを呼び出す:

marker = new customImageMarker(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[0])), new Bitmap(Iconpath)); 

あなたはオフセット変数を調整することで、アイコンの配置を制御することができます。

+0

私は戻ってきた日曜日にこれを行こうと思います。 GoogleはGMap.Netに似ていますか? – Adrian

+0

こんにちは私はこれを試してみましたが、次のエラーが表示されます。 "CustomImageMarkerをGMap.Net.WindowsForms.Markers.GMarkerGoogleに暗黙的に変換できません" – Adrian

+0

最初にマーカーをcustomImageMarkerとして定義してから、あなたは通常そうでしょう。それにかかわらず、はるかに簡単な方法を見つけたようです! –

関連する問題