Google Maps Android热图实用程序教程 - 无法解析方法

时间:2015-07-12 18:13:36

标签: android google-maps

我正在学习如何使用Google Maps API,并尝试在this教程之后实现热图,但是在他们的代码中有一个readItems()方法,我斜面'弄清楚它的来源。

list = readItems(R.raw.police_stations);

我现在已经挣扎了一天半。 这个方法来自哪里?

谢谢,

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));
}

1 个答案:

答案 0 :(得分:1)

您使用的教程基于Google Maps演示中的源代码。文件HeatmapsDemoActivity.java包含readItems()的定义。您可以通过点击these instructions中的“下载zip文件”下载地图工具和演示,或者查看GitHub上source file的第187行。

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");
        list.add(new LatLng(lat, lng));
    }
    return list;
}