4

我被困住了。我希望有人能给我正确的输入!

我正在使用 GMSMapview 显示兴趣点 (GMSMarkers)。

目前,我只是使用此代码将地图居中在当前 POI 坐标上(DEFAULT_ZOOM15.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,但同时显示用户位置。

关于如何实现这一目标的任何想法?

干杯。

4

1 回答 1

1

要在中心显示 POI,并在地图边缘显示用户位置,您应该派生第三个位置点,该位置点反映用户 llc 与 POI 另一侧的 POI 的相对距离。

如果允许我们忽略地球的曲率,这就是简单的向量加法

IE

loc3 = poiLoc + (poiLoc - userLoc) 
     = 2*poiLoc - userLoc;

然后您的地图矩形由 userLoc 和 loc3 定义。

于 2014-07-21T18:35:22.220 回答