2009-06-29 21 views
6

Ich möchte ein Overlay auf Google Maps erstellen, das verschiedene Straßen in verschiedenen Farben anzeigt.Straßen in Google Maps markieren

In der Google Maps API ist es möglich, Marker und Polygone zu erstellen, die bestimmte Bereiche abdecken.

Gibt es eine Möglichkeit, verschiedene Straßen irgendwie zu markieren?

Antwort

3

Es klingt für mich so, als ob Sie Interesse hätten, einige anwendungsspezifische Farben für Ihr Google Maps-Display zu zeigen (anstatt Verkehrskarten).

Wenn ja, dann sollten Sie benutzerdefinierte Overlays überprüfen. Sie können Ihre eigenen transparenten Hintergrund-Overlay-Kacheln (mit Ihren farbigen Straßen) erstellen, sie mit den Google Maps-Kacheln abgleichen und sie dann auf der Karte überlagern. Sie können eine Beschreibung dieses Materials in der Maps API reference - Overlays finden.

Ich war tatsächlich daran interessiert, dies auszuprobieren, und diese Frage könnte eine gute Entschuldigung sein. Ich werde dich wissen lassen, wie ich gehe.

Edit: Ok, ich habe es versucht und es war pretty straightforward. Sie müssen nur die Kachelbilder greifen, wenn die Google Maps-Seite geladen wird (für den Bereich, den Sie überlagern möchten). Stellen Sie sicher, dass Sie die ursprünglichen URLs im Auge behalten, da diese die x, y-Koordinaten haben, die Sie benötigen, um Ihre Kachel-Overlay-Methode zu schreiben.

Bearbeiten Sie die Kacheln mit Ihren farbigen Straßen und laden Sie sie auf Ihren Webserver hoch. Fügen Sie den folgenden Code Overlay auf der regulären Karte zu verwenden:

var myCopyright = new GCopyrightCollection("© "); 
myCopyright.addCopyright(new GCopyright('Demo', 
       new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 
       0,'©2007 Google')); 

// Create the tile layer overlay and 
// implement the three abstract methods     
var tilelayer = new GTileLayer(myCopyright); 

// properties of the tile I based my tile on 
// v=w2.97&hl=en&x=38598&s=&y=49259&z=17&s=Galil.png 
tilelayer.getTileUrl = function(point, zoom) { 
    if (zoom == 17 && point.x == 38598 && point.y == 49259) 
     return "../pics/times_square.png"; 
}; 

tilelayer.isPng = function() { return true;}; 
tilelayer.getOpacity = function() { return 1.0; } 

var myTileLayer = new GTileLayerOverlay(tilelayer); 
var map = new GMap2(document.getElementById("map")); 
map.setCenter(new GLatLng(40.75740, -73.98590), 17); 
map.addOverlay(myTileLayer) 

Dieser Code überlagert meine Thing isst NY Fliese:

bei x = 38598 und y = 49259 bei Zoom Stufe 17.

1

Es ist möglich, Markierungen und Polygone in der Google Maps API zu erstellen. Sie müssen GPolygon erstellen und/oder GPolyline Objekte

einen Blick auf these tutorials Haben

Und wenn Sie die Koordinaten (Breitengrad, Längengrad) von bestimmten Straßen erhalten möchten, können Sie einen Blick auf den Quellcode haben this page

Ich bin nicht sicher, Ihre Frage vollständig zu verstehen: Möchten Sie bestimmte Straßen markieren? in diesem Fall könnte ein schnell-und-schmutzig-Weg sein, um die Koordinaten aller Adressen der Straße zu erhalten und ein GPolygon nach ihnen zu bauen ...

0

Versuchen Sie, in den Code zu graben, der verwendet wird, um die Verkehrsüberlagerung zu zeigen auf der normalen Google Maps-Website.

Edit: Ich schaute nur auf den Code, und es scheint, dass sogar Google entschied, dass es einfacher war, dies zu implementieren, indem Sie nur die Verkehrslinien auf dem Server und ziehen sie als transparente PNG-Overlays.

0

Ich habe gerade gefunden this link, und ich denke, das könnte Sie interessieren. Es ist ein JavaScript-Paket, das Funktionen zum Anzeigen mehrerer Routen in Google Maps bereitstellt.

Haben Sie gesucht?

Verwandte Themen