我被困在这上面了。 我希望有人能给我正确的意见!
我正在使用GMSMapview显示兴趣点(GMSMarkers)。
目前,我只是使用此代码将地图置于当前POI坐标的中心( DEFAULT_ZOOM 15.f ):
GMSCameraPosition *newPosition =
[GMSCameraPosition cameraWithLatitude:activePOI.coordinate.latitude
longitude:activePOI.coordinate.longitude
zoom:DEFAULT_ZOOM
bearing:0. //True north
viewingAngle:0.]; //Facing down
[self.mapView animateToCameraPosition:newPosition];
我尝试使用 GMSCoordinateBounds 显示POI和用户位置,使用以下代码:
GMSCoordinateBounds *cb =
[[GMSCoordinateBounds alloc] initWithCoordinate:activePOI.coordinate
coordinate:user.coordinate];
[GMSCameraUpdate fitBounds:cb];
效果很好,但两个位置都显示在地图的角落。
我需要在中心显示POI,但同时显示用户位置。
关于如何实现这一目标的任何想法?
干杯。
答案 0 :(得分:1)
要显示中心的POI以及地图边缘的用户位置,您应该派生第三个位置点,以反映用户ID与POI另一侧POI的相对距离。
如果我们被允许忽略地球的曲率,这就是简单的向量加法
即。
loc3 = poiLoc + (poiLoc - userLoc)
= 2*poiLoc - userLoc;
然后你的map rect由userLoc和loc3定义。