【问题标题】:Markers not shown at google map谷歌地图上未显示的标记
【发布时间】:2017-03-01 10:51:39
【问题描述】:

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

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

【问题讨论】:

  • 调用marker.showInfoWindow();方法然后试试。
  • @aksacha 不工作

标签: java android google-maps marker


【解决方案1】:

像这样使用...

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

【讨论】:

    【解决方案2】:

    在您的 onMarkerClick() 中返回 true。

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

    【讨论】:

      【解决方案3】:

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

      map.addMarker(new MarkerOptions()
                      .position(new LatLng(myLat, myLong))
                      .title("Bla Bla").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
      

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

      【讨论】:

      • 你能分享一下完整的课程吗?
      【解决方案4】:

      你确定你的变量 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]));
      

      【讨论】:

      • 是的,它们的数据类型很长
      猜你喜欢
      • 2021-07-07
      • 2015-01-25
      • 2014-05-17
      • 2017-11-04
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多