এটি আমি প্রণীত C # কোড ব্যবহার করি :
public void ZoomToArea (Bounds2 mapArea, float paddingFactor)
{
double ry1 = Math.Log((Math.Sin(GeometryUtils.Deg2Rad(mapArea.MinY)) + 1)
/ Math.Cos(GeometryUtils.Deg2Rad(mapArea.MinY)));
double ry2 = Math.Log((Math.Sin(GeometryUtils.Deg2Rad(mapArea.MaxY)) + 1)
/ Math.Cos(GeometryUtils.Deg2Rad(mapArea.MaxY)));
double ryc = (ry1 + ry2) / 2;
double centerY = GeometryUtils.Rad2Deg(Math.Atan(Math.Sinh(ryc)));
double resolutionHorizontal = mapArea.DeltaX / Viewport.Width;
double vy0 = Math.Log(Math.Tan(Math.PI*(0.25 + centerY/360)));
double vy1 = Math.Log(Math.Tan(Math.PI*(0.25 + mapArea.MaxY/360)));
double viewHeightHalf = Viewport.Height/2.0f;
double zoomFactorPowered = viewHeightHalf
/ (40.7436654315252*(vy1 - vy0));
double resolutionVertical = 360.0 / (zoomFactorPowered * 256);
double resolution = Math.Max(resolutionHorizontal, resolutionVertical)
* paddingFactor;
double zoom = Math.Log(360 / (resolution * 256), 2);
double lon = mapArea.Center.X;
double lat = centerY;
CenterMapOnPoint(new PointD2(lon, lat), zoom);
}
mapArea
: দীর্ঘ / ল্যাট কর্ডগুলিতে আবদ্ধ বাক্স (x = দীর্ঘ, y = ল্যাট)
paddingFactor
: এটি থমএম উল্লেখ করে "120%" প্রভাব পেতে ব্যবহার করা যেতে পারে। 1.2 এর মান আপনাকে 120% পাবে।
মনে রাখবেন যে আমার ক্ষেত্রে zoom
একটি আসল নম্বর হতে পারে। ওয়েব মানচিত্রের ক্ষেত্রে আপনার একটি পূর্ণসংখ্যার জুম মান প্রয়োজন, সুতরাং (int)Math.Floor(zoom)
এটির মতো আপনার ব্যবহার করা উচিত ।
অবশ্যই, এই কোডটি কেবলমাত্র ওয়েব মার্কেটর প্রক্ষেপণের ক্ষেত্রে প্রযোজ্য।