////////////////////////////////////////////////////////////////// // Apply the specified set of commands to the map. // void c_RestFetchImage::ApplyMapViewCommands(MgMap* map, MgPropertyCollection* mapViewCommands) { if(mapViewCommands == NULL) return; Ptr<MgProperty> val; //Set view center X val = mapViewCommands->FindItem(m_mapCmdSetViewCenterX); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetViewCenterX); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } Ptr<MgPoint> center = map->GetViewCenter(); Ptr<MgCoordinate> coord = center? center->GetCoordinate(): NULL; double y = coord? coord->GetY(): 0.; MgGeometryFactory gf; Ptr<MgCoordinate> coordNewCenter = gf.CreateCoordinateXY(MgUtil::StringToDouble(((MgStringProperty*)((MgProperty*)val))->GetValue()), y); Ptr<MgPoint> ptNewCenter = gf.CreatePoint(coordNewCenter); map->SetViewCenter(ptNewCenter); } //Set view center Y val = mapViewCommands->FindItem(m_mapCmdSetViewCenterY); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetViewCenterY); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } Ptr<MgPoint> center = map->GetViewCenter(); Ptr<MgCoordinate> coord = center? center->GetCoordinate(): NULL; double x = coord? coord->GetX(): 0.; MgGeometryFactory gf; Ptr<MgCoordinate> coordNewCenter = gf.CreateCoordinateXY(x, MgUtil::StringToDouble(((MgStringProperty*)((MgProperty*)val))->GetValue())); Ptr<MgPoint> ptNewCenter = gf.CreatePoint(coordNewCenter); map->SetViewCenter(ptNewCenter); } //Set view scale val = mapViewCommands->FindItem(m_mapCmdSetViewScale); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetViewScale); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } STRING sScale = ((MgStringProperty*)((MgProperty*)val))->GetValue(); double scale = MgUtil::StringToDouble(sScale); if(scale <= 0.0) { MgStringCollection arguments; arguments.Add(m_mapCmdSetViewScale); arguments.Add(sScale); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgValueCannotBeLessThanOrEqualToZero", NULL); } map->SetViewScale(scale); //refresh all layers that are visible map->SetLayerRefreshMode(MgMap::refreshAll); } //Set display dpi val = mapViewCommands->FindItem(m_mapCmdSetDisplayDpi); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayDpi); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } STRING sDpi = ((MgStringProperty*)((MgProperty*)val))->GetValue(); INT32 dpi = MgUtil::StringToInt32(sDpi); if(dpi <= 0) { MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayDpi); arguments.Add(sDpi); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgValueCannotBeLessThanOrEqualToZero", NULL); } map->SetDisplayDpi(dpi); } //Set display width val = mapViewCommands->FindItem(m_mapCmdSetDisplayWidth); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayWidth); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } STRING sWidth = ((MgStringProperty*)((MgProperty*)val))->GetValue(); INT32 width = MgUtil::StringToInt32(sWidth); if(width <= 0) { MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayWidth); arguments.Add(sWidth); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgValueCannotBeLessThanOrEqualToZero", NULL); } map->SetDisplayWidth(width); } //Set display height val = mapViewCommands->FindItem(m_mapCmdSetDisplayHeight); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayHeight); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } STRING sHeight = ((MgStringProperty*)((MgProperty*)val))->GetValue(); INT32 height = MgUtil::StringToInt32(sHeight); if(height <= 0) { MgStringCollection arguments; arguments.Add(m_mapCmdSetDisplayHeight); arguments.Add(sHeight); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgValueCannotBeLessThanOrEqualToZero", NULL); } map->SetDisplayHeight(height); } //Show layers val = mapViewCommands->FindItem(m_mapCmdShowLayers); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdShowLayers); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } ShowLayers(map, ((MgStringProperty*)((MgProperty*)val))->GetValue(), true); } //Hide layers val = mapViewCommands->FindItem(m_mapCmdHideLayers); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdHideLayers); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } ShowLayers(map, ((MgStringProperty*)((MgProperty*)val))->GetValue(), false); } //Show groups val = mapViewCommands->FindItem(m_mapCmdShowGroups); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdShowGroups); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } ShowGroups(map, ((MgStringProperty*)((MgProperty*)val))->GetValue(), true); } //Hide groups val = mapViewCommands->FindItem(m_mapCmdHideGroups); if(val != NULL) { if(val->GetPropertyType() != MgPropertyType::String) { STRING buffer; MgUtil::Int32ToString((INT32)val->GetPropertyType(), buffer); MgStringCollection arguments; arguments.Add(m_mapCmdHideGroups); arguments.Add(buffer); throw new MgInvalidArgumentException(L"MgController.ApplyMapViewCommands", __LINE__, __WFILE__, &arguments, L"MgInvalidPropertyTypeForCommand", NULL); } ShowGroups(map, ((MgStringProperty*)((MgProperty*)val))->GetValue(), false); } //Refresh layers - applies only to DwfController }//end of c_RestFetchImage::ApplyMapViewCommands