gpt4 book ai didi

android - 通过edittext在android map 中搜索位置

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:23 25 4
gpt4 key购买 nike

我正在用 android 开发 map 服务,我想在我的 map 中搜索一个特定的地方,比如“柏林”。为此,我在我的 map 中放置了一个 EDITTEXT,每当我输入名称时,我都希望在我的 map 中用标记指向那个地方。

这是我的 HelloItemizedOverlay 类:

 public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;

public HelloItemizedOverlay(Drawable defaultMarker, Context context)
{
super(boundCenterBottom(defaultMarker));
mContext = context;
}

public void addOverlay(OverlayItem overlay)
{
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i)
{
return mOverlays.get(i);
}
@Override
public int size()
{
return mOverlays.size();
}
@Override
protected boolean onTap(int index)
{
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}

这是我的主课:

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapView);

mapSearchBox = (EditText)findViewById(R.id.search);
mapSearchBox.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View view, MotionEvent motionEvent) {

List<Address> addresses = geocoder.getFromLocationName(mapSearchBox.getText().toString(),5);

if(addresses.size() > 0)
{
GeoPoint p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));

controller.animateTo(p);
controller.setZoom(12);

List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.icon);
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
OverlayItem overlayitem = new OverlayItem(p,"","");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
mapView.invalidate();
mapSearchBox.setText("");
}
else
{
AlertDialog.Builder adb = new AlertDialog.Builder(GoogleMapActivity.this);
adb.setTitle("Google Map");
adb.setMessage("Please Provide the Proper Place");
adb.setPositiveButton("Close",null);
adb.show();
}
return false;
}});


LocationManager locationManager = (LocationManager) getSystemService(this.LOCATION_SERVICE);
LocationListener listener = new MylocationListener();
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,listener);
}

这里我在行中收到一条错误消息:

    Drawable drawable = this.getResources().getDrawable(R.drawable.icon); 

说新 View 的 getresource 方法未定义。 OnTouchListener;下一行还显示了另一个错误:

    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);

构造函数 HelloItemizedOverlay 未定义。

有人知道建议吗??如果是这样,请帮个忙。提前致谢!!

最佳答案

中删除 这个

this.getResources().getDrawable(R.drawable.icon);

看看它对你有没有帮助..

关于android - 通过edittext在android map 中搜索位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com