gpt4 book ai didi

android - 找不到类 'com.google.maps.android.heatmaps.HeatmapTileProvider$Builder'

转载 作者:行者123 更新时间:2023-11-29 21:12:49 25 4
gpt4 key购买 nike

我正在按照有关在 android 中构建 map 的 google 说明进行操作,到目前为止我已经成功了。

但是,当我尝试添加带有一些经纬度的热图时,应用程序失败并且我收到以下错误消息

Could not find class 'com.google.maps.android.heatmaps.HeatmapTileProvider$Builder', referenced from method com.example.heatmap.MainActivity.addHeatMap

我到处搜索,找不到解决办法。根据在线说明,已正确添加 Utils 库以及 google play 服务。谁能告诉我我在这里做错了什么。

对于 Clarity, map 工作正常,但当我调用热图方法时应用失败。

package com.example.heatmap;


import java.util.ArrayList;
import java.util.List;

import org.json.JSONObject;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.UiSettings;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.TileOverlay;
import com.google.android.gms.maps.model.TileOverlayOptions;
import com.google.maps.android.heatmaps.HeatmapTileProvider;

/**
* This shows how to create a simple activity with a map and a marker on the map.
* <p>
* Notice how we deal with the possibility that the Google Play services APK is not
* installed/enabled/updated on a user's device.
*/
public class MainActivity extends FragmentActivity {
/**
* Note that this may be null if the Google Play services APK is not available.
*/
private GoogleMap mMap;
static final LatLng Ireland = new LatLng(53.5056, -7.8289);
static final LatLng IrelandCenter = new LatLng(53.4026137,-7.969749234);
private UiSettings Settings;
private JSONObject testjson = new JSONObject();
private static String file = "sample_locations.json";

private HeatmapTileProvider mProvider;
private TileOverlay mOverlay;




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

SupportMapFragment mapFragment =
(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

if (savedInstanceState == null) {
// First incarnation of this activity.
mapFragment.setRetainInstance(true);
} else {
// Reincarnated activity. The obtained map is the same map instance in the previous
// activity life cycle. There is no need to reinitialize it.
mMap = mapFragment.getMap();
}

setUpMapIfNeeded();


}

@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
setUpMap();
locateMapIreland();
createMarker();
addHeatMap();
}
}
}

/**
* This is where we can add markers or lines, add listeners or move the camera. In this case, we
* just add a marker near Africa.
* <p>
* This should only be called once and when we are sure that {@link #mMap} is not null.
*/






private void setUpMap() {
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
Settings = mMap.getUiSettings();

Settings.setRotateGesturesEnabled(false);
Settings.setZoomGesturesEnabled(true);
Settings.setCompassEnabled(true);
}

private void locateMapIreland(){
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(IrelandCenter,7));
}

private void createMarker(){
Marker testMarker = mMap.addMarker(new MarkerOptions()
.position(Ireland)
.draggable(true)
.title("Title text")
.snippet("Snippet text")
.flat(false));

testMarker.showInfoWindow();

}

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

LatLng one = new LatLng(53.998,-8.624);
list.add(one);
LatLng two = new LatLng(52.443,-8.988);
list.add(two);
LatLng three = new LatLng(52.286,-8.319);
list.add(three);
LatLng four = new LatLng(54.162,-8.253);
list.add(four);
LatLng five = new LatLng(53.364,-6.453);
list.add(five);

List <LatLng> listTwo = null;

// Get the data: latitude/longitude positions of police stations.


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

}

最佳答案

事实证明,您需要确保在属性选项卡下将 google play 服务和 google util 库作为库添加到您的项目中。教程没有展示这一点,只展示了如何将播放服务作为 lib 添加到 utils

关于android - 找不到类 'com.google.maps.android.heatmaps.HeatmapTileProvider$Builder',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com