MapOverlay // eigene Karte auf GoogleMaps möglich?

M

Maksimal

Neues Mitglied
0
Hiho

ist es möglich eine eigene Karte wie z.B. http://upload.wikimedia.org/wikipedia/commons/f/f8/Europe_countries_map_en.png
per Overlay auf die GoogleMaps karte zu legen? Ich brauche die Koordinaten von Google Maps aber möchte dadurch die Städtenamen ausblenden. Schön wäre es natürlich wenn man weiterhin zoomen könnte und sich die hinzugefügte karte mitbewegt. Wenn das nicht möglich ist wie könnte man die Google Karte "freezen"?

Grüße
maxi
 
Und wieso probierst du das einfach nicht..?

Könntest ja ein Overlay benutzen und bei onDraw so zeichnen, dass du z.B. die Europakarte nachzeichnest. Wenn du dazu noch eine Farbe benuztz...kann man logischerweise die Städtenamen und alles andere nicht lesen...also sollte schon gehen.

Wenn du zoomst...musst du natürlich dein Overlay entsprechend ändern, so dass deine Overlay-Objekte angepasst werden..!
 
  • Danke
Reaktionen: Maksimal
Ok ;) Ja ich bin noch blutiger Anfänger.

Mein Problem was ich mir vorstelle ist eben die Kalibrierung meiner Karte mit der Google Karte. Wie mach ich dass das sie genau aufeinander passen?
 
Sagen wir du willst Italien nachzeichnen:
Du holst dir die Koordinaten von Italiens Grenze so (also den Umriss Italiens), dass du ein Polygon erstellen kannst, dass so ausieht wie Italien. Am besten du nimmst genau soviele Koordinaten, die gerade so den Umriss nachbilden. Speicherst die dann in einem GeoPoint-array.

Dann erstellst du dir eine Overlay, etwa so..:
Code:
public class ItalienUmriss extends Overlay{

        
       public ItalienUmriss(GeoPoint[] gpsPositions) {   
           
       }  
    

       public void draw(Canvas canvas,MapView mapView,boolean shadow){
               
          }
       
   }
Du übergibst deine GeoPoint-array mittels dem Kostruktor an deinem Overlay und bei der draw-Klasse deines Overlay projektierst du deine GeoPoint-Daten zu ScreenPixel und zeichnest somit einen Pfad, zum Beispiel so..:
Code:
Projection proj = mapView.getProjection(); 
            
            GeoPoint start = geoPoints[0];
            
            Point startPt = new Point();             
            proj.toPixels(start, startPt); 
            
            Path path = new Path(); 
            path.moveTo(startPt.x, startPt.y); 

Point nextPt;

for(int i = 1; i < geoPoints.length - 1; i++)
                {
                nxtPt = new Point();
                    proj.toPixels(geoPoints[i], nxtPt); 
                    path.lineTo(nxtPt.x, nxtPt.y); 
                 }
            path.close();

canvas.drawPath(path, new Paint());
Wällst natürlich für dein paint den FILL-Style, damit der Pfad eine Farbe bekommen kann und somit Italien verdeckt.

So sollte es klappen...!

EDIT..:
Wollte noch sagen, dass du eigentlich bei zoomen nichts zu ändern brauchst, denn das macht android von alleine..!
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Maksimal

Ähnliche Themen

FabianDev
Antworten
5
Aufrufe
555
swa00
swa00
F
  • Fischi84
Antworten
2
Aufrufe
1.916
Fischi84
F
R
Antworten
3
Aufrufe
1.618
Ritartet
R
Zurück
Oben Unten