[OSGeo-Edu] Consultation mapguide to be send
Julián Felipe
julianferes at gmail.com
Mon Jul 13 10:08:15 PDT 2015
Hello Mapguides List,
I am developing an aplication about vehicle tracking and i have beed
reading the MgOpenSourceDevGuide.pdf.
I need to draw the car image about location on the map but i don´t
understand how to do it.
Coul you help me with this please.
My code is the follow:
<html>
<body onLoad="OnPageLoad()">
<?php
function add_layer_definition_to_map($layerDefinition, $layerName,
$layerLegendLabel, $sessionId, $resourceService, $map)
// Adds the layer definition (XML) to the map.
// Returns the layer.
{
echo "Iniciando metodo add_layer_definition_to_map...";
global $schemaDirectory;
// Validate the XML.
$domDocument = new DOMDocument;
$domDocument->loadXML($layerDefinition);
// Save the new layer definition to the session repository
$byteSource = new MgByteSource($layerDefinition,
strlen($layerDefinition));
echo "<br/> echo 111 <br/>";
$byteSource->SetMimeType(MgMimeType::Xml);
echo "<br/> echo 2222 <br/>";
echo "session: ".$sessionId;
$resourceID = new
MgResourceIdentifier("Session:$sessionId//$layerName.LayerDefinition");
echo "<br/> echo 3333 <br/>";
$resourceService->SetResource($resourceID, $byteSource->GetReader(),
null);
echo "<br/> echo 4444 <br/>";
$newLayer = add_layer_resource_to_map($resourceID, $resourceService,
$layerName, $layerLegendLabel, $map);
echo "<br/> echo 5555 <br/>";
return $newLayer;
}
function add_layer_resource_to_map($layerResourceID, $resourceService,
$layerName, $layerLegendLabel, $map)
// Adds a layer defition (which can be stored either in the Library or a
session
// repository) to the map.
// Returns the layer.
{
$newLayer = new MgLayer($layerResourceID, $resourceService);
// Add the new layer to the map's layer collection
$newLayer->SetName($layerName);
$newLayer->SetVisible(true);
$newLayer->SetLegendLabel($layerLegendLabel);
$newLayer->SetDisplayInLegend(true);
$newLayer->SetDisplayInLegend(true);
$layerCollection = $map->GetLayers();
if (! $layerCollection->Contains($layerName) )
{
// Insert the new layer at position 0 so it is at the top
// of the drawing order
$layerCollection->Insert(0, $newLayer);
}
return $newLayer;
}
?>
<?php
try{
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__.'/../phpsamples/common/common.php');
echo "ferez".__ROOT__.'/../findaddress/layerdefinitionfactory.php';
require_once(__ROOT__.'/findaddress/layerdefinitionfactory.php');
// Get the session information passed from the viewer.
$args = ($_SERVER['REQUEST_METHOD'] == "POST")? $_POST : $_GET;
$mgSessionId = $args['SESSION'];
$mgMapName = $args['MAPNAME'];
// Initialize the web extensions,
MgInitializeWebTier ($webconfigFilePath);
// Get the user information using the session id,
// and set up a connection to the site server.
$userInfo = new MgUserInformation($mgSessionId);
$siteConnection = new MgSiteConnection();
$siteConnection->Open($userInfo);
echo "Instanciamos Feature service <br/><br/>";
$featureService =
$siteConnection->CreateService(MgServiceType::FeatureService);
echo "Instanciamos Resource service <br/><br/>";
$resourceService =
$siteConnection->CreateService(MgServiceType::ResourceService);
echo "Instanciamos ResourceIdentifier <br/><br/>";
$bufferFeatureResId = new MgResourceIdentifier("Session:" . $mgSessionId .
"//Buffer.FeatureSource");
$map = new MgMap($siteConnection);
$map->Open($resourceService, $mgMapName);
// Set up some objects for coordinate conversion
$mapWktSrs = $map->GetMapSRS();
$agfReaderWriter = new MgAgfReaderWriter();
$wktReaderWriter = new MgWktReaderWriter();
echo "Creando FeatureSource <br/><br/>";
echo "<br/> echo 1 <br/>";
// Create a temporary feature source
$bufferClass = new MgClassDefinition();
$className = 'BufferClass';
$bufferClass->SetName('BufferClass');
$properties = $bufferClass->GetProperties();
$idProperty = new MgDataPropertyDefinition('ID');
$idProperty->SetDataType(MgPropertyType::Int32);
$idProperty->SetReadOnly(true);
$idProperty->SetNullable(false);
$idProperty->SetAutoGeneration(true);
$properties->Add($idProperty);
$polygonProperty = new MgGeometricPropertyDefinition('BufferGeometry');
$polygonProperty->SetGeometryTypes(MgFeatureGeometricType::Point);
$polygonProperty->SetHasElevation(false);
$polygonProperty->SetHasMeasure(false);
$polygonProperty->SetReadOnly(false);
$polygonProperty->SetSpatialContextAssociation('defaultSrs');
$properties->Add($polygonProperty);
$idProperties = $bufferClass->GetIdentityProperties();
$idProperties->Add($idProperty);
$bufferClass->SetDefaultGeometryPropertyName('BufferGeometry');
$bufferSchema = new MgFeatureSchema('BufferLayerSchema', 'temporary schema
to hold a buffer');
$bufferSchema->GetClasses()->Add($bufferClass);
$sdfParams = new MgCreateSdfParams('defaultSrs', $mapWktSrs, $bufferSchema);
$featureService->CreateFeatureSource($bufferFeatureResId, $sdfParams);
echo "<br/> echo 2 <br/>";
//--------------------Creamos Layer
Definition-------------------------------//
// ...
//---------------------------------------------------//
echo "<br/> echo 3 <br/>";
$factory = new LayerDefinitionFactory();
echo "<br/> echo 4 <br/>";
// Create a mark symbol
$resourceId =
'Library://Samples/Sheboygan/Symbols/BasicSymbols.SymbolLibrary';
$symbolName = 'PushPin';
$width = '100'; // points
$height = '100'; // points
$color = 'FFFF0000';
$markSymbol = $factory->CreateMarkSymbol($resourceId, $symbolName, $width,
$height, $color);
// Create a text symbol
$text = "ID";
$fontHeight="100";
$foregroundColor = 'FF000000';
$textSymbol = $factory->CreateTextSymbol($text, $fontHeight,
$foregroundColor);
// Create a point rule.
$legendLabel = 'trees';
$filter = '';
$pointRule = $factory->CreatePointRule($legendLabel, $filter, $textSymbol,
$markSymbol);
// Create a point type style.
$pointTypeStyle = $factory->CreatepointTypeStyle($pointRule);
// Create a scale range.
$minScale = '0';
$maxScale = '1000000000000';
$pointScaleRange = $factory->CreateScaleRange($minScale, $maxScale,
$pointTypeStyle);
// Create the layer definiton.
$featureClass = 'Library://Tests/Trees.FeatureSource';
$featureName = 'Default:Trees';
$geometry = 'SHPGEOM';
$layerDefinition = $factory->CreateLayerDefinition($bufferFeatureResId,
$featureName, $geometry, $pointScaleRange);
$layerName = "capaferez";
$layerLegendLabel = "capaferez";
$nuevaLayer = add_layer_definition_to_map($layerDefinition, $layerName,
$layerLegendLabel, $mgSessionId, $resourceService, $map);
echo "<br/> inicio insercion feature actualizando fea 1<br/>";
$commands = new MgFeatureCommandCollection();
$properties = new MgPropertyCollection();
echo "lllllllllllllllllllllllllllllllll";
// create a coordinate
$geometryFactory = new MgGeometryFactory();
$coordinate = $geometryFactory->CreateCoordinateXY(-87.755686,43.719265);
echo "oooooooooooooooooooooooo";
// create a point
$point = $geometryFactory->CreatePoint($coordinate);
echo "Creando MgPoint ...";
$pointAgfText = $wktReaderWriter->Write($point);
echo "AGF Text representation of Point: $pointAgfText\n";
echo " agfByteStream ...";
$agfByteStream = $agfReaderWriter->Write($point);
echo " punto creado ...";
$geometryProperty = new MgGeometryProperty('BufferGeometry',
$agfByteStream);
$properties->Add($geometryProperty);
$insertCommand = new MgInsertFeatures($className, $properties);
$commands->Add($insertCommand);
echo "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk";
$featureService->UpdateFeatures($bufferFeatureResId, $commands, false);
echo "fffffffffffffffffffffffffffffffffff";
echo "<br/> fin insercion feature actualizando fea 1<br/>";
$nuevaLayer->SetVisible(true);
$nuevaLayer->ForceRefresh();
$nuevaLayer->SetDisplayInLegend(true);
$nuevaLayer->SetSelectable(false);
//If you created a MgMap with a MgSiteConnection
$map->Save();
echo "Fin creacion feature source <br/><br/>";
echo "<br/><br/>Finaliza<br/>";
}catch (MgException $e){
echo $e->GetStackTrace() . "<br />";
}catch (Exception $ex) {
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
?>
<script language="javascript">
function OnPageLoad()
{
alert("probando");
parent.parent.Refresh();
}
</script>
</body>
</html>
--
Ing. Julian Felipe Feres Santander
Ingeniero De Software
--
Ing. Julian Felipe Feres Santander
Ingeniero De Software
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/edu_discuss/attachments/20150713/3ba8be47/attachment-0001.html>
More information about the Edu_discuss
mailing list