google 地图上未显示标记
Markers not shown at google map
我有以下代码,我想在其中显示标记,位置的纬度和经度存储在数组中,但我的标记没有显示在地图上,我不知道为什么 :|我打印了这些值以检查值是否正确但未显示标记
if (f[l].equals(restTypefrag[n])) {
Log.i("okkk", "lattitude " + la[n] + "longtitude " + lo[n] +"name " + namefrag[n]);
**Marker marker= mMap.addMarker(new MarkerOptions().position(new
LatLng(la[n], lo[n])).title("" + namefrag[n]));**
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
// Log.i("okkk", " On marker Click ");
AlertDialog.Builder alertadd = new AlertDialog.Builder(getActivity());
LayoutInflater factory = LayoutInflater.from(getActivity());
final View view = factory.inflate(R.layout.alert, null);
TextView alertName=(TextView) view.findViewById(R.id.tv_name);
TextView alertDeal=(TextView) view.findViewById(R.id.tv_deal);
String temp=marker.getTitle();
for (int i=0;i<namefrag.length;i++)
{
// Log.i("okkk", " Name: " + temp);
if (temp.equals(namefrag[i]))
{
tempName=namefrag[i];
tempDeal=dealfrag[i];
Log.i("okkk", " Name: " + namefrag[i]);
}
}
RatingBar alertRating=(RatingBar) view.findViewById(R.id.rb_alert);
alertRating.setNumStars(5);
alertRating.setRating(3.5f);
alertName.setText(tempName);
alertDeal.setText(tempDeal);
alertadd.setView(view);
alertadd.show();
return false;
}
});
Notifications(namefrag[l], distance[Index]);
在你的 onMarkerClick()
return 中是正确的。
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow();
return true;
}
像这样使用...
Marker marker= mMap.addMarker(new MarkerOptions().position(new LatLng(la[n], lo[n])).title("" + namefrag[n])).icon(BitmapDescriptorFactory.fromResource(R.drawable.driver_img));
你设置好标记的图标了吗?
map.addMarker(new MarkerOptions()
.position(new LatLng(myLat, myLong))
.title("Bla Bla").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
我认为它没有在您的代码中设置。
请尝试将图标设置为标记。
您确定变量 la[n]
和 lo[n]
是双精度的吗?
如果它们是字符串,您可以使用 Double.parseDouble(String)
将它们转换为双精度:
double lat = Double.parseDouble(la[n]);
double lon = Double.parseDouble(lo[n]);
Marker marker = mMap.addMarker(new MarkerOptions().position(new
LatLng(lat, lon)).title("" + namefrag[n]));
我有以下代码,我想在其中显示标记,位置的纬度和经度存储在数组中,但我的标记没有显示在地图上,我不知道为什么 :|我打印了这些值以检查值是否正确但未显示标记
if (f[l].equals(restTypefrag[n])) {
Log.i("okkk", "lattitude " + la[n] + "longtitude " + lo[n] +"name " + namefrag[n]);
**Marker marker= mMap.addMarker(new MarkerOptions().position(new
LatLng(la[n], lo[n])).title("" + namefrag[n]));**
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
// Log.i("okkk", " On marker Click ");
AlertDialog.Builder alertadd = new AlertDialog.Builder(getActivity());
LayoutInflater factory = LayoutInflater.from(getActivity());
final View view = factory.inflate(R.layout.alert, null);
TextView alertName=(TextView) view.findViewById(R.id.tv_name);
TextView alertDeal=(TextView) view.findViewById(R.id.tv_deal);
String temp=marker.getTitle();
for (int i=0;i<namefrag.length;i++)
{
// Log.i("okkk", " Name: " + temp);
if (temp.equals(namefrag[i]))
{
tempName=namefrag[i];
tempDeal=dealfrag[i];
Log.i("okkk", " Name: " + namefrag[i]);
}
}
RatingBar alertRating=(RatingBar) view.findViewById(R.id.rb_alert);
alertRating.setNumStars(5);
alertRating.setRating(3.5f);
alertName.setText(tempName);
alertDeal.setText(tempDeal);
alertadd.setView(view);
alertadd.show();
return false;
}
});
Notifications(namefrag[l], distance[Index]);
在你的 onMarkerClick()
return 中是正确的。
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow();
return true;
}
像这样使用...
Marker marker= mMap.addMarker(new MarkerOptions().position(new LatLng(la[n], lo[n])).title("" + namefrag[n])).icon(BitmapDescriptorFactory.fromResource(R.drawable.driver_img));
你设置好标记的图标了吗?
map.addMarker(new MarkerOptions()
.position(new LatLng(myLat, myLong))
.title("Bla Bla").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
我认为它没有在您的代码中设置。 请尝试将图标设置为标记。
您确定变量 la[n]
和 lo[n]
是双精度的吗?
如果它们是字符串,您可以使用 Double.parseDouble(String)
将它们转换为双精度:
double lat = Double.parseDouble(la[n]);
double lon = Double.parseDouble(lo[n]);
Marker marker = mMap.addMarker(new MarkerOptions().position(new
LatLng(lat, lon)).title("" + namefrag[n]));