1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

MapOverlay // eigene Karte auf GoogleMaps möglich?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Maksimal, 05.08.2012.

  1. Maksimal, 05.08.2012 #1
    Maksimal

    Maksimal Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    02.08.2012
    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
     
  2. BFK, 05.08.2012 #2
    BFK

    BFK Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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..!
     
    Maksimal bedankt sich.
  3. Maksimal, 05.08.2012 #3
    Maksimal

    Maksimal Threadstarter Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    02.08.2012
    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?
     
  4. BFK, 08.08.2012 #4
    BFK

    BFK Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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: 08.08.2012
    Maksimal bedankt sich.

Diese Seite empfehlen