0
Я отобразил карту в своем приложении, используя следующий код. Я получил информацию из базы данных и отобразил карту. Теперь я хочу, чтобы добавить маркер в извлеченном место ...Добавление маркера в полученное местоположение
googleMao.java
public class googleMap extends MapActivity{
private MapView mapView;
private MapController mc;
GeoPoint p;
long s;
Cursor cur;
SQLiteDatabase db;
createSqliteHelper csh;
String query;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
// String query = getIntent().getStringExtra("value");
// here is calling the map string query
s = getIntent().getLongExtra("value",2);
map();
mapView = (MapView) findViewById(R.id.mapview1);
LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);
View zoomView = mapView.getZoomControls();
zoomLayout.addView(zoomView,
new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
//mapView.displayZoomControls(true);
mapView.setBuiltInZoomControls(true);
mc = mapView.getController();
String coordinates[] = {"1.352566007", "103.78921587"};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocationName(query, 5);
String add = "";
if (addresses.size() > 0) {
p = new GeoPoint(
(int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
mc.animateTo(p);
mapView.invalidate();
mc.setZoom(6);
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected boolean isRouteDisplayed() {
// Required by MapActivity
return false;
}
public void map()
{
String[] str={"type"};
int[] i={R.id.type};
csh=new createSqliteHelper(this);
db=csh.getReadableDatabase();
cur=db.rawQuery("select type from restaurants where _id="+s,null);
if(cur.moveToFirst())
{
query = cur.getString(cur.getColumnIndex("type"));
}
}
}
Я видел вас пример, но проект не выполняется ... У меня есть следующие ошибки в logcat. 07-31 10: 23: 36.264: ОШИБКА/AndroidRuntime (839): обработчик нечистоты: выход из основного потока из-за неперехваченного исключения 07-31 10: 23: 36.293: ERROR/AndroidRuntime (839): java.lang.RuntimeException: Невозможно создать экземпляр активности ComponentInfo {com.MapMarker/com.MapMarker.MapMarker}: java.lang.ClassNotFoundException: com.MapMarker.MapMarker в загрузчике [email protected] –
Эта ошибка кажется простой: вам не хватает com.MapMarker. MapMarker из вашего приложения. Выясните, почему это не входит в ваш файл APK, или если нет класса по этому имени, исправьте свой манифест. – CommonsWare
Исправлена ошибка. Я получил данные из базы данных по запросу. Можете ли вы помочь мне добавить маркер в программу, которую я перечислил выше ??? –