我必须使用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
如何解决动态地图缩放和静态地图缩放之间的差异?
答案 0 :(得分:0)
如何解决动态地图缩放和静态地图缩放之间的差异?
我认为问题是由您在网址size={myobject.MapSize[0] / scale}x{myobject.MapSize[1] / scale}
中设置的大小引起的。
您可以创建一个新变量来划分MapSize
,而不用使用scale
来更改大小。