Google Map API v2 Heatmap未显示所有位置

时间:2014-09-10 19:51:26

标签: android google-maps google-api heatmap

我正在尝试今年2月推出的Google API V2热图(Android),但它并没有完全发挥作用。我不确定它是否与Google Maps API v2 HeatMap Won't Reliably Display相同(我不能通过评论与他联系,因为我没有足够的代表......:c)。

使用文件中的位置

无论如何,我试图做的只是一个只有GoogleMap的应用程序和与其指南相同的位置(https://developers.google.com/maps/documentation/android/utility/heatmap),当我启动它时,我只能看到3/5个位置。

我尝试添加更多积分,但仍然没有全部显示,但我看不到模式或其他东西。代码与其指南中的代码相同。

private void addHeatMap() {
    List<LatLng> list = null;

    // Get the data: latitude/longitude positions of police stations.
    try {
        list = readItems(R.raw.police_stations);
    } catch (JSONException e) {
        Toast.makeText(this, "Problem reading list of locations.", Toast.LENGTH_LONG).show();
    }


    // Create a heat map tile provider, passing it the latlngs of the police stations.
    mProvider = new HeatmapTileProvider.Builder()
            .data(list)
            .build();
    // Add a tile overlay to the map, using the heat map tile provider.
    mOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider));

}


    private ArrayList<LatLng> readItems(int resource) throws JSONException {
        ArrayList<LatLng> list = new ArrayList<LatLng>();
        InputStream inputStream = getResources().openRawResource(resource);
        String json = new Scanner(inputStream).useDelimiter("\\A").next();
        JSONArray array = new JSONArray(json);
        for (int i = 0; i < array.length(); i++) {
            JSONObject object = array.getJSONObject(i);
            double lat = object.getDouble("lat");
            double lng = object.getDouble("lng");
            LatLng latLng = new LatLng(lat, lng);              
            list.add(latLng);

        }
        return list;
    }

尝试使用加权位置会产生相同的结果,其中一些显示,一些不显示。

使用位置“onClick”

在这种情况下,添加了正常的LatLng并且地图已更新,直到我到达赤道然后它停止了:p。

对于weightedLatLngs的情况,它没有更新/显示任何:(


基本上就是这样......我不知道在哪里可以查找更多信息,无论是API,设备还是别的东西。

有谁知道为什么会发生这种情况和/或在哪里寻找解决方案?

提前谢谢!

顺便说一下,我在三星Galaxy S Duos上使用的是Android 4.0.4,如果这可能有用的话。

2 个答案:

答案 0 :(得分:0)

Google Maps API for Heatmap仅允许1,000个绘图点。您可以通过过滤原始数据或转换为&#34;加权位置来减少这种情况。

答案 1 :(得分:0)

这看起来像是由this bug引起的,其中边界计算排除了最大值。

现在已修复。