J'ai essayé avec le code suivant pour afficher correctement la ligne de direction entre 2 villes, mais la ligne entre 2 villes n'est pas correctement définie. Si la distance entre 2 villes est assez longue, alors une icône de la ville est affichée et pour voir l'autre icône de la ville affichée sur la carte, je dois aller à l'endroit.Comment afficher la direction correctement en délimitant la carte avec 2 villes avec google map dans Qt?
s'il vous plaît vérifier le code ci-dessous:
void ShowDirection::on_webView_loadFinished(bool)
{
QStringList scriptStr;
scriptStr
<< "var map = new google.maps.Map2(document.getElementById(\"map\"));"
<< "var bounds = new GLatLngBounds();"
<< "var colors = ['#FF0000'];"
<< "var baseStartIcon = new GIcon();"
<< "var baseEndIcon = new GIcon();"
<< "baseStartIcon.image = 'qrc:images/green.png';"
<< "baseEndIcon.image = 'qrc:images/red.png';"
<< "baseStartIcon.iconSize = new GSize(37, 37);"
<< "baseEndIcon.iconSize = new GSize(37, 64);"
<< "baseStartIcon.iconAnchor = new GPoint(18, 37);"
<< "baseEndIcon.iconAnchor = new GPoint(0, 64);"
<< "map.addControl(new GLargeMapControl());"
<< "var directions = new GDirections();"
<< "GEvent.addListener(directions,\"load\", function() {"
<< "var poly=directions.getPolyline();"
<< "map.setCenter(poly.getVertex(0),8);"
<< "map.addOverlay(new GMarker(poly.getVertex(0),baseStartIcon));"
<< "map.addOverlay(new GMarker(poly.getVertex(poly.getVertexCount()-1),baseEndIcon));"
// << "bounds.extend(poly.getBounds());"
// << "map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));"
<< "poly.setStrokeStyle({color:colors[0],weight:3,opacity: 0.7});"
<< "map.addOverlay(poly);"
<< "});"
<< QString ("directions.loadFromWaypoints([\"%1\",\"%2\"],{getPolyline:true});")
.arg(fromCurrentLocationShowDirection)
.arg(toEventLocationShowDirection);
ui->webView->page()->mainFrame()->evaluateJavaScript(scriptStr.join("\n"));
}
Comment lié la ligne de direction 2 emplacements de ville sur la carte, de sorte que quelle que soit la distance les deux directions de l'emplacement afficher sur la carte.
Merci ...