Google Maps zeigt Route und Entfernung zwischen zwei Orten
-
22-07-2019 - |
Frage
Ich arbeite an einer Profil-Website, die die Lage von Menschen mit Google Maps zeigt.
Ich habe Karten Google implementiert und jetzt zeigt es, wo die Person, die Sie lebt gerade betrachten und wo Sie leben.
Der Code ist hier:
var map = null;
var geocoder = null;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addControl(new GMapTypeControl());
geocoder = new GClientGeocoder();
}
}
function showAddresses(address1,address2) {
if (geocoder) {
geocoder.getLatLng(
address1,
function(point) {
if (!point) {
alert(address1 + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address1);
}
}
);
geocoder.getLatLng(
address2,
function(point) {
if (!point) {
alert(address2 + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
);
}
}
Was es aber nicht tut, ist die Zoomstufe ändern, wenn die 2 Plätze so weit voneinander entfernt sind sie nicht togheter auf der Karte passen. Ich weiß nicht, wie das beheben.
Der nächste Schritt ist, dass ich die Karte zeigt eine visuelle Strecke zwischen den beiden Punkten und dessen Abstand hat, wenn folgenden dass route.I've es auf der Google Maps-Website versucht, und ich weiß, dass sie diese Funktion haben. Ich kann einfach keine Dokumentation finden, wie sie umzusetzen.
Oder wäre es besser, nur einen Hyperlink zu machen, die Google Maps geht und gibt Ihnen eine vorbereitete Seite? Dass auch ich weiß nicht, wie.
Lösung
Sie es nie getan, aber gesehen GDirections im api:
http://code.google.com/apis/maps /documentation/reference.html#GDirections
Loooks wie das, was Sie suchen.
Andere Tipps
Fügen Sie alle Punkte auf einem Polygon. Aus dem Polygon, die LatLngBounds erhalten, die verwendet werden kann, die Zoomstufe abzuleiten.
private function setMapZoomLevelBasedOnPlottedPoints(polygonPoints:Array):void
{
var pointBounds:LatLngBounds = getLatLongBounds(polygonPoints);
_map.setCenter(pointBounds.getCenter());
_map.setZoom(_map.getBoundsZoomLevel(pointBounds) - 1);
}
private function getLatLongBounds(polygonPoints:Array):LatLngBounds
{
for(var i:Number; i < polygonPoints; i++)
{
polygonPoints.push(polygonPoints[i] as LatLong);
}
var polygon:IPolygon = new Polygon(polygonPoints);
return polygon.getLatLngBounds();
}
Es ist in der API. Sie können es mit
findenroute site:http://code.google.com/apis/maps
Hier ist eine Seite, zum Beispiel der „Fahrer Richtungen“ in einem Overlay mit Blitz zeigt. Die API ist ein wenig anders, wenn man Karten außerhalb von Flash tun, aber es ist der gleiche Basiscode. http://code.google.com/apis/maps/documentation/ flash / services.html
habe ich mehr Arbeit mit MapQuest, so bin ich immer nur in die Google Maps API.