我怀疑如何在Google地图上显示多个标记。
我通过J SON网络服务得到一些车辆的纬度和经度值,我使用单独的java文件进行名为Util的声明,我将纬度存储在名为latitudeall(Util.latitudeall)和经度的数组列表中以相同的方式在名为(Util.longitudeall)的数组列表中,以及名为(Util.vehiclenumall)的数组列表中的车辆编号。
在另一个java文件中我试图在片段中设置标记
这是我的代码
FragmentManager fmanager = getSupportFragmentManager();
//googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
SupportMapFragment mapFragment = (SupportMapFragment) fmanager.findFragmentById(R.id.map);
googleMap = mapFragment.getMap();
for (int i = 0; i < Util.vehiclenumall.size(); i++) {
googleMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)).position( new LatLng(Double.parseDouble(Util.latitudeall.get(i)), Double.parseDouble(Util.longitudeall.get(i)))));
}}
上面的代码不起作用,如何通过从array-list中获取纬度和经度值来设置标记......
以下是我的log-cat中的Util.latitudeall(纬度数字)数组列表的响应
enter code here
latitude number----[8.150896666666666666666666667,
8.182241666666666666666666667,
13.262706666666666666666666667,
8.50547, 8.849243333333333333333333333,
8.157979999999999666666666667]
以下是我的日志cat中的Util.longitudeall(经度数字)数组列表的响应
longitude number----[
77.478666666666666666666666667,
77.412475, 80.03815333333333333333333333,
76.970696666666666666666666667,
76.637001666666666666666666667,
77.462568333333333333333333333]
这是我的log-cat中的Util.vehiclenumall(车辆编号)数组列表的响应
vehicle number----[
TN-74-AD-8178,
TN-74-AE-1900,
TN-20-CC-2543,
KL-01-7890,
TN-74-AD-7463,
TN-20-P-3220]
我的任务是在oncreate()内调用一个类。当调用该类时,必须在google地图中自动设置标记。
我的问题是: 如何调用这些阵列列表值并在谷歌地图内设置标记(在碎片代码内)
请帮助我......
提前致谢....
答案 0 :(得分:0)
请注意我不是Android开发人员,我的地图体验在于Web应用程序,但为什么在这里:
for(int i=0;i<Util.vehiclenumall.size();i++)
{
googleMap.addMarker(new MarkerOptions().title(Util.vehiclenumall.get(i)).
position(new LatLng(Util.latitudeall.get(i).length(),Util.longitudeall.get(i).length())).title("hello")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));}googleMap.setMyLocationEnabled(true);googleMap.setMapType(mapType);}
您是否在Util.latitudeall.get(i)之后调用.length()。我假设get方法返回数组索引处的值。因此,长度将提供无效的长和纬度。我建议将其更改为:
for(int i=0;i<Util.vehiclenumall.size();i++)
{
googleMap.addMarker(new MarkerOptions().title(Util.vehiclenumall.get(i)).
position(new LatLng(Util.latitudeall.get(i),Util.longitudeall.get(i))).title("hello")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));}googleMap.setMyLocationEnabled(true);googleMap.setMapType(mapType);}
长度调用将给出返回值的长度而不是值本身,例如,如果您的纬度为8.150896666666666666666666667,则Latitude.length()将为29.这将作为位置传递给标记,但是实际上并没有在地理上有效。