我正在尝试今年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;
}
尝试使用加权位置会产生相同的结果,其中一些显示,一些不显示。
在这种情况下,添加了正常的LatLng并且地图已更新,直到我到达赤道然后它停止了:p。
对于weightedLatLngs的情况,它没有更新/显示任何:(
基本上就是这样......我不知道在哪里可以查找更多信息,无论是API,设备还是别的东西。
有谁知道为什么会发生这种情况和/或在哪里寻找解决方案?
提前谢谢!
顺便说一下,我在三星Galaxy S Duos上使用的是Android 4.0.4,如果这可能有用的话。
答案 0 :(得分:0)
Google Maps API for Heatmap仅允许1,000个绘图点。您可以通过过滤原始数据或转换为&#34;加权位置来减少这种情况。
答案 1 :(得分:0)
这看起来像是由this bug引起的,其中边界计算排除了最大值。
现在已修复。