我遇到了问题,我在Android版Google地图上添加了一些来自Drawable的图标,而且我想给每个我想要点击的链接提供一个链接);
有人帮助我吗?
有我的代码:
public class Main extends MapActivity{
MapView mapView;
MapController mc;`enter code here`
GeoPoint p;
String[][] cordinates=new String[4][2];
int[] iconsID=new int[4];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getCordinate();
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
// mapView.setStreetView(true);
mapView.setSatellite(true);
mc = mapView.getController();
String coordinates[] = {"40.783244", "30.400898"};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
mc.animateTo(p);
mc.setZoom(17);
//---Add a location marker---
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
}
private void getCordinate() {
// I get icon Id from drawable and I give 4 cordinates to add my icons
for(int i=0;i<4;i++){
kordinat[i][0]="40.78"+i+"244";
kordinat[i][1]="30.40"+i+"898";
}
iconsID[0]=R.drawable.hizmet;
iconsID[1]=R.drawable.kafe;
iconsID[2]=R.drawable.hastane;
iconsID[3]=R.drawable.petrolofisi;
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
class MapOverlay extends com.google.android.maps.Overlay // Thid class add icon on map
{
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
{
double lat;
double lng;
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels--- I added 4 icons on the map
Point screenPts = new Point();
for(int i=0;i<4;i++){
lat = Double.parseDouble(cordinates[i][0]);
lng = Double.parseDouble(cordinates[i][1]);
p = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(getResources(), iconsID[i]);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
}
return true;
}
}
答案 0 :(得分:1)
您可以使用BalloonItemized OverLay类。
转到此链接,希望您得到答案。
Anyone implemented the BalloonItemizedOverlay (with multiple points) successfully?
答案 1 :(得分:0)
您必须实现onTap()方法才能使您的drawable可点击。在这里,我提供了示例的链接。在此示例中,它显示了点击叠加层上的AlertDialog(在您的情况下为Drawable)。
http://developer.android.com/resources/tutorials/views/hello-mapview.html
希望这会有所帮助!!!