Android中的自定义标记属性

时间:2016-07-22 10:29:18

标签: android google-maps

使用google map api,对于我创建的每个标记,我想要一个自定义属性,该属性将声明有关该位置的更多信息。我可以添加自定义属性吗?或者我必须单独上课?

也许是这样的?

Marker m = mMap.addMarker(new MarkerOptions()
            .position(new LatLng(lati, longi))
            .title(title)
             .snippet(snippet)
            .customProperty1(true));

如果我要创建一个新课程,我们将非常感谢代码片段!

1 个答案:

答案 0 :(得分:0)

您可以创建自定义标记并在其中添加详细信息。

您只能在标题或摘要中传递信息,并在自定义标记中使用

mapView.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {

            // Use default InfoWindow frame
            @Override
            public View getInfoWindow(Marker arg0) {
                return null;
            }

            // Defines the contents of the InfoWindow
            @Override
            public View getInfoContents(Marker arg0) {

                // Getting view from the layout file info_window_layout
                View v = getActivity().getLayoutInflater().inflate(R.layout.layout_mapinfo, null); // my custom view

                // Getting the position from the marker
                //   LatLng latLng = arg0.getPosition();

                // Getting reference to the TextView to set latitude
                TextView tvLat = (TextView) v.findViewById(R.id.tv_lat);

                // Getting reference to the TextView to set longitude
                TextView tvLng = (TextView) v.findViewById(R.id.tv_lng);

                // Setting the latitude
                tvLat.setText(arg0.getTitle());

                // Setting the longitude
                AppSession.setIconTypeface(tvLng);
                tvLng.setText(Html.fromHtml(arg0.getSnippet()));

                // Returning the view containing InfoWindow contents
                return v;

            }
        });

layout_mapinfo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_lat"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold"
        android:gravity="center_horizontal"

        />

    <TextView
        android:id="@+id/tv_lng"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
         android:textStyle="bold"
        android:layout_gravity="center"
        android:gravity="center"

        />

</LinearLayout>

如何在标题和摘要中传递值以及如何在自定义视图中解释它取决于您的要求。

希望这会有所帮助。

注意:此代码段仅供参考。