2011-12-30 6 views
0

私はGoogleマップを含むASP.NETウェブサイトを持っています。私はいくつかの賢明かつ有益な個人によって作られたGoogleMapForASPNetフレームワークを使用しています。ピンに応じてGoogleマップをセンタリング

2つのピンを挿入した後にマップのセンタリングに問題があります。

基本的に、私はピンの中点を計算し、それをマップの中心点として設定しています。

GooglePoint newPoint = new GooglePoint(); 
     double newLat = 0; 
     double newLong = 0; 

     if (googlePointA.Latitude > googlePointB.Latitude) 
     { 
      newLat = googlePointA.Latitude - googlePointB.Latitude; 
      newPoint.Latitude = googlePointA.Latitude - newLat; 
     } 
     else 
     { 
      newLat = googlePointB.Latitude - googlePointA.Latitude; 
      newPoint.Latitude = googlePointB.Latitude + newLat; 
     } 
     if (googlePointA.Longitude > googlePointB.Longitude) 
     { 
      newLong = googlePointA.Longitude - googlePointB.Longitude; 
      newPoint.Longitude = googlePointA.Longitude - newLong; 
     } 
     else 
     { 
      newLong = googlePointB.Longitude - googlePointA.Longitude; 
      newPoint.Longitude = googlePointB.Longitude + newLong; 
     } 

     GoogleMapForASPNet1.GoogleMapObject.CenterPoint = newPoint; 
     GoogleMapForASPNet1.GoogleMapObject.ZoomLevel = 8; 

それは半々の作品ではなく、適切に:

以下は私のコードです。同じように、私は異なるピンにフィードするとき、それは実際にマップを中心にしませんが、十分に近いです。時には、他のピンはマップから外れていますが、1インチしかないので、マップがまったく中央にないことを意味します。

ピンは常に近くにあるので、ズームは静的なので、ダイナミックにする必要はありません。

非常に、非常に、非常に高く評価されています。

ありがとうございます。

答えて

0

GoogleマップAPIはそれを行うことを目的としている:google.maps.LatLngBounds

ちょうどそのマップpanToBounds(yourBounds)メソッドを使用すると、あなたはすべてのセットです、あなたのピンはextend()方法でそれに座標を追加、LatLngBoundsオブジェクトを作成します!

+0

Erm。私はGoogleMapForASPNetと呼ばれる事前構築されたフレームワークを使用しています。私はここでそれをダウンロードした:http://www.shabdar.org/asp-net/70-google-maps-control-for-aspnet-part-1.html だから私はそれを組み込み関数を使用する必要があります。もちろん、LatLngBoundsはありません。 これはどうしたらいいですか?このフレームワークで。 – Subby

+0

alcfeoh。私は正しい結果を得ていない唯一の理由が私の計算であるから100%確信しています。 Googleの他のAPIなどを使用していないためではありません... – Subby

関連する問題