我有以下代码,我想要显示标记,地方的纬度和经度存储在数组中,但我的标记没有在地图上显示我不知道为什么:|我打印这些值是为了检查值是否正确,但未显示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]);
答案 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]));