谷歌地图上未显示标记

时间:2017-03-01 10:51:40

标签: java android google-maps marker

我有以下代码,我想要显示标记,地方的纬度和经度存储在数组中,但我的标记没有在地图上显示我不知道为什么:|我打印这些值是为了检查值是否正确,但未显示marrker

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

4 个答案:

答案 0 :(得分:0)

onMarkerClick()中返回true。

@Override
public boolean onMarkerClick(Marker marker) {
    marker.showInfoWindow();
    return true;
}

答案 1 :(得分:0)

像这样使用......

Marker marker=  mMap.addMarker(new MarkerOptions().position(new LatLng(la[n], lo[n])).title("" + namefrag[n])).icon(BitmapDescriptorFactory.fromResource(R.drawable.driver_img));

答案 2 :(得分:0)

您是否设置了标记的图标?

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{42130a30 V.E..... R......D 0,0-456,144} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:370)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:299)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
at android.app.Dialog.dismissDialog(Dialog.java:337)
at android.app.Dialog.dismiss(Dialog.java:320)
at com.ashishkudale.linksolution.common.CommonMethods.hidepDialog(CommonMethods.java:27)
at com.ashishkudale.linksolution.SplashScreenActivity$11.onResponse(SplashScreenActivity.java:339)
at com.ashishkudale.linksolution.SplashScreenActivity$11.onResponse(SplashScreenActivity.java:321)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5127)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
at dalvik.system.NativeStart.main(Native Method)

我认为它没有在您的代码中设置。 请尝试将图标设置为标记。

答案 3 :(得分:0)

您确定变量la[n]lo[n]是双倍的吗?

如果它们是String,您可以使用Double.parseDouble(String)将它们转换为double:

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