2015-07-12 1 views
1

Я изучаю, как использовать API Карт Google, и я пытаюсь реализовать тепловую карту, следуя руководству this, но на их коде есть метод readItems() что я не могу понять, откуда это происходит.Учебник по утилите Google для мобильных устройств Google Maps - Не удается разрешить метод

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

В учебнике вы используете свободно на основе исходного кода в демо Google Maps. Файл HeatmapsDemoActivity.java содержит это определение readItems(). Вы можете загрузить утилиты и демонстрацию карты, нажав на «загрузку zip-файла» в these instructions или посмотрите строку 187 в source file на GitHub.

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; 
} 
Смежные вопросы