<?php 
require_once('../mappoint/ClassLoader.php'); 
session_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Line Drive Map</title> 
</head> 
<body> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<table border="1"> 
<tr><td>Start Address:</td></tr> 
<tr><td> 
<textarea name="txtStart" id="txtStart" cols="20" rows="5">1 Microsoft Way Redmond, WA 98052</textarea> 
</tr></td> 
<tr><td>End Address:</tr></td> 
<tr><td> 
<textarea name="txtEnd" id="txtEnd" cols="20" rows="5">Pike Place Market Seattle, WA 98101 
</textarea> 
</tr></td> 
<tr><td>Data source: <select name="ddlDataSource" id="ddlDataSource"> 
    <option selected="selected" value="MapPoint.NA">MapPoint.NA</option> 
    <option value="MapPoint.EU">MapPoint.EU</option> 
</select> 
</tr></td> 
<tr><td align="center"> 
<input type="submit" name="GetLineDriveMap" value="Get Map" id="GetLineDriveMap" /> 
</tr></td> 
</table> 
</form> 
<?php 
 
if (isset($_POST['GetLineDriveMap'])) { 
    $global = $_SESSION['mappoint']; 
     
    //Find the LatLong for the two addresses provided 
    $aStart = new Address(); 
    $aStart->FormattedAddress = $_POST['txtStart']; 
    $aEnd = new Address(); 
    $aEnd->FormattedAddress = $_POST['txtEnd']; 
 
    //we only care about returing the LatLong 
    $fo = new FindOptions(); 
    $fo->ResultMask = FindResultMask::$LatLongFlag; 
 
    //create a new FindAddressSpecification for the start address 
    $spec = new FindAddressSpecification(); 
    $spec->DataSourceName = $_POST['ddlDataSource']; 
    $spec->InputAddress = $aStart; 
    $spec->Options = $fo; 
 
    $fr = null; 
     
    //Get the LatLong for the start address 
    try 
    { 
        $fr = $global->FindService->FindAddress($spec); 
 
        $llStart = new LatLong(); 
        $llStart = $fr->Results->FindResult[0]->FoundLocation->LatLong; 
    } 
    catch (SoapFault $e) { 
        die($e->faultstring); 
    } 
    try 
    { 
        //Now get the LatLong for the end address 
        $spec = new FindAddressSpecification(); 
        $spec->DataSourceName = $_POST['ddlDataSource']; 
        $spec->InputAddress = $aEnd; 
        $spec->Options = $fo; 
 
        $fr = $global->FindService->FindAddress($spec); 
        $llEnd = new LatLong(); 
        $llEnd = $fr->Results->FindResult[0]->FoundLocation->LatLong; 
    } 
    catch (SoapFault $e) { 
        die($e->faultstring); 
    } 
 
    //use the LatLongs we just obtained to create Location objects 
    $startLocation = new Location(); 
    $endLocation = new Location(); 
    $startLocation->LatLong = new LatLong(); 
    $startLocation->LatLong = $llStart; 
    $endLocation->LatLong = new LatLong(); 
    $endLocation->LatLong = $llEnd; 
 
    //create a SegmentSpecification that includes the 
    //start and end locations 
    $routeSegmentsSpec = array(); 
    $routeSegmentsSpec[] = new SegmentSpecification(); 
    $routeSegmentsSpec[0]->Waypoint = new Waypoint(); 
    $routeSegmentsSpec[0]->Waypoint->Name = "Start"; 
    $routeSegmentsSpec[0]->Waypoint->Location = $startLocation; 
    $routeSegmentsSpec[] = new SegmentSpecification(); 
    $routeSegmentsSpec[1]->Waypoint = new Waypoint(); 
    $routeSegmentsSpec[1]->Waypoint->Name = "End"; 
    $routeSegmentsSpec[1]->Waypoint->Location = $endLocation; 
 
    //create a RouteSpecification and add the segments 
    $routeSpec = new RouteSpecification(); 
    $routeSpec->DataSourceName = $_POST['ddlDataSource']; 
    $routeSpec->Segments = $routeSegmentsSpec; 
 
    //Get the LineDrive map(s) and directions 
    try { 
        $myRoute = $global->RouteService->CalculateRoute($routeSpec); 
    } catch (SoapFault $e) { 
        die($e->faultstring); 
    } 
 
    $format = new ImageFormat(); 
    $format->Height = 400; 
    $format->Width = 400; 
 
    $ldmo = new LineDriveMapOptions(); 
    $ldmo->Format = new ImageFormat(); 
    $ldmo->Format->Height = 400; 
    $ldmo->Format->Width = 400; 
    $ldmo->FontSize = MapFontSize::$Smallest; 
    $ldmo->ReturnType = MapReturnType::$ReturnUrl; 
    $ldmo->PaletteType = PaletteType::$Color; 
 
    //now get the maps 
    $spec = new LineDriveMapSpecification(); 
    $spec->Route = $myRoute; 
    $spec->Options = $ldmo; 
    try { 
        $mi = $global->RenderService->GetLineDriveMap($spec); 
    } catch (SoapFault $e) { 
        die($e->faultstring); 
    } 
    echo "<br /><img src='".$mi[0]->Url."' />"; 
} 
 
?> 
</body> 
</HTML> 
 
 |