Android Google Map:动态地图缩放比例与静态地图缩放比例

时间:2018-10-12 16:30:49

标签: android google-maps xamarin.android maps

我必须使用Google动态地图搜索位置,滚动,缩放等,然后拍摄地图的屏幕截图。由于许可证限制,我无法拍摄屏幕截图(GMap.Snapshot(this))。因此决定从Google静态地图下载图片

当用户想要从地图动态模式切换到静态地图时,他单击一个按钮,然后获取中心纬度和经度,缩放级别和地图大小(这是xamarin android)

        {
            CenterLatLng = new double[] { GMap.CameraPosition.Target.Latitude, GMap.CameraPosition.Target.Longitude },
            ZoomLevel = (int)GMap.CameraPosition.Zoom,
            Type = GMap.MapType,
            MapSize = new int[] { MapFragment.View.MeasuredWidth, MapFragment.View.MeasuredHeight }
        };

使用此参数,我将尝试下载静态地图

        int scale = 2;
        var url = $"https://maps.googleapis.com/maps/api/staticmap?center={myobject.CenterLatLng[0]},{myobject.CenterLatLng[1]}&zoom={myobject.ZoomLevel}&size={myobject.MapSize[0] / scale}x{myobject.MapSize[1] / scale}&scale={scale}&maptype=satellite&format=png&key=xxxxxxxx";

但是下载的静态地图似乎与动态地图具有不同的缩放比例

Here a screenshot of the Dynamic Map displayed before than switching to Static map

Here a screenshot of the Static Map displayed after

如何解决动态地图缩放和静态地图缩放之间的差异?

1 个答案:

答案 0 :(得分:0)

  

如何解决动态地图缩放和静态地图缩放之间的差异?

我认为问题是由您在网址size={myobject.MapSize[0] / scale}x{myobject.MapSize[1] / scale}中设置的大小引起的。 您可以创建一个新变量来划分MapSize,而不用使用scale来更改大小。