android谷歌地图视图的默认标记?

android谷歌地图视图的默认标记?,android,android-mapview,Android,Android Mapview,只是想知道是否有一个标准/默认覆盖/标记,我可以在MAPVIEW中使用 我一直在网上搜索,所有的教程都在讨论如何扩展覆盖,并将自定义图像放在上面 有没有更简单的方法?我只想要个马克笔,没什么特别的 问候 James如果您使用Eclipse作为IDE,您可以添加一个.png,例如,到/drawable hdpi、/drawable ldpi、/drawable mdpi目录中。然后,您可以放置并获取覆盖图的参考列表,如下所示: package com.practice.mapper; impor

只是想知道是否有一个标准/默认覆盖/标记,我可以在MAPVIEW中使用

我一直在网上搜索,所有的教程都在讨论如何扩展覆盖,并将自定义图像放在上面

有没有更简单的方法?我只想要个马克笔,没什么特别的

问候


James

如果您使用Eclipse作为IDE,您可以添加一个.png,例如,到/drawable hdpi、/drawable ldpi、/drawable mdpi目录中。然后,您可以放置并获取覆盖图的参考列表,如下所示:

package com.practice.mapper;

import java.util.ArrayList;

import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class Itemization extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

    public Itemization(Drawable defaultMarker) {

        super(boundCenterBottom(defaultMarker));
        // super(defaultMarker);

    }

    @Override
    protected OverlayItem createItem(int i) {
        return mOverlays.get(i);
    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }

    @Override
    public int size() {
        return mOverlays.size();
    }

}



package com.practice.mapper;

import java.util.List;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ZoomControls;

public class Mapper extends MapActivity implements LocationListener {

    Location presentLocation;
    ZoomControls z;
    LinearLayout linearLayout;
    MapView mapView;
    List<Overlay> mapOverlays;
    Drawable drawable;
    Itemization itemizedOverlay;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        mapOverlays = mapView.getOverlays();
        drawable = this.getResources().getDrawable(R.drawable.androidmarker);
        itemizedOverlay = new Itemization(drawable);

        GeoPoint point = new GeoPoint(19240000, -99120000);
        OverlayItem overlayitem = new OverlayItem(point, "", "");
        itemizedOverlay.addOverlay(overlayitem);

        GeoPoint point2 = new GeoPoint(35410000, 139460000);
        OverlayItem overlayitem2 = new OverlayItem(point2, "", "");
        itemizedOverlay.addOverlay(overlayitem2);

        mapOverlays.add(itemizedOverlay);
    }

    public void btnUpdateClicked(View v) {

        LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

        LocationProvider p = lm.getProvider(LocationManager.GPS_PROVIDER);

        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 1, this);

        List<String> enabledProv = lm.getProviders(true);

        Location l1 = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        Location l2 = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        Location l3 = lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);

        Button b = new Button(this.getApplicationContext());
        b.setOnClickListener(new OnClickListener(){

            public void onClick(View v) {

            }});

        lm.toString();
    }

    @Override
    protected boolean isRouteDisplayed() {

        return false;
    }

    public void onLocationChanged(Location location) {

        presentLocation = location;
        Log.d("TEST", "New location received");
    }

    public void onProviderDisabled(String provider) {

    }

    public void onProviderEnabled(String provider) {

    }

    public void onStatusChanged(String provider, int status, Bundle extras) {

    }
}
package com.practice.mapper;
导入java.util.ArrayList;
导入android.graphics.drawable.drawable;
导入com.google.android.maps.ItemizedOverlay;
导入com.google.android.maps.OverlayItem;
公共类项目化扩展了ItemizeOverlay{
private ArrayList mOverlays=new ArrayList();
公共项目(可绘制的默认标记){
super(boundCenterBottom(defaultMarker));
//超级(默认标记);
}
@凌驾
受保护的OverlayItem createItem(int i){
返回mOverlays.get(i);
}
公共void addOverlay(OverlayItem overlay){
添加(覆盖);
填充();
}
@凌驾
公共整数大小(){
返回mOverlays.size();
}
}
包com.practice.mapper;
导入java.util.List;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.OverlayItem;
导入android.content.Context;
导入android.graphics.drawable.drawable;
导入android.location.location;
导入android.location.LocationListener;
导入android.location.LocationManager;
导入android.location.LocationProvider;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.LinearLayout;
导入android.widget.ZoomControls;
公共类映射器扩展映射活动实现LocationListener{
地点在场地点;
动物控制;
线性布局线性布局;
地图视图;
列出地图覆盖图;
可拉伸;
逐项逐项覆盖;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView=(mapView)findViewById(R.id.mapView);
mapView.SetBuilTinZoomControl(真);
mapOverlays=mapView.getOverlays();
drawable=this.getResources().getDrawable(R.drawable.androidmarker);
itemizedOverlay=新项目(可提取);
地质点=新的地质点(19240000,-99120000);
OverlayItem OverlayItem=新的OverlayItem(点“,”);
itemizedOverlay.addOverlay(overlayitem);
地质点2=新的地质点(35410000、139460000);
OverlayItem overlayitem2=新的OverlayItem(点2,“,”);
itemizedOverlay.addOverlay(overlayitem2);
添加(itemizedOverlay);
}
已单击公共无效BtnUpdate(视图v){
LocationManager lm=(LocationManager)getSystemService(Context.LOCATION\u服务);
LocationProvider p=lm.getProvider(LocationManager.GPS\U PROVIDER);
lm.RequestLocationUpdate(LocationManager.GPS_提供程序,20000,1,本);
List enabledProv=lm.getProviders(true);
位置l1=lm.getLastKnownLocation(LocationManager.GPS\U提供程序);
位置l2=lm.getLastKnownLocation(LocationManager.NETWORK_提供程序);
位置l3=lm.getLastKnownLocation(LocationManager.PASSIVE_提供程序);
按钮b=新按钮(this.getApplicationContext());
b、 setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
}});
lm.toString();
}
@凌驾
受保护的布尔值isRouteDisplayed(){
返回false;
}
已更改位置上的公共无效(位置){
当前位置=位置;
日志d(“测试”,“收到新位置”);
}
公共无效onProviderDisabled(字符串提供程序){
}
公共无效onProviderEnabled(字符串提供程序){
}
public void onStatusChanged(字符串提供程序、int状态、Bundle extra){
}
}

我从一个我再也找不到链接的教程中获得了大部分代码。覆盖层操作起来非常简单。希望这有帮助。

如果您使用的是谷歌地图Android API v2,您可以使用以下方法

mapView.getMap().addMarker(new MarkerOptions()
                               .position(new LatLng(10, 10))
                               .title("Hello world"));

您好,谢谢您的建议,但我正在寻找的是,是否有一个默认标记可以使用,类似于谷歌地图JSAPI中的GMarker。啊,我明白了。我的建议是省去麻烦,直接从谷歌图片复制标记。最终结果是一样的。此外,“默认情况下,它们使用G_default_图标,但您可以指定自定义图标。GMarker构造函数将GLatLng和可选的GmarkeProptions对象作为参数。”来自