1. Nimm jetzt an unserem Geotel Note - Gewinnspiel teil - Informationen zum Note findest Du hier!
  1. Maksimal, 05.08.2012 #1
    Maksimal

    Maksimal Threadstarter Neuer Benutzer

    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

    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

    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

    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.