如何设置背景图像到谷歌地图 - 安卓

时间:2016-02-02 05:52:15

标签: android google-maps

How to Set background image of a custom google map marker? 这个问题不是关于上述问题链接中提到的标记

关于土地的背景

我们将背景图片设置为谷歌地图制作者 无论如何设置背景图像以使用android突出显示一个特殊的大陆?

任何帮助或参考

3 个答案:

答案 0 :(得分:3)

实例化新的GroundOverlayOptions对象。

将图像指定为BitmapDescriptor。 使用以下可用方法之一设置图像的位置:

position(LatLng location, float width, float height)
position(LatLng location, float width)
positionFromBounds(LatLngBounds bounds)

根据需要设置任何可选属性,例如透明度。

致电GoogleMap.addGroundOverlay()将图片添加到地图中。

参考thisthis

答案 1 :(得分:2)

您需要通过选择地图上的某些点来绘制多边形。

示例代码:

public class MainActivity extends FragmentActivity implements
    OnMapClickListener, 
    OnMapLongClickListener, 
    OnMarkerClickListener {

    private GoogleMap myMap;
    Location myLocation;
    boolean markerClicked;
    PolygonOptions polygonOptions;
    Polygon polygon;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FragmentManager manager = getSupportFragmentManager();
        SupportMapFragment mapFragment = (SupportMapFragment) manager
            .findFragmentById(R.id.map);
        myMap = mapFragment.getMap();
        myMap.setMyLocationEnabled(true);
        myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        myMap.setOnMapClickListener(this);
        myMap.setOnMapLongClickListener(this);
        myMap.setOnMarkerClickListener(this);
        markerClicked = false;
    }

    @Override
    public void onMapLongClick(LatLng point) 
    {
        myMap.addMarker(new MarkerOptions()
            .position(point).title(point.toString()));

        markerClicked = false;
    }

    @Override
    public boolean onMarkerClick(Marker marker) 
    {

        if(markerClicked)
        {
            if(polygon != null)
            {
                polygon.remove();
                polygon = null;
            }

            polygonOptions.add(marker.getPosition());
            polygonOptions.strokeColor(Color.BLACK);
            polygonOptions.strokeWidth(5);
            polygonOptions.fillColor(0x884d4d4d);

            polygon = myMap.addPolygon(polygonOptions);
            marker.remove();

        }
        else    
        {
            if(polygon != null)
            {
                polygon.remove();
                polygon = null;
            }

            polygonOptions = new PolygonOptions().add(marker.getPosition());
            markerClicked = true;
            marker.remove();
        }

        return true;
    }

    @Override
    public void onMapClick(LatLng point) 
    {
        Toast.makeText(getApplicationContext(), 
            "Long Press to select locations", Toast.LENGTH_LONG).show();
    }
}

使用此片段

fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

另请阅读官方文档here

答案 2 :(得分:1)

用getInfoWindow替换getInfoContents中的代码。它们之间的区别是getInfoContents使用默认背景将View包装在ViewGroup中。 try this one