<?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>
|