在中心缺少“x”的瓷砖的MapView渲染

时间:2011-09-20 00:49:10

标签: android android-mapview

这非常非常奇怪。我从来没有见过这样的东西。在我拍摄此屏幕截图时,我没有加载任何叠加层。首先,我认为这是我的互联网连接无法下载磁贴信息;但我们有很多用户报告从市场上下载的同一问题。这开始发生在一周前。不知道为什么。有人有线索吗?谢谢!


mapview with tiles missing

9 个答案:

答案 0 :(得分:11)

确定。从一个干净的项目开始后,我发现这两行代码是罪魁祸首。

mapView.setSatellite(true);

mapView.setStreetView(true);

他们出现在彼此的背后,我回头看着开发的最初阶段,他们在那里,它工作得很好。显然,这是MapView中的一个BUG,因为我猜它试图同时显示SateliteView和StreetView。人们会认为后者会超越前者;但我猜不是。

所以,我的问题是,为什么这一切突然在上周左右浮出水面。我的猜测是地图应用程序最后一次在9月8日在市场上更新,也许在从市场更新后大约一天左右,这个问题开始重新出现。

作为测试,有人可以将这两行添加到他们的代码中并确认您获得相同的行为吗?

答案 1 :(得分:3)

我只有setStreetView(true)并得到那些恼人的灰盒子。我玩两条线都没有运气。通过从我的代码中删除setStreeView和setSatellite来解决它,默认情况下转到streetview。

答案 2 :(得分:2)

我的应用程序使用谷歌地图库时遇到了同样的问题...因为我在我的设置选项中用户可以将地图视图更改为Satelite或Street,我根本不使用setStreetView(true)... .just mapView.setSatelite(true或false)...

preferences = PreferenceManager.getDefaultSharedPreferences(this);
        pogled = preferences.getString("list", "Street");

        if(pogled.equalsIgnoreCase("Street")){
            mapView.setSatellite(false);
            //mapView.setStreetView(true);
        }else if (pogled.equalsIgnoreCase("Satelite")) {
            mapView.setSatellite(true);
        }

正如你所看到我有mapView.setStreetView(true)但这让我很头疼...:D我希望这会对你有所帮助......

答案 3 :(得分:2)

我从我的代码中删除了setStreetview(true),现在它的工作正常我看到这个问题在过去的两周内发生了,我们终于解决了这个问题很棒

答案 4 :(得分:1)

街景视图始终被视为默认选项。 当我们同时使用setStreetView(true)和setSatellite(true)时会出现问题。问题将像这样解决

    if(mapView.isSatellite()){
        mapView.setSatellite(false);
            }else{
            mapView.setStreetView(false);
            mapView.setSatellite(true);
            }

我希望这会有所帮助

答案 5 :(得分:1)

private void setUpMapTypeScreen() {
    if (mapType.equalsIgnoreCase("Satellite")) {
        mapView.setSatellite(true);
        // mapView.setStreetView(false);
    } else if (mapType.equalsIgnoreCase("StreetView")) {
        mapView.setSatellite(false);
        // mapView.setStreetView(true);
    }
    mapView.invalidate();
}

mapType是用户定义的字符串变量。切换到视图类型时,前面的视图类型不是false。我们所犯的错误,只设置了您需要的视图类型。

答案 6 :(得分:0)

我有同样的问题,我拿出了我的mapController,并修复了它。我唯一不同的另一件事就是将mapview放在带有textview的linearlayout中(以前它只是mapview),然后我使用了mapcontroller,将其评论出来。

由于这些是我改变的两件事,我很确定你的问题也存在。

答案 7 :(得分:0)

我遇到了同样的问题,我得到的一般建议是不要同时使用setStreeView(true)和setSatellite(true)。有些人甚至建议不要完全使用setStreetView(true)。但我的代码以前工作正常。我不得不重新安装我的机器,因此重新安装了android SDK和其他组件,之后开始发生这种情况。所以我的猜测是这是一个特定版本的问题但是我发现这个问题出现2.2的特定版本 - 在我的案例中Android SDK平台2.2,修订版3.我试过在2.3上运行相同的代码并且它正常工作即没有灰盒子。

答案 8 :(得分:0)

除了删除mapController.setStreetView(true)之外,还有另一件事应该添加到布局XML中。

xmlns:android="http://schemas.android.com/apk/res/android"

<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapa" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:apiKey="YOUR API KEY"
    android:clickable="true"></com.google.android.maps.MapView>

请注意com.google.android.maps.MapView之后的xml命名空间。添加命名空间后,交叉切片消失了。不知道它是否是一个错误或命名空间是必要的,以便api正确渲染地图。无论哪种方式,它都有效。