【问题标题】:Google Map Lite Mode moveCamera to lat lng bounds adds unwanted map paddingGoogle Map Lite Mode moveCamera to lat lng bounds 添加了不需要的地图填充
【发布时间】:2015-01-23 09:43:17
【问题描述】:

我希望地图相机移动到我的 LatLngBounds。所以我将地图片段添加到BaseExpandableListAdaptergetChildViewonMapReady 的布局中,我将moveCameraLatLngBounds

@Override
public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

    convertView = inflater.inflate(R.layout.event_child, parent, false);

    GoogleMapOptions options = new GoogleMapOptions();
    options.liteMode(true)
           .compassEnabled(false)
           .mapToolbarEnabled(false)
           .rotateGesturesEnabled(false)
           .tiltGesturesEnabled(false)
           .scrollGesturesEnabled(false)
           .zoomControlsEnabled(false)
           .zoomGesturesEnabled(false);

    SupportMapFragment mapFragment = SupportMapFragment.newInstance(options);
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.add(R.id.event_fragment_map, mapFragment, "event_fragment_map").commit();

    mapFragment.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            mGoogleMap = googleMap;
            moveMapAddBounds();
        }
    });

//...
}

private void moveMapAddBounds(){
    mGoogleMap.addPolygon(new PolygonOptions().add(getLatLngBounds().southwest)
                                              .add(new LatLng(getLatLngBounds().northeast.latitude, getLatLngBounds().southwest.longitude))
                                              .add(getLatLngBounds().northeast)
                                              .add(new LatLng(getLatLngBounds().southwest.latitude, getLatLngBounds().northeast.longitude))
                         );
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getLatLngBounds(), 0));
}

public LatLngBounds getLatLngBounds() {
    //random fake latlng and distance
    LatLng from = new LatLng(51.1113564, 17.0041787);
    double distance = 1717.906494140625;
    return new LatLngBounds.Builder().
            include(SphericalUtil.computeOffset(from, distance, 0)).
            include(SphericalUtil.computeOffset(from, distance, 90)).
            include(SphericalUtil.computeOffset(from, distance, 180)).
            include(SphericalUtil.computeOffset(from, distance, 270)).build();
}

我正在根据http://googlemaps.github.io/android-maps-utils/ 计算边界,它似乎工作正常,因为在moveMapAddBounds 中添加到地图的矩形被添加到有效位置,但地图相机移动到几乎好的位置,除了它添加如图所示,要映射的随机 (?) 填充(矩形上下对称):

我观察到,对于特定的 LatLngBounds,这些填充始终相同,但它们在不同的 LatLngBounds 之间有所不同。

【问题讨论】:

标签: google-maps google-maps-android-api-2 android-maps-v2


【解决方案1】:
猜你喜欢
  • 2015-01-31
  • 2014-03-05
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多