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]));