gpt4 book ai didi

ios - 是否可以根据指定的坐标和屏幕尺寸计算区域

转载 作者:行者123 更新时间:2023-12-01 19:43:50 25 4
gpt4 key购买 nike

我有一个坐标,我想为它设置 map 区域。
问题是当我通过坐标为它创建一个区域时,坐标位于区域中心的函数。
我不希望它在中心我需要它一点。
例如,如果 map 高度为 500,我想设置区域,以便坐标位于顶部 250 的中心。

function getRegionForCoordinates(points) {
// points should be an array of { latitude: X, longitude: Y }
let minX, maxX, minY, maxY;

// init first point
((point) => {
minX = point.latitude;
maxX = point.latitude;
minY = point.longitude;
maxY = point.longitude;
})(points[0]);

// calculate rect
points.map((point) => {
minX = Math.min(minX, point.latitude);
maxX = Math.max(maxX, point.latitude);
minY = Math.min(minY, point.longitude);
maxY = Math.max(maxY, point.longitude);
});

const midX = (minX + maxX) / 2;
const midY = (minY + maxY) / 2;
let deltaX = (maxX - minX);
let deltaY = (maxY - minY);

return {
latitude: midX,
longitude: midY,
latitudeDelta: 0.002,
longitudeDelta: 0.002
};
}

这可以计算吗?
enter image description here

最佳答案

我有这个问题的解决方案,但它是用 MapKit(Apple Maps)完成的,所以不确定这是否真的对你有帮助,但它可能会给你一些想法......

MapKit 有这个 MKCoordinateRegion类型:

var region: MKCoordinateRegion {
let regionSize = 10000.0
let region = MKCoordinateRegionMakeWithDistance(coordinate, regionSize, regionSize)
return region
}

并且可以使用以下方法将 map 缩放到区域:
map.setRegion(region, animated: animated)

我在底部也有一些 View ,想在屏幕上部居中注释,所以在设置 map 区域之前我必须做一些计算:
let offset = CGPoint(x: 0, y: bottomViewHeight / 2)
let screenHeight = UIDevice.current.orientation == .portrait ? view.bounds.height : view.bounds.width
let offsetScreenPercentage = Double(offset.y / screenHeight)
region.center.latitude -= region.span.latitudeDelta * offsetScreenPercentage * 2

希望对你有帮助!

关于ios - 是否可以根据指定的坐标和屏幕尺寸计算区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51389301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com